Class LexerATNSimulator
java.lang.Object
org.graalvm.shadowed.org.antlr.v4.runtime.atn.ATNSimulator
org.graalvm.shadowed.org.antlr.v4.runtime.atn.LexerATNSimulator
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classWhen we hit an accept state in either the DFA or the ATN, we have to notify the character stream to start buffering characters viaIntStream.mark()and record the current state. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intThe index of the character relative to the beginning of the line 0..n-1static final booleanfinal DFA[]static final booleanprotected intline number 1..n within the inputstatic final intstatic final intprotected intprotected final LexerATNSimulator.SimStateUsed during DFA/ATN exec to record the most recent accept configuration infoprotected final Lexerprotected intThe current token's starting index into the character stream.Fields inherited from class org.graalvm.shadowed.org.antlr.v4.runtime.atn.ATNSimulator
atn, ERROR, sharedContextCache -
Constructor Summary
ConstructorsConstructorDescriptionLexerATNSimulator(ATN atn, DFA[] decisionToDFA, PredictionContextCache sharedContextCache) LexerATNSimulator(Lexer recog, ATN atn, DFA[] decisionToDFA, PredictionContextCache sharedContextCache) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaccept(CharStream input, LexerActionExecutor lexerActionExecutor, int startIndex, int index, int line, int charPos) protected DFAStateaddDFAEdge(DFAState from, int t, ATNConfigSet q) protected voidaddDFAEdge(DFAState p, int t, DFAState q) protected DFAStateaddDFAState(ATNConfigSet configs) Add a new DFA state if there isn't one with this set of configurations already.protected voidcaptureSimState(LexerATNSimulator.SimState settings, CharStream input, DFAState dfaState) voidclearDFA()Clear the DFA cache used by the current instance.protected booleanclosure(CharStream input, LexerATNConfig config, ATNConfigSet configs, boolean currentAltReachedAcceptState, boolean speculative, boolean treatEofAsEpsilon) Since the alternatives within any lexer decision are ordered by preference, this method stops pursuing the closure as soon as an accept state is reached.protected ATNConfigSetcomputeStartState(CharStream input, ATNState p) protected DFAStatecomputeTargetState(CharStream input, DFAState s, int t) Compute a target state for an edge in the DFA, and attempt to add the computed state and corresponding edge to the DFA.voidconsume(CharStream input) voidcopyState(LexerATNSimulator simulator) protected booleanevaluatePredicate(CharStream input, int ruleIndex, int predIndex, boolean speculative) Evaluate a predicate specified in the lexer.protected intexecATN(CharStream input, DFAState ds0) protected intfailOrAccept(LexerATNSimulator.SimState prevAccept, CharStream input, ATNConfigSet reach, int t) intfinal DFAgetDFA(int mode) protected LexerATNConfiggetEpsilonTarget(CharStream input, LexerATNConfig config, Transition t, ATNConfigSet configs, boolean speculative, boolean treatEofAsEpsilon) protected DFAStategetExistingTargetState(DFAState s, int t) Get an existing target state for an edge in the DFA.intgetLine()protected voidgetReachableConfigSet(CharStream input, ATNConfigSet closure, ATNConfigSet reach, int t) Given a starting configuration set, figure out all ATN configurations we can reach upon inputt.protected ATNStategetReachableTarget(Transition trans, int t) getText(CharStream input) Get the text matched so far for the current token.getTokenName(int t) intmatch(CharStream input, int mode) protected intmatchATN(CharStream input) voidreset()voidsetCharPositionInLine(int charPositionInLine) voidsetLine(int line) Methods inherited from class org.graalvm.shadowed.org.antlr.v4.runtime.atn.ATNSimulator
getCachedContext, getSharedContextCache
-
Field Details
-
debug
public static final boolean debug- See Also:
-
dfa_debug
public static final boolean dfa_debug- See Also:
-
MIN_DFA_EDGE
public static final int MIN_DFA_EDGE- See Also:
-
MAX_DFA_EDGE
public static final int MAX_DFA_EDGE- See Also:
-
recog
-
startIndex
protected int startIndexThe current token's starting index into the character stream. Shared across DFA to ATN simulation in case the ATN fails and the DFA did not have a previous accept state. In this case, we use the ATN-generated exception object. -
line
protected int lineline number 1..n within the input -
charPositionInLine
protected int charPositionInLineThe index of the character relative to the beginning of the line 0..n-1 -
decisionToDFA
-
mode
protected int mode -
prevAccept
Used during DFA/ATN exec to record the most recent accept configuration info
-
-
Constructor Details
-
LexerATNSimulator
-
LexerATNSimulator
public LexerATNSimulator(Lexer recog, ATN atn, DFA[] decisionToDFA, PredictionContextCache sharedContextCache)
-
-
Method Details
-
copyState
-
match
-
reset
public void reset()- Specified by:
resetin classATNSimulator
-
clearDFA
public void clearDFA()Description copied from class:ATNSimulatorClear the DFA cache used by the current instance. Since the DFA cache may be shared by multiple ATN simulators, this method may affect the performance (but not accuracy) of other parsers which are being used concurrently.- Overrides:
clearDFAin classATNSimulator
-
matchATN
-
execATN
-
getExistingTargetState
Get an existing target state for an edge in the DFA. If the target state for the edge has not yet been computed or is otherwise not available, this method returnsnull.- Parameters:
s- The current DFA statet- The next input symbol- Returns:
- The existing target DFA state for the given input symbol
t, ornullif the target state for this edge is not already cached
-
computeTargetState
Compute a target state for an edge in the DFA, and attempt to add the computed state and corresponding edge to the DFA.- Parameters:
input- The input streams- The current DFA statet- The next input symbol- Returns:
- The computed target DFA state for the given input symbol
t. Iftdoes not lead to a valid DFA state, this method returnsATNSimulator.ERROR.
-
failOrAccept
protected int failOrAccept(LexerATNSimulator.SimState prevAccept, CharStream input, ATNConfigSet reach, int t) -
getReachableConfigSet
protected void getReachableConfigSet(CharStream input, ATNConfigSet closure, ATNConfigSet reach, int t) Given a starting configuration set, figure out all ATN configurations we can reach upon inputt. Parameterreachis a return parameter. -
accept
protected void accept(CharStream input, LexerActionExecutor lexerActionExecutor, int startIndex, int index, int line, int charPos) -
getReachableTarget
-
computeStartState
-
closure
protected boolean closure(CharStream input, LexerATNConfig config, ATNConfigSet configs, boolean currentAltReachedAcceptState, boolean speculative, boolean treatEofAsEpsilon) Since the alternatives within any lexer decision are ordered by preference, this method stops pursuing the closure as soon as an accept state is reached. After the first accept state is reached by depth-first search fromconfig, all other (potentially reachable) states for this rule would have a lower priority.- Returns:
trueif an accept state is reached, otherwisefalse.
-
getEpsilonTarget
protected LexerATNConfig getEpsilonTarget(CharStream input, LexerATNConfig config, Transition t, ATNConfigSet configs, boolean speculative, boolean treatEofAsEpsilon) -
evaluatePredicate
protected boolean evaluatePredicate(CharStream input, int ruleIndex, int predIndex, boolean speculative) Evaluate a predicate specified in the lexer.If
speculativeistrue, this method was called beforeconsume(org.graalvm.shadowed.org.antlr.v4.runtime.CharStream)for the matched character. This method should callconsume(org.graalvm.shadowed.org.antlr.v4.runtime.CharStream)before evaluating the predicate to ensure position sensitive values, includingLexer.getText(),Lexer.getLine(), andLexer.getCharPositionInLine(), properly reflect the current lexer state. This method should restoreinputand the simulator to the original state before returning (i.e. undo the actions made by the call toconsume(org.graalvm.shadowed.org.antlr.v4.runtime.CharStream).- Parameters:
input- The input stream.ruleIndex- The rule containing the predicate.predIndex- The index of the predicate within the rule.speculative-trueif the current index ininputis one character before the predicate's location.- Returns:
trueif the specified predicate evaluates totrue.
-
captureSimState
protected void captureSimState(LexerATNSimulator.SimState settings, CharStream input, DFAState dfaState) -
addDFAEdge
-
addDFAEdge
-
addDFAState
Add a new DFA state if there isn't one with this set of configurations already. This method also detects the first configuration containing an ATN rule stop state. Later, when traversing the DFA, we will know which rule to accept. -
getDFA
-
getText
Get the text matched so far for the current token. -
getLine
public int getLine() -
setLine
public void setLine(int line) -
getCharPositionInLine
public int getCharPositionInLine() -
setCharPositionInLine
public void setCharPositionInLine(int charPositionInLine) -
consume
-
getTokenName
-