COMPILE LONG IF commande

Syntaxe :

COMPILE LONG IF condition

   [blocInstructions1]

[COMPILE XELSE

   [blocInstructions2]]

COMPILE END IF

Description :

Vous pouvez utiliser la commande COMPILE LONG IF pour inclure ou exclure, de manière conditionnelle, certaines lignes de code de la version compilée du programme. Ceci est utile si vous avez besoin de maintenir des versions légèrement différentes de votre programme; grâce à la commande COMPILE LONG IF, vous pouvez les gérer toutes à la fois dans le même fichier source.

Si la condition qui suit COMPILE LONG IF est évaluée à “vrai” ou si elle est différente de zéro, alors les instructions de blocInstructions1 sont incluses lors de la compilation tandis que les instructions de blocInstructions2 (s’il y en a) sont ignorées par le compilateur. Si la condition est évaluée à “faux” ou à zéro, alors les instructions de blocInstructions1 sont ignorées par le compilateur et les instructions (s’il y en a) blocInstructions2 sont incluses lors de la compilation.

condition doit être de l’une des formes suivantes :

constExpr
{DEF | NDEF}_constanteSymbolique
TRON [= _false]
cpu68K
cpuPPC
CarbonLib
Une liste d’éléments parmi ceux qui précèdent séparés par “AND” ou “OR”. Optionnellement, vous pouvez mettre entre parenthèses les sous-conditions.
 

constExpr est une “expression statique entière”. Une expression statique entière est une expression valide constituée seulement par :

des constantes littérales sur un entier;
des noms de constantes symboliques précédemment définis;
des opérateurs (comme +, , *, /, >, =);
des parenthèses

(En particulier, elle ne peut contenir ni variables, ni références à des fonctions). Si vous utilisez cette forme de COMPILE LONG IF, alors l’expression sera considérée comme “vraie” si sa valeur est différente de zéro.

_constanteSymbolique représente le nom d’une constante symbolique. DEF _constanteSymbolique est évalué à “vrai” si la constante indiquée a été précédemment définie. NDEF _constanteSymbolique est évalué à “vrai” si la constante indiquée n’a pas été précédemment définie.

La condition TRON est évaluée à “vrai” si le mode débogage est actif pour cette partie du code. La condition TRON = _false est évaluée à “vrai” si le mode débogage n’a pas été activé pour cette partie du code. (Voyez la commande TRON pour plus de détails.)

Si vous utilisez le mot-clé cpu68K comme condition, elle est évaluée à “vrai” si la compilation en cours génère du code machine pour le Motorola 680x0 (“68k”). Si vous utilisez le mot-clé cpuPPC comme condition, elle est évaluée à “vrai” si la compilation en cours génère du code machine pour le PowerPC.

Exemple :

Du fait que des lignes (y compris celles qui sont non-exécutables) peuvent être complètement ignorées par le compilateur, vous pouvez employer la commande COMPILE LONG IF pour contrôler des choses comme la déclaration de variables, d’étiquettes de programme, de constantes, et même de fonctions. Par exemple :

COMPILE LONG IF _grosBesoinMemoire
   DIM monTableau&(3000)
COMPILE XELSE
  DIM monTableau&(30)
COMPILE END IF

COMPILE LONG IF
_dimensions = 3
  DEF FN Diagonale!(a!, b!, c!) = SQR(a!*a! + b!*b! + c!*c!)
COMPILE XELSE
  DEF FN Diagonale!(a!, b!) = SQR(a!*a! + b!*b!)
COMPILE END IF

Note :

Les blocs COMPILE LONG IF peuvent être imbriqués jusqu’à une profondeur de 16 niveaux.

Voir Aussi :