Le fonctionnement des gabarits
Un fichier gabarit contient la définition de toutes les règles requises par l’application. À la
base, une règle produit une chaîne de caractères à partir de ses paramètres; la plupart des
paramètres sont des règles se référant à d'autres règles de gabarit.
La définition d'une règle est faite du nom de la règle, de sa classe, d'un paramètre obligatoire
qui définit la règle et de modificateurs (ces derniers étant facultatifs), sans aucun ordre
spécifique. La définition se termine par un point-virgule.
Les règles de gabarit (appartenant à la classe TEMPL) sont les règles les plus employées.
Chaque règle de gabarit est associée à une chaîne de gabarit. Une chaîne de gabarit
contient des codes d'édition et des sous-règles. Le traitement d'une chaîne de gabarit consiste
à remplacer les sous-règles et les codes d'édition par les chaînes qu'ils représentent.
Dans une chaîne de gabarit, les sous-règles et les codes d'édition sont précédés du symbole
du dollar et suivis par un point-virgule, afin de les distinguer du texte environnant.
Les caractères valides pour le nom d’une règle sont : les lettres d'ASCII (A-Z et a-z), les
chiffres (0-9) et le trait de soulignement. Le premier caractère d'un nom ne peut pas être un
chiffre. Le nom doit inclure au moins deux caractères et au plus 63. La casse est significative;
par exemple objname et ObjName réfèrent à deux variables différentes.
Les différents champs de la définition sont séparés par un ou plusieurs caractères d'espacement.
Les caractères d'espacement sont : l’espace, la tabulation et la touche RETOUR.
Ces caractères ne réagissent qu’en tant que séparateurs symboliques. La virgule peut être
utilisée en tant que séparateur dans la liste de paramètre d'une définition.
Les commentaires peuvent apparaître n'importe où entre des signes de définition ou entre
des définitions; ils débutent par /* et se terminent par */, ou ils commencent par // et se
terminent par un retour de chariot (à la fin de la ligne).
Les chaînes sont incluses entre guillemets doubles; une longue chaîne peut être divisée en
chaînes plus courtes, séparées par des caractères d'espacement. Lorsqu’un guillemet fermant
est suivi de caractères d'espacement et d’un guillemet ouvrant, les deux chaînes
adjacentes sont considérées comme faisant parties d’une seule chaîne.
Il existe deux types de modificateurs : les valeurs et les drapeaux. Un modificateur de valeur
est suivi par un symbole d’égalité et la valeur. Le modificateur d’un drapeau est isolé. La
plupart des modificateurs de valeur prennent pour valeur une règle, exprimé au moyen
d’une chaîne insérée entre guillemets.
Exemple :
drop_table TEMPL "DROP TABLE $TableName;;";
Cet énoncé définit une sous-règle de drop_table de classe TEMPL. Le paramètre est une
chaîne de gabarit faisant référence à la sous-règle de TableName qui doit être définie
ailleurs dans le fichier gabarit. Par exemple, si la règle TableName donne "département"
comme résultat, alors le résultat de la variable drop_table sera "DROP TABLE département;".
Les règles de classes et
les modificateurs doivent
être écrit en lettre
majuscule.