X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6d42748fae2f28f7bd2c24f52e94c77a5e6d5c70..b09a18c50d221b54e6bc94e03deb65ecd52c4288:/doc/bison.1?ds=sidebyside diff --git a/doc/bison.1 b/doc/bison.1 index 471952d9..5e1d962d 100644 --- a/doc/bison.1 +++ b/doc/bison.1 @@ -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