antlr
public abstract class Parser extends Object
During guess mode, the current lookahead token(s) and token type(s) cache must be saved because the token stream may not have been informed to save the token (via mark) before the try block. Guessing is started by:
See Also: Token TokenBuffer LLkParser
Field Summary | |
---|---|
protected ASTFactory | astFactory AST support code; parser delegates to this object.
|
protected ParserSharedInputState | inputState |
protected AST | returnAST AST return value for a rule is squirreled away here |
protected String[] | tokenNames Table of token type to token names |
protected Hashtable | tokenTypeToASTClassMap Constructed if any AST types specified in tokens{..}.
|
protected int | traceDepth Used to keep track of indentdepth for traceIn/Out |
Constructor Summary | |
---|---|
Parser() | |
Parser(ParserSharedInputState state) |
Method Summary | |
---|---|
void | addMessageListener(MessageListener l) |
void | addParserListener(ParserListener l) |
void | addParserMatchListener(ParserMatchListener l) |
void | addParserTokenListener(ParserTokenListener l) |
void | addSemanticPredicateListener(SemanticPredicateListener l) |
void | addSyntacticPredicateListener(SyntacticPredicateListener l) |
void | addTraceListener(TraceListener l) |
abstract void | consume() Get another token object from the token stream |
void | consumeUntil(int tokenType) Consume tokens until one matches the given token |
void | consumeUntil(BitSet set) Consume tokens until one matches the given token set |
protected void | defaultDebuggingSetup(TokenStream lexer, TokenBuffer tokBuf) |
AST | getAST() Get the AST return value squirreled away in the parser |
ASTFactory | getASTFactory() |
String | getFilename() |
ParserSharedInputState | getInputState() |
String | getTokenName(int num) |
String[] | getTokenNames() |
Hashtable | getTokenTypeToASTClassMap() If the user specifies a tokens{} section with heterogeneous
AST node types, then ANTLR generates code to fill
this mapping. |
boolean | isDebugMode() |
abstract int | LA(int i) Return the token type of the ith token of lookahead where i=1
is the current token being examined by the parser (i.e., it
has not been matched yet). |
abstract Token | LT(int i) Return the ith token of lookahead |
int | mark() |
void | match(int t) Make sure current lookahead symbol matches token type t.
|
void | match(BitSet b) Make sure current lookahead symbol matches the given set
Throw an exception upon mismatch, which is catch by either the
error handler or by the syntactic predicate. |
void | matchNot(int t) |
static void | panic() |
void | recover(RecognitionException ex, BitSet tokenSet) |
void | removeMessageListener(MessageListener l) |
void | removeParserListener(ParserListener l) |
void | removeParserMatchListener(ParserMatchListener l) |
void | removeParserTokenListener(ParserTokenListener l) |
void | removeSemanticPredicateListener(SemanticPredicateListener l) |
void | removeSyntacticPredicateListener(SyntacticPredicateListener l) |
void | removeTraceListener(TraceListener l) |
void | reportError(RecognitionException ex) Parser error-reporting function can be overridden in subclass |
void | reportError(String s) Parser error-reporting function can be overridden in subclass |
void | reportWarning(String s) Parser warning-reporting function can be overridden in subclass |
void | rewind(int pos) |
void | setASTFactory(ASTFactory f) Specify an object with support code (shared by
Parser and TreeParser. |
void | setASTNodeClass(String cl) |
void | setASTNodeType(String nodeType) Specify the type of node to create during tree building; use setASTNodeClass now
to be consistent with Token Object Type accessor. |
void | setDebugMode(boolean debugMode) |
void | setFilename(String f) |
void | setIgnoreInvalidDebugCalls(boolean value) |
void | setInputState(ParserSharedInputState state) |
void | setTokenBuffer(TokenBuffer t) Set or change the input token buffer |
void | traceIn(String rname) |
void | traceIndent() |
void | traceOut(String rname) |
Deprecated: as of 2.7.2. This method calls System.exit() and writes
directly to stderr, which is usually not appropriate when
a parser is embedded into a larger application. Since the method is
static
, it cannot be overridden to avoid these problems.
ANTLR no longer uses this method internally or in generated code.
Deprecated: since 2.7.1
Specify the type of node to create during tree building; use setASTNodeClass now to be consistent with Token Object Type accessor.