NOM¶
jeu.rules - Jeu de regles pour acheck
DESCRIPTION¶
Les fichiers de jeu de regles contiennent les regles qu'acheck doit verifier.
Les lignes commencant par un diese (X
# X) et les lignes
vides sont ignorees. Les espaces au debut et a la fin d'une ligne sont aussi
ignores ainsi que les tabulations. Si vous avez besoin d'espaces a la fin ou
au debut d'une valeur, vous pouvez utilisez des guillemets anglo-saxons
(X
" X). Un commentaire commence par un diese, il
peut y avoir des espaces ou des tabulations devant le diese. Les lignes
longues peuvent etre coupees en plusieurs lignes se terminant par une barre
oblique inversee (X
\ X).
Quelques exemples :
# cette ligne est ignoree
champ valeur
champ valeur # ceci est un commentaire
champ "valeur avec espaces a la fin "
champ valeur\
se poursuivant sur la ligne suivante
Vous devez proteger le caractere diese avec une barre oblique inversee si vous
voulez l'utiliser dans une valeur et utiliser des apostrophes si une valeur
contient une barre oblique inversee.
Les jeux de regles sont constitues de listes de regles. Ces listes peuvent etre
repetees un certain nombre de fois, jusqu'a ce que ou tant qu'une condition
est verifiee.
Une regle detecte une erreur si le test correspondant est vrai et qu'aucun de
ses tests de validation ne l'est. Chaque regle peut produire des corrections,
un avertissement ou une erreur, et fournir des commentaires pour aider
l'operateur a corriger l'erreur.
Des parties du texte peuvent etre definies comme commentaires et ainsi aucune
regle ni verification orthographique de sera faite dessus.
FICHIER DE REGLES¶
REGLES DE SYNTAXE¶
list¶
Une liste debute a une indication X
list X et se termine
au premier X
end_list X ou a la fin du fichier.
Champs obligatoires :
- type type
- until, repete la liste jusqu'a ce que la ligne courante verifie
X test X ;
- while, repete la liste tant que la ligne courante verifie
X test X ;
- loop, repete la liste X test X fois.
- test regex / nombre
- Une expression rationnelle pour les listes X until X
et X while X. Le nombre de fois que la liste doit
etre repetee pour X loop X, ou X 0 X
pour une boucle infinie.
Champs optionnels :
- name nom
- Utilisez ceci pour nommer la liste.
- spell yes / no
- Positionner a X yes X (oui, valeur par defaut) ou
X no X (non), selon que vous voulez ou pas que l'orthographe
soit verifiee pour les lignes de cette liste. Cette valeur est heritee par
les sous-listes.
Sous-regles :
- list [nom]
- rule [nom]
- comment [nom]
- Suivi par le nom de la sous-regle ou sa definition pour une sous-regle
anonyme.
rule¶
Une regle debute a une indication X
rule X et se termine
au premier X
end_rule X ou au debut d'un commentaire ou
d'une liste.
Champs obligatoires :
- type type
- fix, regle fournissant dans corrections et des commentaires dans un
menu ;
- autofix, regle corrigeant une erreur sans interaction ;
- warning, regle produisant un avertissement ;
- error, regle produisant une erreur ;
- nop, regle speciale ne faisant rien, les autres champs ne sont pas
obligatoires.
- regex regex
- L'expression rationnelle qui doit etre verifiee pour trouver cette erreur.
Des motifs peuvent etre captures pour etre utilises ensuite dans les
expressions X fix X.
- fix expression
- Fournit une correction pour la regle, ce champ peut etre repete pour
fournir plusieurs choix. Seule la premiere est utilisee pour les regles
X autofix X. Les regles
X warning X et X error X ne
fournissent pas de correction. Les motifs captures sont utilisables ici
avec les variables X $1 X, X
$2 X, etc.
- hint texte
- Fournit des explications, elles sont utilisees comme commentaire de
relecture en mode relecture.
Champs optionnels :
- name nom
- Utilisez ceci pour nommer la regle.
- valid [name]
- Fournit un test de validation, il peut etre nomme ou anonyme. Pour les
validations anonymes, la definition du test doit suivre. Ce champ peut
etre repete plusieurs fois, il suffit que l'un des tests de validation
soit reussi pour que la regle ne soit pas appliquee.
valid¶
Un test de validation debute a une indication X
valid X et
se termine au premier X
end_valid X ou au debut d'une
regle, 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 apres le motif trouve
par l'expression rationnelle de la regle. Au moins l'un de ces test doit
etre fourni. Si tous les tests reussissent, la regle n'est pas
appliquee.
Champ optionnel :
- name nom
- Utilisez ceci pour nommer le test.
Un commentaire debute a une indication X
comment X et se
termine au premier X
end_comment X ou au debut d'une
regle, d'un commentaire ou d'une liste.
Champs obligatoires :
- skip regex
- Une expression rationnelle correspondant au texte du commentaire. Ne pas
utiliser X start X ou X stop X
avec ceci.
- start regex
- stop regex
- Expressions rationnelles definissant le debut et la fin d'un commentaire,
tout le texte contenu entre est considere comme commentaire. Ne pas
utiliser X skip X avec ceci.
Champs optionnels :
- name nom
- Utilisez ceci pour nommer le commentaire.
- start_offset
- stop_offset
- Definit ou le commentaire commence et s'arrete reellement. Les valeurs
possibles sont X s X pour le debut du motif trouve,
X s+<n> X pour n caracteres apres le
debut du motif, X e X pour la fin du motif, ou
X e-<n> X pour n caracteres avant la
fin du motif. Par defaut, X s X est utilise pour les
motifs de debut de commentaire, et X e X pour ceux
de fin.
VOYEZ AUSSI¶
acheck(1),
acheck(5)
AUTEUR¶
Nicolas Bertolissio <nico.bertol@free.fr>