III.6 Syntaxe {} signifie que le contenu est facultatif III.6.1 Les blocs déclaratifs III.6.1.1 . Les blocs de chaînes de références D__ ... F_ : [{,}{,}]{[{,}{,}]} Important : Le numéro du bloc doit être unique dans le cadre des blocs de chaîne de référence, il sert à indexer la chaîne de référence Exemple : D_010_Erreur hierarchie code Z probable [B18,ds-2][B20,ds-2][B21,ds-2][B22,ds-2][B23,ds-2][E,ds-2][G,ds-2][I,ds-2][N0,ds-2][N18,ds-2] [M890,ds-2][K703,ds-2][M511,ds-2][R501,ds-2] F_010 III.6.1.2 . Les blocs de règles D__ Règle F_ Important : Le numéro du bloc doit être unique dans le cadre des blocs de règles, il sert à indexer l’intitulé de la règle (commentaire libre) qui sera transmis dans le fichier de sortie. Une règle et un bloc de chaîne de référence peuvent partager le même numéro. Règle = OP1(Arg1;Arg2) ou OP2(Arg1) ou OP3(cible,référence) Arg1 = Arg2 = OP1 ou OP2 ou OP3 ou règle OP1 = ET, OU OP2 = NON OP3 = DANS cible = DP{[critère1{,critère n}]} ou DR{[critère1{,critère n}]} ou DS{[critère1{,critère n}]} ou DD{[critère1{,critère n}]} ou DA{[critère1{,critère n}]} ou DG{[critère1{,critère n}]} ou DT{[critère1{,critère n}]} ou AC{[critère1{,critère n}]} ou CD{[critère1{,critère n}]} ou GH{[critère1{,critère n}]} ou RI{[critère1{,critère n}]} Important : noter la virgule entre les critères référence = [{,}{,}] {[{,} {,}]} Important : noter la virgule entre code et critère ou [*{,}{,}] ou $D_ ou *CDAMDG ou *CDAMTH ou *CMA ou *GHM ou * III.7 Exemple de feuille de règles Ouvrir le fichier CTRIDFxx.dat III.8 Contrôleur de syntaxe : verif01.exe Un utilitaire permet de tester la validité syntaxique des règles : verif01 III.9 Quelques rappels Les nombres de parenthèses ouvrantes et fermantes doivent être égaux. Il ne doit jamais y avoir d'espace ni dans une chaîne de référence, ni dans une règle. Une chaîne de référence peut être définie sur plusieurs lignes. La longueur d'une règle ne doit pas excéder 255 caractères. En cas de retour à la ligne, vérifier qu'il n'y a pas de retour chariot. L'interprétation stoppe si le premier membre d'un OU est vrai, ou encore si le premier membre d'un ET est faux. En choisissant judicieusement l'ordre des opérateurs, on peut optimiser le temps de recherche.