Class AntlrGeneratedParserBase<N extends AntlrNode<N>>
- java.lang.Object
-
- org.antlr.v4.runtime.Recognizer<org.antlr.v4.runtime.Token,org.antlr.v4.runtime.atn.ParserATNSimulator>
-
- org.antlr.v4.runtime.Parser
-
- net.sourceforge.pmd.lang.ast.impl.antlr4.AntlrGeneratedParserBase<N>
-
public abstract class AntlrGeneratedParserBase<N extends AntlrNode<N>> extends org.antlr.v4.runtime.Parser
This is the base class for antlr generated parsers. The implementation of PMD'sParser
interface isAntlrBaseParser
.This class must implement the two abstract methods to create terminals and error nodes that implement
<N>
. The inner nodes implement PMD interfaces, and manipulation methods that theParser
superclass uses are redirected to the underlying antlrParserRuleContext
(the protected overloads here).This is not enough in general to make the generated parser compilable, so an ant script does some cleanup at the end.
Additionally this must have a
AntlrNameDictionary
static final field, which stores the XPath names of the generated nodes (and terminals).Additional members can be added to a parser with
@parser::members { ... }
in the g4 file. That's how the implementations forcreatePmdTerminal(ParserRuleContext, Token)
andcreatePmdError(ParserRuleContext, Token)
can be added.
-
-
Constructor Summary
Constructors Constructor Description AntlrGeneratedParserBase(org.antlr.v4.runtime.TokenStream input)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected Node
asPmdNode(org.antlr.v4.runtime.RuleContext ctx)
org.antlr.v4.runtime.tree.ErrorNode
createErrorNode(org.antlr.v4.runtime.ParserRuleContext parent, org.antlr.v4.runtime.Token t)
protected abstract BaseAntlrErrorNode<N>
createPmdError(org.antlr.v4.runtime.ParserRuleContext parent, org.antlr.v4.runtime.Token t)
protected abstract BaseAntlrTerminalNode<N>
createPmdTerminal(org.antlr.v4.runtime.ParserRuleContext parent, org.antlr.v4.runtime.Token t)
org.antlr.v4.runtime.tree.TerminalNode
createTerminalNode(org.antlr.v4.runtime.ParserRuleContext parent, org.antlr.v4.runtime.Token t)
protected void
enterOuterAlt(BaseAntlrInnerNode<N> localctx, int altNum)
protected void
enterRecursionRule(BaseAntlrInnerNode<N> localctx, int state, int ruleIndex, int precedence)
protected void
enterRule(BaseAntlrInnerNode<N> ptree, int state, int alt)
protected void
pushNewRecursionContext(BaseAntlrInnerNode<N> localctx, int state, int ruleIndex)
protected boolean
sempred(BaseAntlrInnerNode<N> localctx, int ruleIndex, int predIndex)
-
Methods inherited from class org.antlr.v4.runtime.Parser
addContextToParseTree, addParseListener, compileParseTreePattern, compileParseTreePattern, consume, dumpDFA, enterOuterAlt, enterRecursionRule, enterRecursionRule, enterRule, exitRule, getATNWithBypassAlts, getBuildParseTree, getContext, getCurrentToken, getDFAStrings, getErrorHandler, getExpectedTokens, getExpectedTokensWithinCurrentRule, getInputStream, getInvokingContext, getNumberOfSyntaxErrors, getParseInfo, getParseListeners, getPrecedence, getRuleContext, getRuleIndex, getRuleInvocationStack, getRuleInvocationStack, getSourceName, getTokenFactory, getTokenStream, getTrimParseTree, inContext, isExpectedToken, isMatchedEOF, isTrace, match, matchWildcard, notifyErrorListeners, notifyErrorListeners, precpred, pushNewRecursionContext, removeParseListener, removeParseListeners, reset, setBuildParseTree, setContext, setErrorHandler, setInputStream, setProfile, setTokenFactory, setTokenStream, setTrace, setTrimParseTree, triggerEnterRuleEvent, triggerExitRuleEvent, unrollRecursionContexts
-
Methods inherited from class org.antlr.v4.runtime.Recognizer
action, addErrorListener, getATN, getErrorHeader, getErrorListenerDispatch, getErrorListeners, getGrammarFileName, getInterpreter, getRuleIndexMap, getRuleNames, getSerializedATN, getState, getTokenErrorDisplay, getTokenNames, getTokenType, getTokenTypeMap, getVocabulary, removeErrorListener, removeErrorListeners, sempred, setInterpreter, setState
-
-
-
-
Method Detail
-
createTerminalNode
public org.antlr.v4.runtime.tree.TerminalNode createTerminalNode(org.antlr.v4.runtime.ParserRuleContext parent, org.antlr.v4.runtime.Token t)
- Overrides:
createTerminalNode
in classorg.antlr.v4.runtime.Parser
-
createErrorNode
public org.antlr.v4.runtime.tree.ErrorNode createErrorNode(org.antlr.v4.runtime.ParserRuleContext parent, org.antlr.v4.runtime.Token t)
- Overrides:
createErrorNode
in classorg.antlr.v4.runtime.Parser
-
createPmdTerminal
protected abstract BaseAntlrTerminalNode<N> createPmdTerminal(org.antlr.v4.runtime.ParserRuleContext parent, org.antlr.v4.runtime.Token t)
-
createPmdError
protected abstract BaseAntlrErrorNode<N> createPmdError(org.antlr.v4.runtime.ParserRuleContext parent, org.antlr.v4.runtime.Token t)
-
asPmdNode
protected Node asPmdNode(org.antlr.v4.runtime.RuleContext ctx)
-
enterRule
protected void enterRule(BaseAntlrInnerNode<N> ptree, int state, int alt)
-
enterOuterAlt
protected void enterOuterAlt(BaseAntlrInnerNode<N> localctx, int altNum)
-
pushNewRecursionContext
protected void pushNewRecursionContext(BaseAntlrInnerNode<N> localctx, int state, int ruleIndex)
-
enterRecursionRule
protected void enterRecursionRule(BaseAntlrInnerNode<N> localctx, int state, int ruleIndex, int precedence)
-
sempred
protected boolean sempred(BaseAntlrInnerNode<N> localctx, int ruleIndex, int predIndex)
-
-