Class AntlrGeneratedParserBase<N extends AntlrNode<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

      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
    • Constructor Detail

      • AntlrGeneratedParserBase

        public AntlrGeneratedParserBase​(org.antlr.v4.runtime.TokenStream input)
    • 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 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)
      • 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)