]> git.saurik.com Git - bison.git/blobdiff - doc/bison.1
Fix untranslatable composition of sentences.
[bison.git] / doc / bison.1
index 0357819c6a3c514751c1b6e6f5d1659822c0bd60..2d13b4c544e18f0611db191b9190a30d7efd1425 100644 (file)
@@ -1,60 +1,10 @@
-.TH BISON 1 local
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+.TH BISON "1" "July 2008" "bison 2.3b+" "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 \-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
@@ -71,13 +21,22 @@ 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.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
@@ -98,237 +57,143 @@ are unique.  When a long option takes an argument, like
 .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.
+The same is true for optional arguments.
+.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 \-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 .
+\fB\-\-print\-localedir\fR
+output directory containing locale\-dependent data
 .TP
-.B \-l
-.br
-.ns
+\fB\-\-print\-datadir\fR
+output directory containing skeletons and XSLT
 .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\-y\fR, \fB\-\-yacc\fR
+emulate POSIX Yacc
 .TP
-.B \-n
-.br
-.ns
+\fB\-W\fR, \fB\-\-warnings\fR=\fI[CATEGORY]\fR
+report the warnings falling in CATEGORY
+.SS "Parser:"
 .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\-L\fR, \fB\-\-language\fR=\fILANGUAGE\fR
+specify the output programming language
 .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\-S\fR, \fB\-\-skeleton\fR=\fIFILE\fR
+specify the skeleton to use
 .TP
-.BI \-p " prefix"
-.br
-.ns
+\fB\-t\fR, \fB\-\-debug\fR
+instrument the parser for debugging
 .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\-\-locations\fR
+enable locations computation
 .TP
-.B \-\-debug
-Output a definition of the macro
-.B YYDEBUG
-into the parser file,
-so that the debugging facilities are compiled.
+\fB\-p\fR, \fB\-\-name\-prefix\fR=\fIPREFIX\fR
+prepend PREFIX to the external symbols
 .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\-l\fR, \fB\-\-no\-lines\fR
+don't generate `#line' directives
 .TP
-.B \-\-version
-Print the version number of
-.I bison
-and exit.
+\fB\-k\fR, \fB\-\-token\-table\fR
+include a table of token names
+.SS "Output:"
 .TP
-.B \-h
-.br
-.ns
+\fB\-\-defines\fR[=\fIFILE\fR]
+also produce a header file
 .TP
-.B \-\-help
-Print a summary of the options to
-.I bison
-and exit.
+\fB\-d\fR
+likewise but cannot specify FILE (for POSIX Yacc)
 .TP
-.B \-y
-.br
-.ns
+\fB\-r\fR, \fB\-\-report\fR=\fITHINGS\fR
+also produce details on the automaton
+.TP
+\fB\-\-report\-file\fR=\fIFILE\fR
+write report to FILE
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+same as `\-\-report=state'
+.TP
+\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
+(the XML schema is experimental)
+.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>.
+.PP
+Id
+.SH COPYRIGHT
+Copyright \(co 2008 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
-.SH FILES
-/usr/local/lib/bison.simple    simple parser
-.br
-/usr/local/lib/bison.hairy     complicated parser
-.SH "ENVIRONMENT VARIABLES"
-.TP
-.SM BISON_SIMPLE
-If this is set, it specifies the location in which the
-.B bison.simple
-parser can be found.
-.TP
-.SM BISON_HAIRY
-If this is set, it specifies the location in which the
-.B bison.hairy
-parser can be found.
-.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.
+.B bison
+programs are properly installed at your site, the command
+.IP
+.B info bison
+.PP
+should give you access to the complete manual.