BEGIN ENUM commande

Syntaxe :

BEGIN ENUM [debut [,increment]]
  _nomConstante1 [= exprStatique1]
  _nomConstante2 [= exprStatique2]
  •
  •
END ENUM

Description :

Cette commande commence un bloc de définitions de “constantes énumérées”. Le bloc doit être terminé par la commande END ENUM. Toutes les constantes définies dans ce bloc sont globales, quel que soit l’endroit où le bloc apparaît dans le programme.

Le bloc BEGIN ENUM…END ENUM est “non-exécutable”, ce qui implique qu’il ne sera ni répété, ni sauté s’il se trouve à l’intérieur d’un bloc d’ “exécution conditionnelle” tels que FOR…NEXT, LONG IF…ENDIF, DO…UNTIL, etc. (mais il peut être exclus ou inclus conditionnellement du programme s’il figure dans un bloc COMPILE LONG IF).

Chaque _nomConstante représente le nom d’une constante symbolique qui n’a pas été définie précédemment, et chaque exprStatique représente une expression entière qui peut être constituée seulement par :

un entier littéral;
un nom de constante symbolique précédemment définie;
des opérateurs (comme +, , *, /, >, =);
des parenthès
(Et plus précisément, il ne peut contenir de références à des variables, ni à des fonctions.)

Le bloc BEGIN ENUM assigne les valeurs aux constantes symboliques _nomConstante comme suit :

Si _nomConstante est suivi de = exprStatique, alors _NomConstante se voit assigner la valeur de exprStatique;
Si _nomConstante n’est pas suivi de = exprStatique, alors _nomConstante se voit assigner la valeur de _nomConstante de la ligne précédente, ajoutée de la valeur de increment;

Si le premier _nomConstante n’est pas suivi de = exprStatique, alors la valeur de debut lui est assignée
Les paramètres debut et increment, s’ils sont inclus, doivent tous deux être des expressions statiques entières. La valeur par défaut de debut est 0, et la valeur par défaut de increment est 1.

Exemple :

Dans ce qui suit, les nains se voient assignés les valeurs de 1 à 7; _blancheNeige reçoit la valeur 100, et _lePrince la valeur 101.

BEGIN ENUM 1
   _professeur
   _atchoum
   _grincheux
   _dormeur
   _reveur
   _rieur
   _timide
   _blancheNeige = 100
   _lePrince
END ENUM