]> git.saurik.com Git - bison.git/blobdiff - doc/bison.texinfo
code_props: factor more.
[bison.git] / doc / bison.texinfo
index b0236af51d0c5642530b8e93d5de3783b92a2cf9..3f24b9ac7f70d71f96b9273b1141e5fb6613225d 100644 (file)
@@ -3155,14 +3155,14 @@ type:
 %code requires @{ #include "type1.h" @}
 %union @{ type1 field1; @}
 %destructor @{ type1_free ($$); @} <field1>
-%printer @{ type1_print ($$); @} <field1>
+%printer @{ type1_print (yyoutput, $$); @} <field1>
 @end group
 
 @group
 %code requires @{ #include "type2.h" @}
 %union @{ type2 field2; @}
 %destructor @{ type2_free ($$); @} <field2>
-%printer @{ type2_print ($$); @} <field2>
+%printer @{ type2_print (yyoutput, $$); @} <field2>
 @end group
 @end example
 
@@ -6006,7 +6006,7 @@ This function is available if either the @samp{%define api.push-pull push} or
 @samp{%define api.push-pull both} declaration is used.
 @xref{Push Decl, ,A Push Parser}.
 
-@deftypefun yypstate *yypstate_new (void)
+@deftypefun {yypstate*} yypstate_new (void)
 The function will return a valid parser instance if there was memory available
 or 0 if no memory was available.
 In impure mode, it will also return 0 if a parser instance is currently
@@ -6439,17 +6439,17 @@ union specified by the @code{%union} declaration.
 @xref{Action Types, ,Data Types of Values in Actions}.
 @end deffn
 
-@deffn {Macro} YYABORT;
+@deffn {Macro} YYABORT @code{;}
 Return immediately from @code{yyparse}, indicating failure.
 @xref{Parser Function, ,The Parser Function @code{yyparse}}.
 @end deffn
 
-@deffn {Macro} YYACCEPT;
+@deffn {Macro} YYACCEPT @code{;}
 Return immediately from @code{yyparse}, indicating success.
 @xref{Parser Function, ,The Parser Function @code{yyparse}}.
 @end deffn
 
-@deffn {Macro} YYBACKUP (@var{token}, @var{value});
+@deffn {Macro} YYBACKUP (@var{token}, @var{value})@code{;}
 @findex YYBACKUP
 Unshift a token.  This macro is allowed only for rules that reduce
 a single value, and only when there is no lookahead token.
@@ -6467,18 +6467,15 @@ In either case, the rest of the action is not executed.
 @end deffn
 
 @deffn {Macro} YYEMPTY
-@vindex YYEMPTY
 Value stored in @code{yychar} when there is no lookahead token.
 @end deffn
 
 @deffn {Macro} YYEOF
-@vindex YYEOF
 Value stored in @code{yychar} when the lookahead is the end of the input
 stream.
 @end deffn
 
-@deffn {Macro} YYERROR;
-@findex YYERROR
+@deffn {Macro} YYERROR @code{;}
 Cause an immediate syntax error.  This statement initiates error
 recovery just as if the parser itself had detected an error; however, it
 does not call @code{yyerror}, and does not print any message.  If you
@@ -6502,7 +6499,7 @@ Actions}).
 @xref{Lookahead, ,Lookahead Tokens}.
 @end deffn
 
-@deffn {Macro} yyclearin;
+@deffn {Macro} yyclearin @code{;}
 Discard the current lookahead token.  This is useful primarily in
 error rules.
 Do not invoke @code{yyclearin} in a deferred semantic action (@pxref{GLR
@@ -6510,7 +6507,7 @@ Semantic Actions}).
 @xref{Error Recovery}.
 @end deffn
 
-@deffn {Macro} yyerrok;
+@deffn {Macro} yyerrok @code{;}
 Resume generating error messages immediately for subsequent syntax
 errors.  This is useful primarily in error rules.
 @xref{Error Recovery}.
@@ -7917,7 +7914,7 @@ calls @code{yyerror} and then returns 2.
 
 Because Bison parsers have growing stacks, hitting the upper limit
 usually results from using a right recursion instead of a left
-recursion, @xref{Recursion, ,Recursive Rules}.
+recursion, see @ref{Recursion, ,Recursive Rules}.
 
 @vindex YYMAXDEPTH
 By defining the macro @code{YYMAXDEPTH}, you can control how deep the
@@ -10244,7 +10241,7 @@ regular destructors.  All the values are printed using their
 @c FIXME: Document %printer, and mention that it takes a braced-code operand.
 @comment file: calc++-parser.yy
 @example
-%printer @{ debug_stream () << $$; @} <*>;
+%printer @{ yyoutput << $$; @} <*>;
 @end example
 
 @noindent
@@ -10827,20 +10824,20 @@ The location information of the grouping made by the current rule.
 @xref{Java Location Values}.
 @end defvar
 
-@deffn {Statement} {return YYABORT;}
+@deftypefn {Statement} return YYABORT @code{;}
 Return immediately from the parser, indicating failure.
 @xref{Java Parser Interface}.
-@end deffn
+@end deftypefn
 
-@deffn {Statement} {return YYACCEPT;}
+@deftypefn {Statement} return YYACCEPT @code{;}
 Return immediately from the parser, indicating success.
 @xref{Java Parser Interface}.
-@end deffn
+@end deftypefn
 
-@deffn {Statement} {return YYERROR;}
-Start error recovery without printing an error message.
+@deftypefn {Statement} {return} YYERROR @code{;}
+Start error recovery (without printing an error message).
 @xref{Error Recovery}.
-@end deffn
+@end deftypefn
 
 @deftypefn {Function} {boolean} recovering ()
 Return whether error recovery is being done. In this state, the parser
@@ -10889,7 +10886,7 @@ values have a common base type: @code{Object} or as specified by
 an union.  The type of @code{$$}, even with angle brackets, is the base
 type since Java casts are not allow on the left-hand side of assignments.
 Also, @code{$@var{n}} and @code{@@@var{n}} are not allowed on the
-left-hand side of assignments. @xref{Java Semantic Values} and
+left-hand side of assignments. @xref{Java Semantic Values}, and
 @ref{Java Action Features}.
 
 @item
@@ -11108,8 +11105,8 @@ My parser returns with error with a @samp{memory exhausted}
 message.  What can I do?
 @end quotation
 
-This question is already addressed elsewhere, @xref{Recursion,
-,Recursive Rules}.
+This question is already addressed elsewhere, see @ref{Recursion, ,Recursive
+Rules}.
 
 @node How Can I Reset the Parser
 @section How Can I Reset the Parser
@@ -11856,10 +11853,11 @@ after a syntax error.  @xref{Error Recovery}.
 @end deffn
 
 @deffn {Macro} YYERROR
-Macro to pretend that a syntax error has just been detected: call
-@code{yyerror} and then perform normal error recovery if possible
-(@pxref{Error Recovery}), or (if recovery is impossible) make
-@code{yyparse} return 1.  @xref{Error Recovery}.
+Cause an immediate syntax error.  This statement initiates error
+recovery just as if the parser itself had detected an error; however, it
+does not call @code{yyerror}, and does not print any message.  If you
+want to print an error message, call @code{yyerror} explicitly before
+the @samp{YYERROR;} statement.  @xref{Error Recovery}.
 
 For Java parsers, this functionality is invoked using @code{return YYERROR;}
 instead.