NOM¶
jeu.rules - Jeu de règles pour acheck
DESCRIPTION¶
Les fichiers de jeu de règles contiennent les règles qu'acheck doit
vérifier.
Les lignes commençant par un dièse («
# »)
et les lignes vides sont ignorées. Les espaces au début et à la
fin d'une ligne sont aussi ignorés ainsi que les tabulations. Si vous
avez besoin d'espaces à la fin ou au début d'une valeur, vous pouvez
utilisez des guillemets anglo-saxons («
" »).
Un commentaire commence par un dièse, il peut y avoir des espaces ou des
tabulations devant le dièse. Les lignes longues peuvent être
coupées en plusieurs lignes se terminant par une barre oblique
inversée («
\ »).
Quelques exemples :
# cette ligne est ignorée
champ valeur
champ valeur # ceci est un commentaire
champ "valeur avec espaces à la fin "
champ valeur\
se poursuivant sur la ligne suivante
Vous devez protéger le caractère dièse avec une barre oblique
inversée si vous voulez l'utiliser dans une valeur et utiliser des
apostrophes si une valeur contient une barre oblique inversée.
Les jeux de règles sont constitués de listes de règles. Ces
listes peuvent être répétées un certain nombre de fois,
jusqu'à ce que ou tant qu'une condition est vérifiée.
Une règle détecte une erreur si le test correspondant est vrai et
qu'aucun de ses tests de validation ne l'est. Chaque règle peut produire
des corrections, un avertissement ou une erreur, et fournir des commentaires
pour aider l'opérateur à corriger l'erreur.
Des parties du texte peuvent être définies comme commentaires et ainsi
aucune règle ni vérification orthographique de sera faite dessus.
FICHIER DE RÈGLES¶
RÈGLES DE SYNTAXE¶
list
Une liste débute à une indication «
list »
et se termine au premier «
end_list » ou à la
fin du fichier.
Champs obligatoires :
- type type
- until, répète la liste jusqu'à ce que
la ligne courante vérifie «
test » ;
- while, répète la liste tant que la ligne
courante vérifie « test » ;
- loop, répète la liste
« test » fois.
- test regex / nombre
- Une expression rationnelle pour les listes
« until » et «
while ». Le nombre de fois que la liste doit être
répétée pour « loop », ou
« 0 » pour une boucle infinie.
Champs optionnels :
- name nom
- Utilisez ceci pour nommer la liste.
- spell yes / no
- Positionner à « yes » (oui,
valeur par défaut) ou « no » (non), selon que
vous voulez ou pas que l'orthographe soit vérifiée pour les
lignes de cette liste. Cette valeur est héritée par les
sous-listes.
Sous-règles :
- list [nom]
- rule [nom]
- comment [nom]
- Suivi par le nom de la sous-règle ou sa
définition pour une sous-règle anonyme.
rule
Une règle débute à une indication «
rule » et se termine au premier «
end_rule » ou au début d'un commentaire ou d'une liste.
Champs obligatoires :
- type type
- fix, règle fournissant dans corrections et des
commentaires dans un menu ;
- autofix, règle corrigeant une erreur sans
intéraction ;
- warning, règle produisant un
avertissement ;
- error, règle produisant une erreur ;
- nop, règle spéciale ne faisant rien, les
autres champs ne sont pas obligatoires.
- regex regex
- L'expression rationnelle qui doit être
vérifiée pour trouver cette erreur. Des motifs peuvent être
capturés pour être utilisés ensuite dans les expressions
« fix ».
- fix expression
- Fournit une correction pour la règle, ce champ peut
être répété pour fournir plusieurs choix. Seule la
première est utilisée pour les règles «
autofix ». Les règles «
warning » et « error » ne
fournissent pas de correction. Les motifs capturés sont utilisables
ici avec les variables « $1 », «
$2 », etc.
- hint texte
- Fournit des explications, elles sont utilisées comme
commentaire de relecture en mode relecture.
Champs optionnels :
- name nom
- Utilisez ceci pour nommer la règle.
- valid [name]
- Fournit un test de validation, il peut être nommé
ou anonyme. Pour les validations anonymes, la définition du test doit
suivre. Ce champ peut être répété plusieurs fois, il
suffit que l'un des tests de validation soit réussi pour que la
règle ne soit pas appliquée.
valid
Un test de validation débute à une indication «
valid » et se termine au premier «
end_valid » ou au début d'une règle, d'un
commentaire, d'une liste, ou d'un autre test de validation.
Champs obligatoires :
- pre regex
- in regex
- post regex
- Teste les expressions rationnelles, avant, dans et
après le motif trouvé par l'expression rationnelle de la
règle. Au moins l'un de ces test doit être fourni. Si tous les
tests réussissent, la règle n'est pas appliquée.
Champ optionnel :
- name nom
- Utilisez ceci pour nommer le test.
comment
Un commentaire débute à une indication «
comment » et se termine au premier «
end_comment » ou au début d'une règle, d'un
commentaire ou d'une liste.
Champs obligatoires :
- skip regex
- Une expression rationnelle correspondant au texte du
commentaire. Ne pas utiliser « start » ou
« stop » avec ceci.
- start regex
- stop regex
- Expressions rationnelles définissant le début et
la fin d'un commentaire, tout le texte contenu entre est
considéré comme commentaire. Ne pas utiliser «
skip » avec ceci.
Champs optionnels :
- name nom
- Utilisez ceci pour nommer le commentaire.
- start_offset
- stop_offset
- Définit où le commentaire commence et
s'arrête réellement. Les valeurs possibles sont «
s » pour le début du motif trouvé, «
s+<n> » pour n caractères après le
début du motif, « e » pour la fin du
motif, ou « e-<n> » pour n
caractères avant la fin du motif. Par défaut, «
s » est utilisé pour les motifs de début de
commentaire, et « e » pour ceux de fin.
VOYEZ AUSSI¶
acheck(1),
acheck(5)
AUTEUR¶
Nicolas Bertolissio <nico.bertol@free.fr>