.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
.TH BISON "1" "January 2015" "bison 3.0.4" "User Commands"
.SH NAME
bison \- GNU Project parser generator (yacc replacement)
.SH SYNOPSIS
.B bison
[\fI\,OPTION\/\fR]... \fI\,FILE\/\fR
.SH DESCRIPTION
.I Bison
is a parser generator in the style of
.IR yacc (1).
It should be upwardly compatible with input files designed
for
.IR yacc .
.PP
Input files should follow the
.I yacc
convention of ending in
.BR .y .
Unlike
.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.yxx
would produce the generated parser in a file named
.BR parse.tab.cxx ,
instead of
.IR yacc 's
.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
is adapted from the node
.B Invocation
in the
.B bison.texi
manual, which should be taken as authoritative.
.PP
.I Bison
supports both traditional single-letter options and mnemonic long
option names.  Long option names are indicated with
.B \-\-
instead of
.BR \- .
Abbreviations for option names are allowed as long as they
are unique.  When a long option takes an argument, like
.BR \-\-file-prefix ,
connect the option name and the argument with
.BR = .
.PP
Generate a deterministic LR or generalized LR (GLR) parser employing
LALR(1), IELR(1), or canonical LR(1) parser tables.  IELR(1) and
canonical LR(1) support is experimental.
.PP
Mandatory arguments to long options are mandatory for short options too.
The same is true for optional arguments.
.SS "Operation modes:"
.TP
\fB\-h\fR, \fB\-\-help\fR
display this help and exit
.TP
\fB\-V\fR, \fB\-\-version\fR
output version information and exit
.TP
\fB\-\-print\-localedir\fR
output directory containing locale\-dependent data
.TP
\fB\-\-print\-datadir\fR
output directory containing skeletons and XSLT
.TP
\fB\-y\fR, \fB\-\-yacc\fR
emulate POSIX Yacc
.TP
\fB\-W\fR, \fB\-\-warnings\fR[=\fI\,CATEGORY\/\fR]
report the warnings falling in CATEGORY
.TP
\fB\-f\fR, \fB\-\-feature\fR[=\fI\,FEATURE\/\fR]
activate miscellaneous features
.SS "Parser:"
.TP
\fB\-L\fR, \fB\-\-language\fR=\fI\,LANGUAGE\/\fR
specify the output programming language
.TP
\fB\-S\fR, \fB\-\-skeleton\fR=\fI\,FILE\/\fR
specify the skeleton to use
.TP
\fB\-t\fR, \fB\-\-debug\fR
instrument the parser for tracing
same as '\-Dparse.trace'
.TP
\fB\-\-locations\fR
enable location support
.TP
\fB\-D\fR, \fB\-\-define=NAME\fR[=\fI\,VALUE\/\fR]
similar to '%define NAME "VALUE"'
.TP
\fB\-F\fR, \fB\-\-force\-define=NAME\fR[=\fI\,VALUE\/\fR]
override '%define NAME "VALUE"'
.TP
\fB\-p\fR, \fB\-\-name\-prefix\fR=\fI\,PREFIX\/\fR
prepend PREFIX to the external symbols
deprecated by '\-Dapi.prefix=PREFIX'
.TP
\fB\-l\fR, \fB\-\-no\-lines\fR
don't generate '#line' directives
.TP
\fB\-k\fR, \fB\-\-token\-table\fR
include a table of token names
.SS "Output:"
.TP
\fB\-\-defines\fR[=\fI\,FILE\/\fR]
also produce a header file
.TP
\fB\-d\fR
likewise but cannot specify FILE (for POSIX Yacc)
.TP
\fB\-r\fR, \fB\-\-report\fR=\fI\,THINGS\/\fR
also produce details on the automaton
.TP
\fB\-\-report\-file\fR=\fI\,FILE\/\fR
write report to FILE
.TP
\fB\-v\fR, \fB\-\-verbose\fR
same as '\-\-report=state'
.TP
\fB\-b\fR, \fB\-\-file\-prefix\fR=\fI\,PREFIX\/\fR
specify a PREFIX for output files
.TP
\fB\-o\fR, \fB\-\-output\fR=\fI\,FILE\/\fR
leave output to FILE
.TP
\fB\-g\fR, \fB\-\-graph\fR[=\fI\,FILE\/\fR]
also output a graph of the automaton
.TP
\fB\-x\fR, \fB\-\-xml\fR[=\fI\,FILE\/\fR]
also output an XML report of the automaton
(the XML schema is experimental)
.SS "Warning categories include:"
.TP
\&'midrule\-values'
unset or unused midrule values
.TP
\&'yacc'
incompatibilities with POSIX Yacc
.TP
\&'conflicts\-sr'
S/R conflicts (enabled by default)
.TP
\&'conflicts\-rr'
R/R conflicts (enabled by default)
.TP
\&'deprecated'
obsolete constructs
.TP
\&'empty\-rule'
empty rules without %empty
.TP
\&'precedence'
useless precedence and associativity
.TP
\&'other'
all other warnings (enabled by default)
.TP
\&'all'
all the warnings except 'yacc'
.TP
\&'no\-CATEGORY'
turn off warnings in CATEGORY
.TP
\&'none'
turn off all the warnings
.TP
\&'error[=CATEGORY]'
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
.SS "FEATURE is a list of comma separated words that can include:"
.TP
\&'caret'
show errors with carets
.TP
\&'all'
all of the above
.TP
\&'none'
disable all of the above
.SH AUTHOR
Written by Robert Corbett and Richard Stallman.
.SH "REPORTING BUGS"
Report bugs to <bug\-bison@gnu.org>.
.br
GNU Bison home page: <http://www.gnu.org/software/bison/>.
.br
General help using GNU software: <http://www.gnu.org/gethelp/>.
.PP
.br
Report translation bugs to <http://translationproject.org/team/>.
.br
For complete documentation, run: info bison.
.SH COPYRIGHT
Copyright \(co 2015 Free Software Foundation, Inc.
.br
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
.B bison
programs are properly installed at your site, the command
.IP
.B info bison
.PP
should give you access to the complete manual.
