Class Interpreter

java.lang.Object
org.antlr.tool.Interpreter
All Implemented Interfaces:
org.antlr.runtime.TokenSource

public class Interpreter extends Object implements org.antlr.runtime.TokenSource
The recognition interpreter/engine for grammars. Separated out of Grammar as it's related, but technically not a Grammar function. You create an interpreter for a grammar and an input stream. This object can act as a TokenSource so that you can hook up two grammars (via a CommonTokenStream) to lex/parse. Being a token source only makes sense for a lexer grammar of course.
  • Field Details

    • grammar

      protected Grammar grammar
    • input

      protected org.antlr.runtime.IntStream input
  • Constructor Details

    • Interpreter

      public Interpreter(Grammar grammar, org.antlr.runtime.IntStream input)
  • Method Details

    • nextToken

      public org.antlr.runtime.Token nextToken()
      Specified by:
      nextToken in interface org.antlr.runtime.TokenSource
    • scan

      public void scan(String startRule, org.antlr.runtime.debug.DebugEventListener actions, List<NFAState> visitedStates) throws org.antlr.runtime.RecognitionException
      For a given input char stream, try to match against the NFA starting at startRule. This is a deterministic parse even though it is using an NFA because it uses DFAs at each decision point to predict which alternative will succeed. This is exactly what the generated parser will do. This only does lexer grammars. Return the token type associated with the final rule end state.
      Throws:
      org.antlr.runtime.RecognitionException
    • scan

      public org.antlr.runtime.CommonToken scan(String startRule) throws org.antlr.runtime.RecognitionException
      Throws:
      org.antlr.runtime.RecognitionException
    • scan

      public org.antlr.runtime.CommonToken scan(String startRule, List<NFAState> visitedStates) throws org.antlr.runtime.RecognitionException
      Throws:
      org.antlr.runtime.RecognitionException
    • parse

      public void parse(String startRule, org.antlr.runtime.debug.DebugEventListener actions, List<NFAState> visitedStates) throws org.antlr.runtime.RecognitionException
      Throws:
      org.antlr.runtime.RecognitionException
    • parse

      public org.antlr.runtime.tree.ParseTree parse(String startRule) throws org.antlr.runtime.RecognitionException
      Throws:
      org.antlr.runtime.RecognitionException
    • parse

      public org.antlr.runtime.tree.ParseTree parse(String startRule, List<NFAState> visitedStates) throws org.antlr.runtime.RecognitionException
      Throws:
      org.antlr.runtime.RecognitionException
    • parseEngine

      protected void parseEngine(String startRule, NFAState start, NFAState stop, org.antlr.runtime.IntStream input, Stack<NFAState> ruleInvocationStack, org.antlr.runtime.debug.DebugEventListener actions, List<NFAState> visitedStates) throws org.antlr.runtime.RecognitionException
      Fill a list of all NFA states visited during the parse
      Throws:
      org.antlr.runtime.RecognitionException
    • predict

      public int predict(DFA dfa)
      Given an input stream, return the unique alternative predicted by matching the input. Upon error, return NFA.INVALID_ALT_NUMBER The first symbol of lookahead is presumed to be primed; that is, input.lookahead(1) must point at the input symbol you want to start predicting with.
    • reportScanError

      public void reportScanError(org.antlr.runtime.RecognitionException re)
    • getSourceName

      public String getSourceName()
      Specified by:
      getSourceName in interface org.antlr.runtime.TokenSource