Package antlr.debug
Class ParseTreeDebugParser
- java.lang.Object
-
- antlr.Parser
-
- antlr.LLkParser
-
- antlr.debug.ParseTreeDebugParser
-
public class ParseTreeDebugParser extends LLkParser
Override the standard matching and rule entry/exit routines to build parse trees. This class is useful for 2.7.3 where you can specify a superclass like class TinyCParser extends Parser(ParseTreeDebugParser);
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.StackcurrentParseTreeRootEach new rule invocation must have it's own subtree.protected ParseTreeRulemostRecentParseTreeRootTrack most recently created parse subtree so that when parsing is finished, we can get to the root.protected intnumberOfDerivationStepsFor every rule replacement with a production, we bump up count.-
Fields inherited from class antlr.Parser
astFactory, inputState, returnAST, tokenNames, tokenTypeToASTClassMap, traceDepth
-
-
Constructor Summary
Constructors Constructor Description ParseTreeDebugParser(int k_)ParseTreeDebugParser(ParserSharedInputState state, int k_)ParseTreeDebugParser(TokenBuffer tokenBuf, int k_)ParseTreeDebugParser(TokenStream lexer, int k_)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddCurrentTokenToParseTree()This adds LT(1) to the current parse subtree.intgetNumberOfDerivationSteps()ParseTreegetParseTree()voidmatch(int i)Make sure current lookahead symbol matches token type t.voidmatch(BitSet bitSet)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.voidmatchNot(int i)voidtraceIn(java.lang.String s)Create a rule node, add to current tree, and make it current rootvoidtraceOut(java.lang.String s)Pop current root; back to adding to old root-
Methods inherited from class antlr.Parser
addMessageListener, addParserListener, addParserMatchListener, addParserTokenListener, addSemanticPredicateListener, addSyntacticPredicateListener, addTraceListener, consumeUntil, consumeUntil, defaultDebuggingSetup, getAST, getASTFactory, getFilename, getInputState, getTokenName, getTokenNames, getTokenTypeToASTClassMap, isDebugMode, mark, panic, recover, removeMessageListener, removeParserListener, removeParserMatchListener, removeParserTokenListener, removeSemanticPredicateListener, removeSyntacticPredicateListener, removeTraceListener, reportError, reportError, reportWarning, rewind, setASTFactory, setASTNodeClass, setASTNodeType, setDebugMode, setFilename, setIgnoreInvalidDebugCalls, setInputState, setTokenBuffer, traceIndent
-
-
-
-
Field Detail
-
currentParseTreeRoot
protected java.util.Stack currentParseTreeRoot
Each new rule invocation must have it's own subtree. Tokens are added to the current root so we must have a stack of subtree roots.
-
mostRecentParseTreeRoot
protected ParseTreeRule mostRecentParseTreeRoot
Track most recently created parse subtree so that when parsing is finished, we can get to the root.
-
numberOfDerivationSteps
protected int numberOfDerivationSteps
For every rule replacement with a production, we bump up count.
-
-
Constructor Detail
-
ParseTreeDebugParser
public ParseTreeDebugParser(int k_)
-
ParseTreeDebugParser
public ParseTreeDebugParser(ParserSharedInputState state, int k_)
-
ParseTreeDebugParser
public ParseTreeDebugParser(TokenBuffer tokenBuf, int k_)
-
ParseTreeDebugParser
public ParseTreeDebugParser(TokenStream lexer, int k_)
-
-
Method Detail
-
getParseTree
public ParseTree getParseTree()
-
getNumberOfDerivationSteps
public int getNumberOfDerivationSteps()
-
match
public void match(int i) throws MismatchedTokenException, TokenStreamExceptionDescription copied from class:ParserMake sure current lookahead symbol matches token type t. Throw an exception upon mismatch, which is catch by either the error handler or by the syntactic predicate.- Overrides:
matchin classParser- Throws:
MismatchedTokenExceptionTokenStreamException
-
match
public void match(BitSet bitSet) throws MismatchedTokenException, TokenStreamException
Description copied from class:ParserMake 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.- Overrides:
matchin classParser- Throws:
MismatchedTokenExceptionTokenStreamException
-
matchNot
public void matchNot(int i) throws MismatchedTokenException, TokenStreamException- Overrides:
matchNotin classParser- Throws:
MismatchedTokenExceptionTokenStreamException
-
addCurrentTokenToParseTree
protected void addCurrentTokenToParseTree() throws TokenStreamExceptionThis adds LT(1) to the current parse subtree. Note that the match() routines add the node before checking for correct match. This means that, upon mismatched token, there will a token node in the tree corresponding to where that token was expected. For no viable alternative errors, no node will be in the tree as nothing was matched() (the lookahead failed to predict an alternative).- Throws:
TokenStreamException
-
traceIn
public void traceIn(java.lang.String s) throws TokenStreamExceptionCreate a rule node, add to current tree, and make it current root- Overrides:
traceInin classLLkParser- Throws:
TokenStreamException
-
traceOut
public void traceOut(java.lang.String s) throws TokenStreamExceptionPop current root; back to adding to old root- Overrides:
traceOutin classLLkParser- Throws:
TokenStreamException
-
-