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.
Une liste débute à une indication
« list » et se termine au premier
« end_list » ou à la fin du
fichier.
Champs obligatoires :
- type type
- 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.
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
- 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.
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.
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.
Nicolas Bertolissio <nico.bertol@free.fr>