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's Parser interface is AntlrBaseParser.

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 the Parser superclass uses are redirected to the underlying antlr ParserRuleContext (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 for createPmdTerminal(ParserRuleContext, Token) and createPmdError(ParserRuleContext, Token) can be added.

  • Nested Class Summary

    Nested classes/interfaces inherited from class org.antlr.v4.runtime.Parser

    org.antlr.v4.runtime.Parser.TraceListener, org.antlr.v4.runtime.Parser.TrimToSizeListener
  • Field Summary

    Fields inherited from class org.antlr.v4.runtime.Parser

    _buildParseTrees, _ctx, _errHandler, _input, _parseListeners, _precedenceStack, _syntaxErrors, matchedEOF

    Fields inherited from class org.antlr.v4.runtime.Recognizer

    _interp, EOF
  • Constructor Summary

    Constructors
    Constructor
    Description
    AntlrGeneratedParserBase(org.antlr.v4.runtime.TokenStream input)
     
  • Method Summary

    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AntlrGeneratedParserBase

      public AntlrGeneratedParserBase(org.antlr.v4.runtime.TokenStream input)
  • Method Details

    • createTerminalNode

      public org.antlr.v4.runtime.tree.TerminalNode createTerminalNode(org.antlr.v4.runtime.ParserRuleContext parent, org.antlr.v4.runtime.Token t)
      Overrides:
      createTerminalNode in class org.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 class org.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)