Class LeftRecursiveRule

java.lang.Object
org.antlr.v4.tool.Rule
org.antlr.v4.tool.LeftRecursiveRule
All Implemented Interfaces:
AttributeResolver

public class LeftRecursiveRule extends Rule
  • Field Details

  • Constructor Details

  • Method Details

    • hasAltSpecificContexts

      public boolean hasAltSpecificContexts()
      Overrides:
      hasAltSpecificContexts in class Rule
    • getOriginalNumberOfAlts

      public int getOriginalNumberOfAlts()
      Description copied from class: Rule
      Used for recursive rules (subclass), which have 1 alt, but many original alts
      Overrides:
      getOriginalNumberOfAlts in class Rule
    • getOriginalAST

      public RuleAST getOriginalAST()
    • getUnlabeledAltASTs

      public List<AltAST> getUnlabeledAltASTs()
      Overrides:
      getUnlabeledAltASTs in class Rule
    • getPrimaryAlts

      public int[] getPrimaryAlts()
      Return an array that maps predicted alt from primary decision to original alt of rule. For following rule, return [0, 2, 4] e : e '*' e | INT | e '+' e | ID ; That maps predicted alt 1 to original alt 2 and predicted 2 to alt 4.
      Since:
      4.5.1
    • getRecursiveOpAlts

      public int[] getRecursiveOpAlts()
      Return an array that maps predicted alt from recursive op decision to original alt of rule. For following rule, return [0, 1, 3] e : e '*' e | INT | e '+' e | ID ; That maps predicted alt 1 to original alt 1 and predicted 2 to alt 3.
      Since:
      4.5.1
    • getAltLabels

      public Map<String,List<Pair<Integer,AltAST>>> getAltLabels()
      Get -> labels from those alts we deleted for left-recursive rules.
      Overrides:
      getAltLabels in class Rule