Class ProxyParserErrorListener
- All Implemented Interfaces:
ANTLRErrorListener<Token>,ParserErrorListener
-
Constructor Summary
ConstructorsConstructorDescriptionProxyParserErrorListener(Collection<? extends ANTLRErrorListener<? super Token>> delegates) -
Method Summary
Modifier and TypeMethodDescriptionvoidreportAmbiguity(Parser recognizer, DFA dfa, int startIndex, int stopIndex, boolean exact, BitSet ambigAlts, ATNConfigSet configs) This method is called by the parser when a full-context prediction results in an ambiguity.voidreportAttemptingFullContext(Parser recognizer, DFA dfa, int startIndex, int stopIndex, BitSet conflictingAlts, SimulatorState conflictState) This method is called when an SLL conflict occurs and the parser is about to use the full context information to make an LL decision.voidreportContextSensitivity(Parser recognizer, DFA dfa, int startIndex, int stopIndex, int prediction, SimulatorState acceptState) This method is called by the parser when a full-context prediction has a unique result.Methods inherited from class org.antlr.v4.runtime.ProxyErrorListener
getDelegates, syntaxErrorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.antlr.v4.runtime.ANTLRErrorListener
syntaxError
-
Constructor Details
-
ProxyParserErrorListener
-
-
Method Details
-
reportAmbiguity
public void reportAmbiguity(Parser recognizer, DFA dfa, int startIndex, int stopIndex, boolean exact, BitSet ambigAlts, ATNConfigSet configs) Description copied from interface:ParserErrorListenerThis method is called by the parser when a full-context prediction results in an ambiguity.Each full-context prediction which does not result in a syntax error will call either
ParserErrorListener.reportContextSensitivity(org.antlr.v4.runtime.Parser, org.antlr.v4.runtime.dfa.DFA, int, int, int, org.antlr.v4.runtime.atn.SimulatorState)orParserErrorListener.reportAmbiguity(org.antlr.v4.runtime.Parser, org.antlr.v4.runtime.dfa.DFA, int, int, boolean, java.util.BitSet, org.antlr.v4.runtime.atn.ATNConfigSet).When
ambigAltsis not null, it contains the set of potentially viable alternatives identified by the prediction algorithm. WhenambigAltsis null, useATNConfigSet.getRepresentedAlternatives()to obtain the represented alternatives from theconfigsargument.When
exactistrue, all of the potentially viable alternatives are truly viable, i.e. this is reporting an exact ambiguity. Whenexactisfalse, at least two of the potentially viable alternatives are viable for the current input, but the prediction algorithm terminated as soon as it determined that at least the minimum potentially viable alternative is truly viable.When the
PredictionMode.LL_EXACT_AMBIG_DETECTIONprediction mode is used, the parser is required to identify exact ambiguities soexactwill always betrue.- Specified by:
reportAmbiguityin interfaceParserErrorListener- Parameters:
recognizer- the parser instancedfa- the DFA for the current decisionstartIndex- the input index where the decision startedstopIndex- the input input where the ambiguity was identifiedexact-trueif the ambiguity is exactly known, otherwisefalse. This is alwaystruewhenPredictionMode.LL_EXACT_AMBIG_DETECTIONis used.ambigAlts- the potentially ambiguous alternatives, ornullto indicate that the potentially ambiguous alternatives are the complete set of represented alternatives inconfigsconfigs- the ATN configuration set where the ambiguity was identified
-
reportAttemptingFullContext
public void reportAttemptingFullContext(Parser recognizer, DFA dfa, int startIndex, int stopIndex, BitSet conflictingAlts, SimulatorState conflictState) Description copied from interface:ParserErrorListenerThis method is called when an SLL conflict occurs and the parser is about to use the full context information to make an LL decision.If one or more configurations in
configscontains a semantic predicate, the predicates are evaluated before this method is called. The subset of alternatives which are still viable after predicates are evaluated is reported inconflictingAlts.- Specified by:
reportAttemptingFullContextin interfaceParserErrorListener- Parameters:
recognizer- the parser instancedfa- the DFA for the current decisionstartIndex- the input index where the decision startedstopIndex- the input index where the SLL conflict occurredconflictingAlts- The specific conflicting alternatives. If this isnull, the conflicting alternatives are all alternatives represented inconfigs.conflictState- the simulator state when the SLL conflict was detected
-
reportContextSensitivity
public void reportContextSensitivity(Parser recognizer, DFA dfa, int startIndex, int stopIndex, int prediction, SimulatorState acceptState) Description copied from interface:ParserErrorListenerThis method is called by the parser when a full-context prediction has a unique result.Each full-context prediction which does not result in a syntax error will call either
ParserErrorListener.reportContextSensitivity(org.antlr.v4.runtime.Parser, org.antlr.v4.runtime.dfa.DFA, int, int, int, org.antlr.v4.runtime.atn.SimulatorState)orParserErrorListener.reportAmbiguity(org.antlr.v4.runtime.Parser, org.antlr.v4.runtime.dfa.DFA, int, int, boolean, java.util.BitSet, org.antlr.v4.runtime.atn.ATNConfigSet).For prediction implementations that only evaluate full-context predictions when an SLL conflict is found (including the default
ParserATNSimulatorimplementation), this method reports cases where SLL conflicts were resolved to unique full-context predictions, i.e. the decision was context-sensitive. This report does not necessarily indicate a problem, and it may appear even in completely unambiguous grammars.configsmay have more than one represented alternative if the full-context prediction algorithm does not evaluate predicates before beginning the full-context prediction. In all cases, the final prediction is passed as thepredictionargument.Note that the definition of "context sensitivity" in this method differs from the concept in
DecisionInfo.contextSensitivities. This method reports all instances where an SLL conflict occurred but LL parsing produced a unique result, whether or not that unique result matches the minimum alternative in the SLL conflicting set.- Specified by:
reportContextSensitivityin interfaceParserErrorListener- Parameters:
recognizer- the parser instancedfa- the DFA for the current decisionstartIndex- the input index where the decision startedstopIndex- the input index where the context sensitivity was finally determinedprediction- the unambiguous result of the full-context predictionacceptState- the simulator state when the unambiguous prediction was determined
-