Class LeftRecursiveRule

    • Constructor Detail

      • LeftRecursiveRule

        public LeftRecursiveRule​(Grammar g,
                                 java.lang.String name,
                                 RuleAST ast)
    • Method Detail

      • 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()
      • 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 java.util.Map<java.lang.String,​java.util.List<Pair<java.lang.Integer,​AltAST>>> getAltLabels()
        Get -> labels from those alts we deleted for left-recursive rules.
        Overrides:
        getAltLabels in class Rule