]> git.saurik.com Git - bison.git/blobdiff - doc/bison.1
* src/LR0.c (augment_automaton): Now that all states have shifts,
[bison.git] / doc / bison.1
index 471952d93242907abfdf59e0df836135beb63627..927a128f8a0a31654c15984e592d3f11272e7a3f 100644 (file)
@@ -10,7 +10,11 @@ bison \- GNU Project parser generator (yacc replacement)
 ] [
 .B \-d
 ] [
 ] [
 .B \-d
 ] [
-.B \-\-defines
+.BI \-\-defines= defines-file
+] [
+.B \-g
+] [
+.BI \-\-graph= graph-file
 ] [
 .B \-k
 ] [
 ] [
 .B \-k
 ] [
@@ -32,10 +36,6 @@ bison \- GNU Project parser generator (yacc replacement)
 ] [
 .BI \-\-name-prefix= prefix
 ] [
 ] [
 .BI \-\-name-prefix= prefix
 ] [
-.B \-r
-] [
-.B \-\-raw
-] [
 .B \-t
 ] [
 .B \-\-debug
 .B \-t
 ] [
 .B \-\-debug
@@ -75,13 +75,22 @@ Unlike
 .IR yacc ,
 the generated files do not have fixed names, but instead use the prefix
 of the input file.
 .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 
+.IR 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
 For instance, a grammar description file named
-.B parse.y
+.B parse.yxx
 would produce the generated parser in a file named
 would produce the generated parser in a file named
-.BR parse.tab.c ,
+.BR parse.tab.cxx ,
 instead of
 .IR yacc 's
 instead of
 .IR yacc 's
-.BR y.tab.c .
+.BR y.tab.c 
+or old 
+.IR Bison
+versions
+.BR parse.tab.c .
 .PP
 This description of the options that can be given to
 .I bison
 .PP
 This description of the options that can be given to
 .I bison
@@ -118,8 +127,6 @@ chosen as if the input file were named
 .B \-d
 .br
 .ns
 .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 ,
 Write an extra output file containing macro definitions for the token
 type names defined in the grammar and the semantic value type
 .BR YYSTYPE ,
@@ -140,31 +147,46 @@ in a separate source file, because
 needs to be able to refer to token type codes and the variable
 .BR yylval .
 .TP
 needs to be able to refer to token type codes and the variable
 .BR yylval .
 .TP
-.B \-r
+.BI \-\-defines= defines-file
+The behaviour of
+.BI \-\-defines 
+is the same than 
+.BI \-d 
+option. 
+The only difference is that it has an optionnal argument which is 
+the name of the output filename.
+.TP
+.BI \-g
 .br
 .ns
 .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
 .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.)
+.BI \-\-graph= graph-file
+The behaviour of 
+.BI \-\-graph 
+is the same than
+.BI \-g
+option. The only difference is that it has an optionnal argument which 
+is the name of the output graph filename.
 .TP
 .B \-k
 .br
 .ns
 .TP
 .B \-\-token-table
 .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 \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 .
 .IR yytname .
-Also generated 
-are #defines for 
+Also generated
+are #defines for
 .IR YYNTOKENS ,
 .IR YYNNTS ,
 .IR YYNRULES ,
 .IR YYNTOKENS ,
 .IR YYNNTS ,
 .IR YYNRULES ,
-and 
+and
 .IR YYNSTATES .
 .TP
 .B \-l
 .IR YYNSTATES .
 .TP
 .B \-l
@@ -188,10 +210,10 @@ parser file, treating it an independent source file in its own right.
 .TP
 .B \-\-no-parser
 Do not generate the parser code into the output;  generate only
 .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 
+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
 constant declarations.  In addition, a \fIname\fB.act\fR file is
 generated containing a switch statement body containing all the
-translated actions. 
+translated actions.
 .TP
 .BI \-o " outfile"
 .br
 .TP
 .BI \-o " outfile"
 .br
@@ -224,7 +246,7 @@ The precise list of symbols renamed is
 .BR yylex ,
 .BR yyerror ,
 .BR yylval ,
 .BR yylex ,
 .BR yyerror ,
 .BR yylval ,
-.BR yychar , 
+.BR yychar ,
 and
 .BR yydebug .
 .sp
 and
 .BR yydebug .
 .sp
@@ -241,7 +263,7 @@ and so on.
 .TP
 .B \-\-debug
 Output a definition of the macro
 .TP
 .B \-\-debug
 Output a definition of the macro
-.B YYDEBUG 
+.B YYDEBUG
 into the parser file,
 so that the debugging facilities are compiled.
 .TP
 into the parser file,
 so that the debugging facilities are compiled.
 .TP
@@ -321,9 +343,9 @@ bison \-y $*
 .sp
 .RE
 .SH FILES
 .sp
 .RE
 .SH FILES
-/usr/local/lib/bison.simple    simple parser
+/usr/local/share/bison/bison.simple    simple parser
 .br
 .br
-/usr/local/lib/bison.hairy     complicated parser
+/usr/local/share/bison/bison.hairy     complicated parser
 .SH "ENVIRONMENT VARIABLES"
 .TP
 .SM BISON_SIMPLE
 .SH "ENVIRONMENT VARIABLES"
 .TP
 .SM BISON_SIMPLE