-.TH BISON 1 local
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
+.TH BISON "1" "November 2007" "bison 2.3a+" "User Commands"
.SH NAME
bison \- GNU Project parser generator (yacc replacement)
.SH SYNOPSIS
.B bison
-[
-.BI \-b " file-prefix"
-] [
-.BI \-\-file-prefix= file-prefix
-] [
-.B \-d
-] [
-.B \-\-defines
-] [
-.B \-k
-] [
-.B \-\-token-table
-] [
-.B \-l
-] [
-.B \-\-no-lines
-] [
-.B \-n
-] [
-.B \-\-no-parser
-] [
-.BI \-o " outfile"
-] [
-.BI \-\-output-file= outfile
-] [
-.BI \-p " prefix"
-] [
-.BI \-\-name-prefix= prefix
-] [
-.B \-r
-] [
-.B \-\-raw
-] [
-.B \-t
-] [
-.B \-\-debug
-] [
-.B \-v
-] [
-.B \-\-verbose
-] [
-.B \-V
-] [
-.B \-\-version
-] [
-.B \-y
-] [
-.B \-\-yacc
-] [
-.B \-h
-] [
-.B \-\-help
-] [
-.B \-\-fixed-output-files
-]
-file
+[\fIOPTION\fR]... \fIFILE\fR
.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
.BR \-\-file-prefix ,
connect the option name and the argument with
.BR = .
-.SS OPTIONS
+.PP
+Generate LALR(1) and GLR parsers.
+.PP
+Mandatory arguments to long options are mandatory for short options too.
+.SS "Operation modes:"
.TP
-.BI \-b " file-prefix"
-.br
-.ns
+\fB\-h\fR, \fB\-\-help\fR
+display this help and exit
.TP
-.BI \-\-file-prefix= file-prefix
-Specify a prefix to use for all
-.I bison
-output file names. The names are
-chosen as if the input file were named
-\fIfile-prefix\fB.c\fR.
+\fB\-V\fR, \fB\-\-version\fR
+output version information and exit
.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 ,
-as well as a few
-.B extern
-variable declarations.
-.sp
-If the parser output file is named
-\fIname\fB.c\fR
-then this file
-is named
-\fIname\fB.h\fR.
-.sp
-This output file is essential if you wish to put the definition of
-.B yylex
-in a separate source file, because
-.B yylex
-needs to be able to refer to token type codes and the variable
-.BR yylval .
-.TP
-.B \-r
-.br
-.ns
+\fB\-\-print\-localedir\fR
+output directory containing locale\-dependent data
.TP
-.B \-\-raw
-The token numbers in the \fIname\fB.h\fR file are usually the Yacc compatible
-translations. If this switch is specified, Bison token numbers
-are output instead. (Yacc numbers start at 257 except for single character
-tokens; Bison assigns token numbers sequentially for all tokens
-starting at 3.)
+\fB\-\-print\-datadir\fR
+output directory containing skeletons and XSLT
.TP
-.B \-k
-.br
-.ns
-.TP
-.B \-\-token-table
-This switch causes the \fIname\fB.tab.c\fR 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
+\fB\-y\fR, \fB\-\-yacc\fR
+emulate POSIX Yacc
.TP
-.B \-\-no-lines
-Don't put any
-.B #line
-preprocessor commands in the parser file.
-Ordinarily
-.I 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.
+\fB\-W\fR, \fB\-\-warnings\fR=\fI[CATEGORY]\fR
+report the warnings falling in CATEGORY
+.SS "Parser:"
.TP
-.B \-n
-.br
-.ns
+\fB\-S\fR, \fB\-\-skeleton\fR=\fIFILE\fR
+specify the skeleton to use
.TP
-.B \-\-no-parser
-Do not generate the parser code into the output; generate only
-declarations. The generated \fIname\fB.tab.c\fR file will have only
-constant declarations. In addition, a \fIname\fB.act\fR file is
-generated containing a switch statement body containing all the
-translated actions.
+\fB\-t\fR, \fB\-\-debug\fR
+instrument the parser for debugging
.TP
-.BI \-o " outfile"
-.br
-.ns
-.TP
-.BI \-\-output-file= outfile
-Specify the name
-.I outfile
-for the parser file.
-.sp
-The other output files' names are constructed from
-.I outfile
-as described under the
-.B \-v
-and
-.B \-d
-switches.
+\fB\-\-locations\fR
+enable locations computation
.TP
-.BI \-p " prefix"
-.br
-.ns
+\fB\-p\fR, \fB\-\-name\-prefix\fR=\fIPREFIX\fR
+prepend PREFIX to the external symbols
.TP
-.BI \-\-name-prefix= prefix
-Rename the external symbols used in the parser so that they start with
-.I prefix
-instead of
-.BR yy .
-The precise list of symbols renamed is
-.BR yyparse ,
-.BR yylex ,
-.BR yyerror ,
-.BR yylval ,
-.BR yychar ,
-and
-.BR yydebug .
-.sp
-For example, if you use
-.BR "\-p c" ,
-the names become
-.BR cparse ,
-.BR clex ,
-and so on.
-.TP
-.B \-t
-.br
-.ns
+\fB\-l\fR, \fB\-\-no\-lines\fR
+don't generate `#line' directives
.TP
-.B \-\-debug
-Output a definition of the macro
-.B YYDEBUG
-into the parser file,
-so that the debugging facilities are compiled.
+\fB\-k\fR, \fB\-\-token\-table\fR
+include a table of token names
+.SS "Output:"
.TP
-.B \-v
-.br
-.ns
-.TP
-.B \-\-verbose
-Write an extra output file containing verbose descriptions of the
-parser states and what is done for each type of look-ahead token in
-that state.
-.sp
-This file also describes all the conflicts, both those resolved by
-operator precedence and the unresolved ones.
-.sp
-The file's name is made by removing
-.B .tab.c
-or
-.B .c
-from the parser output file name, and adding
-.B .output
-instead.
-.sp
-Therefore, if the input file is
-.BR foo.y ,
-then the parser file is called
-.B foo.tab.c
-by default. As a consequence, the verbose
-output file is called
-.BR foo.output .
-.TP
-.B \-V
-.br
-.ns
+\fB\-d\fR, \fB\-\-defines\fR[=\fIFILE\fR]
+also produce a header file
.TP
-.B \-\-version
-Print the version number of
-.I bison
-and exit.
+\fB\-r\fR, \fB\-\-report\fR=\fITHINGS\fR
+also produce details on the automaton
.TP
-.B \-h
-.br
-.ns
+\fB\-\-report\-file\fR=\fIFILE\fR
+write report to FILE
.TP
-.B \-\-help
-Print a summary of the options to
-.I bison
-and exit.
+\fB\-v\fR, \fB\-\-verbose\fR
+same as `\-\-report=state'
.TP
-.B \-y
-.br
-.ns
+\fB\-b\fR, \fB\-\-file\-prefix\fR=\fIPREFIX\fR
+specify a PREFIX for output files
.TP
-.B \-\-yacc
+\fB\-o\fR, \fB\-\-output\fR=\fIFILE\fR
+leave output to FILE
+.TP
+\fB\-g\fR, \fB\-\-graph\fR[=\fIFILE\fR]
+also output a graph of the automaton
+.TP
+\fB\-x\fR, \fB\-\-xml\fR[=\fIFILE\fR]
+also output an XML report of the automaton
+.SS "Warning categories include:"
+.TP
+`midrule\-values'
+unset or unused midrule values
+.TP
+`yacc'
+incompatibilities with POSIX YACC
+.TP
+`all'
+all the warnings
+.TP
+`no\-CATEGORY'
+turn off warnings in CATEGORY
+.TP
+`none'
+turn off all the warnings
+.TP
+`error'
+treat warnings as errors
+.SS "THINGS is a list of comma separated words that can include:"
+.TP
+`state'
+describe the states
+.TP
+`itemset'
+complete the core item sets with their closure
+.TP
+`lookahead'
+explicitly associate lookahead tokens to items
+.TP
+`solved'
+describe shift/reduce conflicts solving
+.TP
+`all'
+include all the above information
+.TP
+`none'
+disable the report
+.SH AUTHOR
+Written by Robert Corbett and Richard Stallman.
+.SH "REPORTING BUGS"
+Report bugs to <bug\-bison@gnu.org>.
+.SH COPYRIGHT
+Copyright \(co 2007 Free Software Foundation, Inc.
.br
-.ns
-.TP
-.B \-\-fixed-output-files
-Equivalent to
-.BR "\-o y.tab.c" ;
-the parser output file is called
-.BR y.tab.c ,
-and the other outputs are called
-.B y.output
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+.SH "SEE ALSO"
+.BR lex (1),
+.BR flex (1),
+.BR yacc (1).
+.PP
+The full documentation for
+.B bison
+is maintained as a Texinfo manual. If the
+.B info
and
-.BR y.tab.h .
-The purpose of this switch is to imitate
-.IR yacc 's
-output file name conventions.
-Thus, the following shell script can substitute for
-.IR yacc :
-.sp
-.RS
-.ft B
-bison \-y $*
-.ft R
-.sp
-.RE
+.B bison
+programs are properly installed at your site, the command
+.IP
+.B info bison
.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
-The
-.IR "Bison Reference Manual" ,
-included as the file
-.B bison.texinfo
-in the
-.I bison
-source distribution.
-.SH DIAGNOSTICS
-Self explanatory.
+should give you access to the complete manual.