compile


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

yes compile
no compile