]> git.saurik.com Git - bison.git/blobdiff - doc/bison.1
($(calc_sources_generated)): Don't do anything if $@ exists. This
[bison.git] / doc / bison.1
index 471952d93242907abfdf59e0df836135beb63627..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
 ] [
@@ -32,10 +36,6 @@ bison \- GNU Project parser generator (yacc replacement)
 ] [
 .BI \-\-name-prefix= prefix
 ] [
-.B \-r
-] [
-.B \-\-raw
-] [
 .B \-t
 ] [
 .B \-\-debug
@@ -59,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
@@ -75,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
@@ -113,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 ,
@@ -128,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
@@ -140,31 +152,48 @@ in a separate source file, because
 needs to be able to refer to token type codes and the variable
 .BR yylval .
 .TP
-.B \-r
+.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
-.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 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 
+Also generated
+are #defines for
 .IR YYNTOKENS ,
 .IR YYNNTS ,
 .IR YYNRULES ,
-and 
+and
 .IR YYNSTATES .
 .TP
 .B \-l
@@ -187,11 +216,15 @@ 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. 
+translated actions.
 .TP
 .BI \-o " outfile"
 .br
@@ -224,7 +257,7 @@ The precise list of symbols renamed is
 .BR yylex ,
 .BR yyerror ,
 .BR yylval ,
-.BR yychar , 
+.BR yychar ,
 and
 .BR yydebug .
 .sp
@@ -240,9 +273,9 @@ and so on.
 .ns
 .TP
 .B \-\-debug
-Output a definition of the macro
-.B YYDEBUG 
-into the parser file,
+In the parser file, define the macro
+.B YYDEBUG
+to 1 if it is not already defined,
 so that the debugging facilities are compiled.
 .TP
 .B \-v
@@ -312,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