]> git.saurik.com Git - bison.git/blobdiff - doc/bison.texinfo
* doc/bison.texinfo: Fix a couple of typos.
[bison.git] / doc / bison.texinfo
index af4cf4f01e5089f492cb4259541d101b258b3506..af9d5321af30e5cd97fe739f6153f4bf0bc14f84 100644 (file)
@@ -2048,7 +2048,7 @@ exp     : NUM           @{ $$ = $1; @}
             @}
 @end group
 @group
-        | '-' exp %preg NEG     @{ $$ = -$2; @}
+        | '-' exp %prec NEG     @{ $$ = -$2; @}
         | exp '^' exp           @{ $$ = pow ($1, $3); @}
         | '(' exp ')'           @{ $$ = $2; @}
 @end group
@@ -2684,6 +2684,10 @@ feature test macros can affect the behavior of Bison-generated
 @findex %requires
 @findex %provides
 @findex %code-top
+(The prologue alternatives described here are experimental.
+More user feedback will help to determine whether they should become permanent
+features.)
+
 The functionality of @var{Prologue} sections can often be subtle and
 inflexible.
 As an alternative, Bison provides a set of more explicit directives:
@@ -4271,6 +4275,9 @@ grammar symbol that has that semantic type tag unless that symbol has its own
 per-symbol @code{%destructor}.
 
 Finally, you can define two different kinds of default @code{%destructor}s.
+(These default forms are experimental.
+More user feedback will help to determine whether they should become permanent
+features.)
 You can place each of @code{<*>} and @code{<>} in the @var{symbols} list of
 exactly one @code{%destructor} declaration in your grammar file.
 The parser will invoke the @var{code} associated with one of these whenever it
@@ -4598,12 +4605,16 @@ header also contains their code.
 @xref{Table of Symbols, ,%requires}.
 @end deffn
 
+@deffn {Directive} %defines @var{defines-file}
+Same as above, but save in the file @var{defines-file}.
+@end deffn
+
 @deffn {Directive} %destructor
 Specify how the parser should reclaim the memory associated to
 discarded symbols.  @xref{Destructor Decl, , Freeing Discarded Symbols}.
 @end deffn
 
-@deffn {Directive} %file-prefix="@var{prefix}"
+@deffn {Directive} %file-prefix "@var{prefix}"
 Specify a prefix to use for all Bison output file names.  The names are
 chosen as if the input file were named @file{@var{prefix}.y}.
 @end deffn
@@ -4616,14 +4627,14 @@ grammar does not use it, using @samp{%locations} allows for more
 accurate syntax error messages.
 @end deffn
 
-@deffn {Directive} %name-prefix="@var{prefix}"
+@deffn {Directive} %name-prefix "@var{prefix}"
 Rename the external symbols used in the parser so that they start with
 @var{prefix} instead of @samp{yy}.  The precise list of symbols renamed
 in C parsers
 is @code{yyparse}, @code{yylex}, @code{yyerror}, @code{yynerrs},
 @code{yylval}, @code{yychar}, @code{yydebug}, and
 (if locations are used) @code{yylloc}.  For example, if you use
-@samp{%name-prefix="c_"}, the names become @code{c_parse}, @code{c_lex},
+@samp{%name-prefix "c_"}, the names become @code{c_parse}, @code{c_lex},
 and so on.  In C++ parsers, it is only the surrounding namespace which is
 named @var{prefix} instead of @samp{yy}.
 @xref{Multiple Parsers, ,Multiple Parsers in the Same Program}.
@@ -4656,7 +4667,7 @@ associate errors with the parser file, treating it an independent source
 file in its own right.
 @end deffn
 
-@deffn {Directive} %output="@var{file}"
+@deffn {Directive} %output "@var{file}"
 Specify @var{file} for the parser file.
 @end deffn
 
@@ -7265,7 +7276,7 @@ Pretend that @code{%locations} was specified.  @xref{Decl Summary}.
 
 @item -p @var{prefix}
 @itemx --name-prefix=@var{prefix}
-Pretend that @code{%name-prefix="@var{prefix}"} was specified.
+Pretend that @code{%name-prefix "@var{prefix}"} was specified.
 @xref{Decl Summary}.
 
 @item -l
@@ -7461,7 +7472,7 @@ for a complete and accurate documentation.
 @node C++ Semantic Values
 @subsection C++ Semantic Values
 @c - No objects in unions
