Linux

CentOS 5.3

bison(1)


BISON

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)


bison(1)