Content-type: text/html
Manpage of BISON
BISON
Section: User Commands (1)
Updated: local
Index
Return to Main Contents
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 :
-
bison -y $*
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
DIAGNOSTICS
(trivial)
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- FICHIERS
-
- VARIABLES D'ENVIRONNEMENT
-
- VOIR AUSSI
-
- DIAGNOSTICS
-
This document was created by
man2html,
using the manual pages.
Time: 20:41:52 GMT, July 10, 2005