-@c - YSTYPE
+@c - YYSTYPE
 @c - Printer and destructor
 
 The @code{%union} directive works as for C, see @ref{Union Decl, ,The
@@ -8569,12 +8580,22 @@ Separates alternate rules for the same result nonterminal.
 @deffn {Directive} <*>
 Used to define a default tagged @code{%destructor} or default tagged
 @code{%printer}.
+
+This feature is experimental.
+More user feedback will help to determine whether it should become a permanent
+feature.
+
 @xref{Destructor Decl, , Freeing Discarded Symbols}.
 @end deffn
 
 @deffn {Directive} <>
 Used to define a default tagless @code{%destructor} or default tagless
 @code{%printer}.
+
+This feature is experimental.
+More user feedback will help to determine whether it should become a permanent
+feature.
+
 @xref{Destructor Decl, , Freeing Discarded Symbols}.
 @end deffn
 
@@ -8587,9 +8608,10 @@ Start-Symbol}.  It cannot be used in the grammar.
 @deffn {Directive} %code @{@var{code}@}
 Other than semantic actions, this is probably the most common place you should
 write verbatim code for the parser implementation.
-For C/C++, it replaces the traditional Yacc prologue,
+It replaces the traditional Yacc prologue,
+@comment For C/C++, it replaces the traditional Yacc prologue,
 @code{%@{@var{code}%@}}, for most purposes.
-For Java, it inserts code into the parser class.
+@comment For Java, it inserts code into the parser class.
 
 @cindex Prologue
 @findex %union
@@ -8603,11 +8625,17 @@ not depend on its position in the grammar file relative to any
 Specifically, @code{%code @{@var{code}@}} always inserts your @var{code} into
 the parser code file after the usual contents of the parser header file.
 
+(Like all the Yacc prologue alternative directives, this directive is
+experimental.
+More user feedback will help to determine whether it should become a permanent
+feature.)
+
 @xref{Prologue Alternatives}.
 @end deffn
 
 @deffn {Directive} %code-top @{@var{code}@}
-Occasionally for C/C++ it is desirable to insert code near the top of the
+Occasionally it is desirable to insert code near the top of the
+@comment Occasionally for C/C++ it is desirable to insert code near the top of the
 parser code file.
 For example:
 
@@ -8618,8 +8646,8 @@ For example:
 @}
 @end smallexample
 
-@noindent
-For Java, @code{%code-top @{@var{code}@}} is currently unused.
+@comment @noindent
+@comment For Java, @code{%code-top @{@var{code}@}} is currently unused.
 
 @cindex Prologue
 @findex %union
@@ -8629,6 +8657,11 @@ Compare with @code{%@{@var{code}%@}} appearing before the first
 on its position in the grammar file relative to any
 @code{%union @{@var{code}@}}.
 
+(Like all the Yacc prologue alternative directives, this directive is
+experimental.
+More user feedback will help to determine whether it should become a permanent
+feature.)
+
 @xref{Prologue Alternatives}.
 @end deffn
 
@@ -8653,6 +8686,11 @@ Bison declaration to create a header file meant for the scanner.
 @xref{Decl Summary}.
 @end deffn
 
+@deffn {Directive} %defines @var{defines-file}
+Same as above, but save in the file @var{defines-file}.
+@xref{Decl Summary}.
+@end deffn
+
 @deffn {Directive} %destructor
 Specify how the parser should reclaim the memory associated to
 discarded symbols.  @xref{Destructor Decl, , Freeing Discarded Symbols}.
@@ -8685,7 +8723,7 @@ Bison declaration to request verbose, specific error message strings
 when @code{yyerror} is called.
 @end deffn
 
-@deffn {Directive} %file-prefix="@var{prefix}"
+@deffn {Directive} %file-prefix "@var{prefix}"
 Bison declaration to set the prefix of the output files.  @xref{Decl
 Summary}.
 @end deffn
@@ -8717,7 +8755,7 @@ function is applied to the two semantic values to get a single result.
 @xref{GLR Parsers, ,Writing @acronym{GLR} Parsers}.
 @end deffn
 
-@deffn {Directive} %name-prefix="@var{prefix}"
+@deffn {Directive} %name-prefix "@var{prefix}"
 Bison declaration to rename the external symbols.  @xref{Decl Summary}.
 @end deffn
 
@@ -8739,7 +8777,7 @@ Bison declaration to assign nonassociativity to token(s).
 @xref{Precedence Decl, ,Operator Precedence}.
 @end deffn
 
