Nom
yacc - un générateur d'analyseurs syntaxiques LALR(1)
Résumé
yacc [ -dlrtv ] [ -b préfixe_fichier ] [ -o nomfichier_sortie ] [ -p préfixe_symbole ]
nom_fichier
Description
yacc lit la spécification de la grammaire à partir du fichier
nom_fichier et génère un analyseur syntaxique (parser) LR(1) lui correspondant. Les analyseurs syntaxiques sont constitués d'un ensemble de tables d'analyse LALR(1) et d'une routine de pilotage écrite dans le langage de programmation C.
yacc écrit normalement les tables d'analyse et la routine de pilotage dans le fichier
y.tab.c .
Les options suivantes sont disponibles :
| | -b préfixe_fichier Remplacer le préfixe utilisé par les noms de fichiers de sortie par la chaîne de caractères préfixe_fichier . Le préfixe par défaut est le caractère y . |
-d
| Écrire le fichier d'en-tête y.tab.h . |
-l
| Si l'option -l n'est pas spécifiée, yacc insérera des directives #line dans le code généré. Elles permettent au compilateur C d'associer des erreurs présentes à l'intérieur du code généré avec le code original de l'utilisateur. Si l'option -l est spécifiée, yacc n'insérera pas de directive #line. Les directives #line spécifiées par l'utilisateur seront maintenues. |
| -o nomfichier_sortie Écrire le code généré dans nomfichier_sortie , au lieu du fichier par défaut, à savoir y.tab.c . |
| -p préfixe_symbole Remplacer le préfixe qu'utilisent les symboles générés par yacc par la chaîne de caractères préfixe_symbole . Le préfixe par défaut est la chaîne de caractères yy . |
-r
| Produire des fichiers séparés pour le code et les tables. Le fichier de code est nommé y.code.c ; le fichier de tables est nommé y.tab.c . |
-t
| Modifier les directives de prétraitement générées par yacc afin que les instructions de débogage soient incorporées dans le code compilé. |
-v
| Écrire une description (lisible par un humain) de l'analyseur généré dans le fichier y.output . |
|
Si la variable d'environnement TMPDIR est définie, la chaîne de caractères qu'elle désigne indiquera le nom du répertoire où sont créés les fichiers temporaires.
Fichiers
y.code.c
y.tab.c
y.tab.h
y.output
/tmp/yacc.aXXXXXX
/tmp/yacc.tXXXXXX
/tmp/yacc.uXXXXXX
Diagnostiques
S'il y a des règles qui ne sont jamais réduites, leur nombre sera rapporté sur la sortie d'erreur standard. S'il y a des conflits LALR(1), leur nombre y sera également indiqué.
Traduction
Frédéric Delanoy <
delanoy_f at yahoo.com>, 2002.