Linux

CentOS 5.3

yacc(1)


YACC

NOM

yacc − un générateur d’analyseurs syntaxiques LALR(1)

SYNOPSIS

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

DIAGNOSTICS

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.


yacc(1)