Réserver une Démo
Pré. Proc.

La macro d'instruction de traitement (PI)

La macro PI (Processing Instruction) permet de définir le texte séparateur à insérer entre les morceaux de code (qui représentent des entités) générés à l'aide d'un gabarit .

La structure de définition de l'instruction de traitement est la suivante :

%PI=<valeur>%

Dans cette structure, <value> est une string littérale entourée de guillemets doubles, avec ces options :

  • " \n" - Nouvelle ligne (par défaut)
  • " " - Espace
  • " \t" - Tabulation
  • " " - Nul
Par défaut, le PI est configuré pour générer une nouvelle ligne (\n) pour chaque substitution non vide, dont le comportement peut être modifié en réinitialisant la macro PI. Par exemple, une déclaration d'attribut de classe en code VB simple serait générée sur une seule ligne (sans nouvelles lignes). Ces propriétés sont dérivées des propriétés Class-Attribute du modèle à générer, par exemple :

Privé Const PrintFormat As String = "Portrait"

Le gabarit pour générer ceci commence avec le PI étant défini sur un espace plutôt que sur une nouvelle ligne :

% PI = " " %

% CONVERT_SCOPE (attScope) %

% fin si %

% si atConst == "T" %

Const.

% fin si %

Lors de la transformation, attscope renvoie le mot-clé VB 'Private' et attConst renvoie 'Const' sur la même ligne espacée d'un seul espace (correspondant à l'exemple de définition VB Class.Attribute précédent).

Alternativement, lors de la génération d'une classe, vous souhaiterez peut-être que la déclaration de classe, les notes et le corps de la classe soient tous séparés par des lignes doubles. Dans ce cas, le %PI est défini sur '/n/n' pour renvoyer un interligne double :

% PI = " \n\n" %

% Déclaration de classe %

% Notes de cours %

% Corps de classe %

Caractéristiques PI

  • Les lignes vides n'ont aucun effet sur la sortie
  • Toute ligne qui a une macro qui produit un résultat vide n'entraîne pas de séparateur PI (espace/nouvelle ligne)
  • La dernière entrée ne renvoie pas de PI ; par exemple, %Classbody% n'a pas de ligne double ajoutée après le corps

Apprenez Plus