Syntaxe :

La syntaxe est un mélange de C et de Basic.

Les commentaires commencent par # et peuvent se trouver soit sur une ligne seule, soit à la fin d'une ligne de commande.

ex1 : #Exemple de commentaire :

ex2 : x=getPosIAX()   #récupère la position x de l'ia courante

Le séparateur de paramètres est ";"

Aucun caractère de fin de ligne n'est requis. Le corollaire est que l'on ne peut avoir qu'une instruction par ligne.

if then else doivent être en minuscule.

Les commandes ne sont pas sensibles à la casse.

Les variables sont sensibles à la casse.

 

Tests :

ex1 : if (test) then action1 else action2

ex2 :

if (test)

    action1

    action2

else

    action3

    action4

endif

 

test est de la forme : partieGauche < | > | <= | >= | = | != partieDroite

si le test est évalué à vrai alors le then est lancé, sinon le else est lancé.

Dans la forme de if sur une ligne une seule instruction est possible pour then et else.

Dans la forme sur plusieurs lignes il est possible de mettre autant d'instructions que voulues et d'imbriquer un niveau infini de tests.

 

Blocs :

Les blocs commencent par { et se terminent par }

Leur rôle n'est pas comme en C de délimiter un ensemble d'instructions, mais de grouper toutes les instructions à exécuter dans la frame courante. Par défaut les commandes des scripts sont lancées l'une après l'autre, à chaque frame. L’utilisation des blocs permets de lancer 2 commandes ou plus dans la même frame.

Les blocs doivent être utilisés en connaissance de cause car les performances des scripts peuvent en être altérées (groupement d'instructions lourdes demandant trop de temps de calcul).

 

Labels / Goto :

Comme en Basic il est possible d'utiliser des labels et des goto pour se déplacer d'un label à un autre.

Les labels commencent par ":" et ne peuvent pas être ifxxx, thenxxx, elsexxx, endifxxx (xxx est un nombre), et ne doivent pas commencer par un chiffre.

Pour se rendre au label :MONLABEL il suffit de placer sur une ligne GOTO(MONLABEL) (sans les : )

 

Variables :

Le typage des variables est dynamique, le type des variables n'est donc pas déclaré. C'est le contenu de la variable qui déterminera son type.

a=10

b=5,2

c="string"

d=-20

e=a    (résultat : e=10)

f=e+10    (résultat : f=20)

g="je suis une "+c    (résultat g="je suis une string")

h=c + a  (résultat h="string10")