Class AmbiguityInfo

java.lang.Object
org.antlr.v4.runtime.atn.DecisionEventInfo
org.antlr.v4.runtime.atn.AmbiguityInfo

public class AmbiguityInfo extends DecisionEventInfo
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.reachesIntoOuterContext is 0 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:
  • Field Details

    • ambigAlts

      public BitSet ambigAlts
      The set of alternative numbers for this decision event that lead to a valid parse.
  • Constructor Details

    • AmbiguityInfo

      public AmbiguityInfo(int decision, ATNConfigSet configs, BitSet ambigAlts, TokenStream input, int startIndex, int stopIndex, boolean fullCtx)
      Constructs a new instance of the AmbiguityInfo class with the specified detailed ambiguity information.
      Parameters:
      decision - The decision number
      configs - The final configuration set identifying the ambiguous alternatives for the current input
      ambigAlts - The set of alternatives in the decision that lead to a valid parse. The predicted alt is the min(ambigAlts)
      input - The input token stream
      startIndex - The start index for the current prediction
      stopIndex - The index at which the ambiguity was identified during prediction
      fullCtx - true if the ambiguity was identified during LL prediction; otherwise, false if the ambiguity was identified during SLL prediction