] [
.B \-d
] [
-.B \-\-defines
+.BI \-\-defines= defines-file
+] [
+.B \-g
+] [
+.BI \-\-graph= graph-file
+] [
+.B \-k
+] [
+.B \-\-token-table
] [
.B \-l
] [
.B \-\-no-lines
] [
+.B \-n
+] [
+.B \-\-no-parser
+] [
.BI \-o " outfile"
] [
.BI \-\-output-file= outfile
.B \-\-fixed-output-files
]
file
+.br
+.B yacc
+[
+.I "similar options and operands"
+]
.SH DESCRIPTION
.I Bison
is a parser generator in the style of
.IR yacc ,
the generated files do not have fixed names, but instead use the prefix
of the input file.
+Moreover, if you need to put
+.I C++
+code in the input file, you can end his name by a C++-like extension
+(.ypp or .y++), then bison will follow your extension to name the
+output file (.cpp or .c++).
For instance, a grammar description file named
-.B parse.y
+.B parse.yxx
would produce the generated parser in a file named
-.BR parse.tab.c ,
+.BR parse.tab.cxx ,
instead of
.IR yacc 's
-.BR y.tab.c .
+.B y.tab.c
+or old
+.I Bison
+version's
+.BR parse.tab.c .
.PP
This description of the options that can be given to
.I bison
.I bison
output file names. The names are
chosen as if the input file were named
-\fIfile-prefix\fB.c\fR.
+\fIfile-prefix\fP\fB.c\fP.
.TP
.B \-d
.br
.ns
-.TP
-.B \-\-defines
Write an extra output file containing macro definitions for the token
type names defined in the grammar and the semantic value type
.BR YYSTYPE ,
variable declarations.
.sp
If the parser output file is named
-\fIname\fB.c\fR
+.IB name .c
then this file
is named
-\fIname\fB.h\fR.
+\fIname\fP\fB.h\fP.
.sp
This output file is essential if you wish to put the definition of
.B yylex
needs to be able to refer to token type codes and the variable
.BR yylval .
.TP
+.BI \-\-defines= defines-file
+The behavior of
+.B \-\-defines
+is the same than
+.B \-d
+option.
+The only difference is that it has an optional argument which is
+the name of the output filename.
+.TP
+.BI \-g
+.br
+.ns
+Output a VCG definition of the LALR(1) grammar automaton computed by
+Bison. If the grammar file is
+.BR foo.y
+, the VCG output file will be
+.BR foo.vcg .
+.TP
+.BI \-\-graph= graph-file
+The behavior of
+.BI \-\-graph
+is the same than
+.BI \-g
+option. The only difference is that it has an optional argument which
+is the name of the output graph filename.
+.TP
+.B \-k
+.br
+.ns
+.TP
+.B \-\-token-table
+This switch causes the
+.IB name .tab.c
+output to include a list of
+token names in order by their token numbers; this is defined in the array
+.IR yytname .
+Also generated
+are #defines for
+.IR YYNTOKENS ,
+.IR YYNNTS ,
+.IR YYNRULES ,
+and
+.IR YYNSTATES .
+.TP
.B \-l
.br
.ns
grammar file. This option causes them to associate errors with the
parser file, treating it an independent source file in its own right.
.TP
+.B \-n
+.br
+.ns
+.TP
+.B \-\-no-parser
+Do not generate the parser code into the output; generate only
+declarations. The generated
+.IB name .tab.c
+file will have only
+constant declarations. In addition, a
+.IB name .act
+file is
+generated containing a switch statement body containing all the
+translated actions.
+.TP
.BI \-o " outfile"
.br
.ns
.BR yylex ,
.BR yyerror ,
.BR yylval ,
-.BR yychar ,
+.BR yychar ,
and
.BR yydebug .
.sp
.ns
.TP
.B \-\-debug
-Output a definition of the macro
-.B YYDEBUG
-into the parser file,
+In the parser file, define the macro
+.B YYDEBUG
+to 1 if it is not already defined,
so that the debugging facilities are compiled.
.TP
.B \-v
.IR yacc 's
output file name conventions.
Thus, the following shell script can substitute for
+.I yacc
+and is often installed as
.IR yacc :
.sp
.RS
.ft B
-bison \-y $*
+bison \-y "$@"
.ft R
.sp
.RE
-.PP
-The long-named options can be introduced with `+' as well as `\-\-',
-for compatibility with previous releases. Eventually support for `+'
-will be removed, because it is incompatible with the POSIX.2 standard.
-.SH FILES
-/usr/local/lib/bison.simple simple parser
-.br
-/usr/local/lib/bison.hairy complicated parser
.SH SEE ALSO
.IR yacc (1)
.br
source distribution.
.SH DIAGNOSTICS
Self explanatory.
-