table of contents
BISON(1) | General Commands Manual | BISON(1) |
NOM¶
bison - Le générateur d'analyseur syntaxique du Projet GNU (substitut de yacc)
SYNOPSIS¶
bison [ -b file-prefix ] [ --file-prefix=file-prefix ] [ -d ] [ --defines ] [ -g ] [ --graph ] [ -k ] [ --token-table ] [ -l ] [ --no-lines ] [ -n ] [ --no-parser ] [ -o outfile ] [ --output-file=outfile ] [ -p prefix ] [ --name-prefix=prefix ] [ -t ] [ --debug ] [ -v ] [ --verbose ] [ -V ] [ --version ] [ -y ] [ --yacc ] [ -h ] [ --help ] [ --fixed-output-files ] file
DESCRIPTION¶
Bison est un générateur d'analyseur syntaxique dans le style de yacc(1). Il se veut offrir une compatibilité ascendante avec les fichiers d'entrée écrits pour yacc.
Les fichiers d'entrée devront suivre la convention
yacc des noms se terminant en .y.
À l'inverse de yacc, les fichiers générés
n'ont pas un nom prédestiné, mais utilisent le préfixe
du fichier d'entrée. En outre, si vous avez besoin d'écrire du
code C++ dans votre fichier, vous pouvez terminer son nom par une
extension à la C++ (.ypp ou .y++), et bison respectera votre
extension pour nommer le fichier de sortie (.cpp or .c++). Par exemple, un
fichier de description de grammaire nommé parse.yxx produira
un analyseur dans un fichier nommé parse.tab.cxx, au lieu du
y.tab.c de yacc ou du parse.tab.c des anciennes
versions de bison.
La présente description des options de la commande bison est adaptée du noeud Invocation du manuel bison.texinfo, qui doit être considéré comme faisant autorité.
bison supporte à la fois les options traditionelles à une lettre et les options à noms longs mnémoniques. Les noms longs sont indiqués par -- au lieu de -. Les noms abrégés sont permis pourvu qu'ils soient uniques. Lorsqu'une option longue prend un argument, comme --file-prefix, connectez le nom de l'option et l'argument avec =.
OPTIONS¶
- -b file-prefix
-
- --file-prefix=file-prefix
- Spécifie un préfixe à utiliser pour le nom de tous les fichiers bison générés. Les noms sont choisis comme si le fichier d'entrée était nommé file-prefix.c.
- -d
-
- --defines
- Génère un fichier de sortie supplémentaire contenant
des définitions de macros pour les types de tokens de la grammaire,
le type « valeur sémantique »
YYSTYPE, ainsi que quelques déclarations de variables
extern.
Si l'analyseur généré est nommé name.c , le fichier supplémentaire sera nommé name.h.
Ce fichier est essentiel si vous souhaitez définir yylex dans un fichier source séparé, car yylex doit pouvoir accéder aux codes des types de tokens et à la variable yylval.
- -g
-
- --graph
- Génère une définition VCG de l'automate de grammaire LALR(1) calculé par Bison. Si le fichier de grammaire est nommé foo.y, le fichie VCG en sortie sera nommé foo.vcg.
- -k
-
- --token-table
- Cette option force le fichier de sortie name.tab.c à inclure la liste des noms de tokens triée par numéro de token ; elle est définie dans le tableau yytname. Seront également générés des #defines pour YYNTOKENS, YYNNTS, YYNRULES, et YYNSTATES.
- -l
-
- --no-lines
- Interdit l'insertion de commandes préprocesseur #line dans le fichier analyseur. Habituellement, bison insère ces commandes de sorte que le compilateur C et les débogueurs associent d'éventuelles erreurs à votre fichier source, c'est-à-dire à la grammaire. Cette option les associera au fichier analyseur, le traitant comme un fichier source indépendant de plein droit.
- -n
-
- --no-parser
- Empêche la génération du code de l'analyseur vers le fichier de sortie ; ne génère que les déclarations. Le fichier name.tab.c généré ne comportera que des déclarations de constantes. De plus, un fichier name.act est produit qui contient un corps d'instruction switch avec toutes les actions traduites.
- -o outfile
-
- --output-file=outfile
- Spécifie le nom outfile du fichier analyseur.
Le nom des autres fichiers en sortie est construit sur outfile comme décrit pour les options -v et -d .
- -p prefix
-
- --name-prefix=prefix
- Renomme les symboles externes utilisés par l'analyseur de sorte
qu'ils commencent par prefix au lieu de yy. La liste exacte
des symboles renommés est yyparse, yylex,
yyerror, yylval, yychar, et yydebug.
Par exemple, si vous utilisez -p c, les noms deviennent cparse, clex, et ainsi de suite.
- -t
-
- --debug
- Insère la définition de la macro YYDEBUG dans le fichier analyseur, de sorte que les facilités de débogage sont compilées.
- -v
-
- --verbose
- Génère un fichier supplémentaire en sortie, qui
contient la description détaillée des états de
l'analyseur et des actions entreprises pour chaque token en
prélecture dans cet état.
Ce fichier décrit également tous les conflits, à la fois ceux résolus par priorité d'opérateur et ceux non résolus.
Son nom est construit en enlevant .tab.c ou .c du nom du fichier analyseur, et en ajoutant .output à la place.
Ainsi si le fichier en entrée est foo.y, le fichier analyseur est appelé foo.tab.c par défaut. En conséquence, le fichier verbose est appelé foo.output.
- -V
-
- --version
- Affiche le numéro de version de bison et termine.
- -h
-
- --help
- Affiche un résumé des options de bison et termine.
- -y
-
- --yacc
-
- --fixed-output-files
- Équivalent à -o y.tab.c; le fichier analyseur est appelé y.tab.c, et les autres sorties y.output et y.tab.h. Cette option a pour but d'émuler la convention de nommage de yacc. Ainsi le script shell suivant peut se substituer à yacc :
FICHIERS¶
/usr/local/share/bison/bison.simple un analyseur simple
/usr/local/share/bison/bison.hairy un analyseur plus complexe
VARIABLES D'ENVIRONNEMENT¶
- BISON_SIMPLE
- Si cette variable est définie, elle spécifie l'endroit où se trouve l'analyseur bison.simple
- BISON_HAIRY
- Si cette variable est définie, elle spécifie l'endroit où se trouve l'analyseur bison.hairy
VOIR AUSSI¶
yacc(1)
Le Bison Reference Manual, inclus en tant que bison.texinfo dans
la distribution source de bison
local |