Node:Bison Options, Next:Option Cross Key, Up:Invocation
Bison supports both traditional single-letter options and mnemonic long
option names. Long option names are indicated with --
instead of
-
. Abbreviations for option names are allowed as long as they
are unique. When a long option takes an argument, like
--file-prefix
, connect the option name and the argument with
=
.
Here is a list of options that can be used with Bison, alphabetized by short option. It is followed by a cross key alphabetized by long option.
-b file-prefix
--file-prefix=prefix
prefix.c
.
-d
--defines
YYSTYPE
, as well as a few extern
variable declarations.
If the parser output file is named name.c
then this file
is named name.h
.
This output file is essential if you wish to put the definition of
yylex
in a separate source file, because yylex
needs to
be able to refer to token type codes and the variable
yylval
. See Semantic Values of Tokens.
-l
--no-lines
#line
preprocessor commands in the parser file.
Ordinarily Bison puts them in the parser file so that the C compiler
and debuggers will associate errors with your source file, the
grammar file. This option causes them to associate errors with the
parser file, treating it an independent source file in its own right.
-o outfile
--output-file=outfile
The other output files' names are constructed from outfile
as described under the -v
and -d
switches.
-p prefix
--name-prefix=prefix
yy
. The precise list of symbols renamed
is yyparse
, yylex
, yyerror
, yylval
,
yychar
and yydebug
.
For example, if you use -p c
, the names become cparse
,
clex
, and so on.
-t
--debug
YYDEBUG
into the parser file,
so that the debugging facilities are compiled. See Debugging Your Parser.
-v
--verbose
This file also describes all the conflicts, both those resolved by operator precedence and the unresolved ones.
The file's name is made by removing .tab.c
or .c
from
the parser output file name, and adding .output
instead.
Therefore, if the input file is foo.y
, then the parser file is
called foo.tab.c
by default. As a consequence, the verbose
output file is called foo.output
.
-V
--version
-h
--help
-y
--yacc
--fixed-output-files
-o y.tab.c
; the parser output file is called
y.tab.c
, and the other outputs are called y.output
and
y.tab.h
. The purpose of this switch is to imitate Yacc's output
file name conventions. Thus, the following shell script can substitute
for Yacc:
bison -y $*