[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
10.2.4 Java Parser Interface
The name of the generated parser class defaults to YYParser
. The
YY
prefix may be changed using the %name-prefix
directive
or the ‘-p’/‘--name-prefix’ option. Alternatively, use
%define parser_class_name "name"
to give a custom name to
the class. The interface of this class is detailed below.
By default, the parser class has package visibility. A declaration
%define public
will change to public visibility. Remember that,
according to the Java language specification, the name of the ‘.java’
file should match the name of the class in this case. Similarly, you can
use abstract
, final
and strictfp
with the
%define
declaration to add other modifiers to the parser class.
The Java package name of the parser class can be specified using the
%define package
directive. The superclass and the implemented
interfaces of the parser class can be specified with the %define
extends
and %define implements
directives.
The parser class defines an inner class, Location
, that is used
for location tracking (see Java Location Values), and a inner
interface, Lexer
(see Java Scanner Interface). Other than
these inner class/interface, and the members described in the interface
below, all the other members and fields are preceded with a yy
or
YY
prefix to avoid clashes with user code.
The parser class can be extended using the %parse-param
directive. Each occurrence of the directive will add a protected
final
field to the parser class, and an argument to its constructor,
which initialize them automatically.
Token names defined by %token
and the predefined EOF
token
name are added as constant fields to the parser class.
- Constructor on YYParser: YYParser (lex_param, …, parse_param, …)
Build a new parser object with embedded
%code lexer
. There are no parameters, unless%parse-param
s and/or%lex-param
s are used.
- Constructor on YYParser: YYParser (Lexer lexer, parse_param, …)
Build a new parser object using the specified scanner. There are no additional parameters unless
%parse-param
s are used.If the scanner is defined by
%code lexer
, this constructor is declaredprotected
and is called automatically with a scanner created with the correct%lex-param
s.
- Method on YYParser: boolean parse ()
Run the syntactic analysis, and return
true
on success,false
otherwise.
- Method on YYParser: boolean recovering ()
During the syntactic analysis, return
true
if recovering from a syntax error. See section Error Recovery.
- Method on YYParser: java.io.PrintStream getDebugStream ()
- Method on YYParser: void setDebugStream (java.io.printStream o)
Get or set the stream used for tracing the parsing. It defaults to
System.err
.
- Method on YYParser: int getDebugLevel ()
- Method on YYParser: void setDebugLevel (int l)
Get or set the tracing level. Currently its value is either 0, no trace, or nonzero, full tracing.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |