You could even place each of the above directive groups in the rules section of
the grammar file next to the set of rules that uses the associated semantic
type.
+(In the rules section, you must terminate each of those directives with a
+semicolon.)
And you don't have to worry that some directive (like a @code{%union}) in the
definitions section is going to adversely affect their functionality in some
counter-intuitive manner just because it comes first.
@code{YYABORT} or @code{YYACCEPT}, or failed error recovery, or memory
exhaustion.
-Right-hand size symbols of a rule that explicitly triggers a syntax
+Right-hand side symbols of a rule that explicitly triggers a syntax
error via @code{YYERROR} are not discarded automatically. As a rule
of thumb, destructors are invoked only when user actions cannot manage
the memory.
The different structure of the Java language forces several differences
between C/C++ grammars, and grammars designed for Java parsers. This
-section summarizes this differences.
+section summarizes these differences.
@itemize
@item
scanner. If there is no such block, the scanner can be any class
that implements the appropriate interface (see @pxref{Java Scanner
Interface}).
-@end item
+@end table
Other @code{%code} blocks are not supported in Java parsers.
The epilogue has the same meaning as in C/C++ code and it can