-@deffn {Directive} %output="@var{file}"
+@deffn {Directive} %output "@var{file}"
 Bison declaration to set the name of the parser file.  @xref{Decl
 Summary}.
 @end deffn
@@ -8758,11 +8796,17 @@ Bison declaration to assign a precedence to a specific rule.
 @deffn {Directive} %provides @{@var{code}@}
 This is the right place to write additional definitions you would like Bison to
 expose externally.
-For C/C++, this directive inserts your @var{code} both into the parser header
+That is, this directive inserts your @var{code} both into the parser header
+@comment For C/C++, this directive inserts your @var{code} both into the parser header
 file (if generated; @pxref{Table of Symbols, ,%defines}) and into the parser
 code file after Bison's required definitions.
-For Java, it inserts your @var{code} into the parser java file after the parser
-class.
+@comment For Java, it inserts your @var{code} into the parser java file after the parser
+@comment class.
+
+(Like all the Yacc prologue alternative directives, this directive is
+experimental.
+More user feedback will help to determine whether it should become a permanent
+feature.)
 
 @xref{Prologue Alternatives}.
 @end deffn
@@ -8780,12 +8824,13 @@ Require a Version of Bison}.
 @deffn {Directive} %requires @{@var{code}@}
 This is the right place to write dependency code for externally exposed
 definitions required by Bison.
-For C/C++, such exposed definitions are those usually appearing in the parser
+Such exposed definitions are those usually appearing in the parser
+@comment For C/C++, such exposed definitions are those usually appearing in the parser
 header file.
 Thus, this is the right place to define types referenced in
 @code{%union @{@var{code}@}} directives, and it is the right place to override
 Bison's default @code{YYSTYPE} and @code{YYLTYPE} definitions.
-For Java, this is the right place to write import directives.
+@comment For Java, this is the right place to write import directives.
 
 @cindex Prologue
 @findex %union
@@ -8797,6 +8842,11 @@ Unlike @code{%@{@var{code}%@}}, @code{%requires @{@var{code}@}} inserts your
 generated; @pxref{Table of Symbols, ,%defines}) since Bison's required
 definitions should depend on it in both places.
 
+(Like all the Yacc prologue alternative directives, this directive is
+experimental.
+More user feedback will help to determine whether it should become a permanent
+feature.)
+
 @xref{Prologue Alternatives}.
 @end deffn
 
@@ -9198,12 +9248,12 @@ grammatically indivisible.  The piece of text it represents is a token.
 @c LocalWords: pre STDC GNUC endif yy YY alloca lf stddef stdlib YYDEBUG
 @c LocalWords: NUM exp subsubsection kbd Ctrl ctype EOF getchar isdigit
 @c LocalWords: ungetc stdin scanf sc calc ulator ls lm cc NEG prec yyerrok
-@c LocalWords: longjmp fprintf stderr preg yylloc YYLTYPE cos ln
+@c LocalWords: longjmp fprintf stderr yylloc YYLTYPE cos ln
 @c LocalWords: smallexample symrec val tptr FNCT fnctptr func struct sym
 @c LocalWords: fnct putsym getsym fname arith fncts atan ptr malloc sizeof
 @c LocalWords: strlen strcpy fctn strcmp isalpha symbuf realloc isalnum
 @c LocalWords: ptypes itype YYPRINT trigraphs yytname expseq vindex dtype
-@c LocalWords: Rhs YYRHSLOC LE nonassoc op deffn typeless typefull yynerrs
+@c LocalWords: Rhs YYRHSLOC LE nonassoc op deffn typeless yynerrs
 @c LocalWords: yychar yydebug msg YYNTOKENS YYNNTS YYNRULES YYNSTATES
 @c LocalWords: cparse clex deftypefun NE defmac YYACCEPT YYABORT param
 @c LocalWords: strncmp intval tindex lvalp locp llocp typealt YYBACKUP
@@ -9213,5 +9263,5 @@ grammatically indivisible.  The piece of text it represents is a token.
 @c LocalWords: hexflag STR exdent itemset asis DYYDEBUG YYFPRINTF args
 @c LocalWords: infile ypp yxx outfile itemx tex leaderfill
 @c LocalWords: hbox hss hfill tt ly yyin fopen fclose ofirst gcc ll
-@c LocalWords: yyrestart nbar yytext fst snd osplit ntwo strdup AST
+@c LocalWords: nbar yytext fst snd osplit ntwo strdup AST
 @c LocalWords: YYSTACK DVI fdl printindex