]> git.saurik.com Git - bison.git/blobdiff - doc/bison.1
Regen.
[bison.git] / doc / bison.1
index 0357819c6a3c514751c1b6e6f5d1659822c0bd60..5e1d962d8bf14cb29f769b18201d058fe88859df 100644 (file)
@@ -10,7 +10,11 @@ bison \- GNU Project parser generator (yacc replacement)
 ] [
 .B \-d
 ] [
-.B \-\-defines
+.BI \-\-defines= defines-file
+] [
+.B \-g
+] [
+.BI \-\-graph= graph-file
 ] [
 .B \-k
 ] [
@@ -55,6 +59,11 @@ bison \- GNU Project parser generator (yacc replacement)
 .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
@@ -71,13 +80,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
@@ -109,13 +127,11 @@ 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.
+\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 ,
@@ -124,10 +140,10 @@ as well as a few
 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
@@ -136,13 +152,41 @@ in a separate source file, because
 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 \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
+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
@@ -172,9 +216,13 @@ parser file, treating it an independent source file in its own right.
 .ns
 .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
+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
@@ -225,9 +273,9 @@ and so on.
 .ns
 .TP
 .B \-\-debug
-Output a definition of the macro
+In the parser file, define the macro
 .B YYDEBUG
-into the parser file,
+to 1 if it is not already defined,
 so that the debugging facilities are compiled.
 .TP
 .B \-v
@@ -297,29 +345,16 @@ The purpose of this switch is to imitate
 .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
-.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