Top Description Fields Constructors Methods
org.antlr.v4.runtime.atn

public Class AmbiguityInfo

extends DecisionEventInfo
Class Inheritance
Imports
org.antlr.v4.runtime.ParserErrorListener, .TokenStream, org.antlr.v4.runtime.misc.NotNull, java.util.BitSet

This class represents profiling event information for an ambiguity. Ambiguities are decisions where a particular input resulted in an SLL conflict, followed by LL prediction also reaching a conflict state (indicating a true ambiguity in the grammar).

This event may be reported during SLL prediction in cases where the conflicting SLL configuration set provides sufficient information to determine that the SLL conflict is truly an ambiguity. For example, if none of the ATN configurations in the conflicting SLL configuration set have traversed a global follow transition (i.e. ATNConfig#getReachesIntoOuterContext is false for all configurations), then the result of SLL prediction for that input is known to be equivalent to the result of LL prediction for that input.

In some cases, the minimum represented alternative in the conflicting LL configuration set is not equal to the minimum represented alternative in the conflicting SLL configuration set. Grammars and inputs which result in this scenario are unable to use PredictionMode#SLL, which in turn means they cannot use the two-stage parsing strategy to improve parsing performance for that input.

Since
4.3
See Also
ParserATNSimulator#reportAmbiguity, ParserErrorListener#reportAmbiguity

Field Summary

Modifier and TypeField and Description
private final BitSet
ambigAlts

The set of alternative numbers for this decision event that lead to a valid parse.

Inherited from org.antlr.v4.runtime.atn.DecisionEventInfo:
decisionfullCtxinputstartIndexstatestopIndex

Constructor Summary

AccessConstructor and Description
public
AmbiguityInfo(int
The decision number
decision
,
SimulatorState
The final simulator state identifying the ambiguous alternatives for the current input
state
,
BitSet
The set of alternatives in the decision that lead to a valid parse. The predicted alt is the min(ambigAlts)
ambigAlts
,
TokenStream
The input token stream
input
,
int
The start index for the current prediction
startIndex
,
int
The index at which the ambiguity was identified during prediction
stopIndex
)

Constructs a new instance of the AmbiguityInfo class with the specified detailed ambiguity information.

Method Summary

Modifier and TypeMethod and Description
public BitSet
getAmbiguousAlternatives()

Gets the set of alternatives in the decision that lead to a valid parse.

Field Detail

ambigAltsback to summary
private final BitSet ambigAlts

The set of alternative numbers for this decision event that lead to a valid parse.

Annotations
@NotNull

Constructor Detail

AmbiguityInfoback to summary
public AmbiguityInfo(int decision, SimulatorState state, BitSet ambigAlts, TokenStream input, int startIndex, int stopIndex)

Constructs a new instance of the AmbiguityInfo class with the specified detailed ambiguity information.

Parameters
decision:int

The decision number

state:SimulatorState

The final simulator state identifying the ambiguous alternatives for the current input

ambigAlts:BitSet

The set of alternatives in the decision that lead to a valid parse. The predicted alt is the min(ambigAlts)

input:TokenStream

The input token stream

startIndex:int

The start index for the current prediction

stopIndex:int

The index at which the ambiguity was identified during prediction

Method Detail

getAmbiguousAlternativesback to summary
public BitSet getAmbiguousAlternatives()

Gets the set of alternatives in the decision that lead to a valid parse.

Annotations
@NotNull
Since
4.5