compilation
compile
message
Voir aussi
compile
compile func
Compile toutes les fonctions.
compile(1)func
Compile toutes les fonctions sans parenthésage.
Peut être utilisé, en cas d´erreur de parenthésage, pour forcer un parenthésage particulier.
compile func("toto")
Compile la fonction toto.
compile message
compile message("mes")
Exécute mes (qui doit être une expression évaluable) et retourne la chaine
de caractères évaluation de "mes".
L´idée est de:
1) mettre une ligne de commande dans une chaine: ch1="com1(p1)com2(p2)...";
2) puis de faire varier les paramètres p1 p2 ...
3) enfin ch2=compile message(ch1);
produit une chaine ch2 variable que l´on peut
afficher par exemple:
text(ch2)poi(x,y)rectangle(0,0,0);
Exemple dans anyflo:
a()
{
extern A,dA,EXEC;
A=0;dA=.02*PI;cube(7);
interaction func(5,"a5");
}
a5()
{
extern A,dA,EXEC;
x=100*cos(A);y=100*sin(A);A+=dA;num=number vol;
EXEC=compile message("tran(x,y,0)matrix vol(num)");
text(EXEC)poi(-200,-200)rectangle(0,0,0);
}
x y num est remplacé par la chaine évaluant x, y et num.
text(EXEC)
affiche des valeurs variables.
Remarque importante:
Toute expression évaluable devra être complètement parenthésée, par exemple:
compile message("X[0],-1,X[2]");
n´est pas légale, mais
compile message("((X[0]),-1,(X[2]))");
est légale.
De telles écritures figurent dans la plupart des démos d´anyflo.
Voir aussi