Class RequiredRuleNameComputer


  • public class RequiredRuleNameComputer
    extends java.lang.Object
    Computes the Antlr method names that need to be invoked to continue the follow element computation for content proposals. It is used if a previous round produced follow elements with a lookahead bigger than 1. The result of getRequiredRuleNames(Param) is the list of methods that need need to be invoked to force the parser in one or the other direction at the current decision point.
    Since:
    2.9
    • Constructor Detail

      • RequiredRuleNameComputer

        public RequiredRuleNameComputer()
    • Method Detail

      • getRequiredRuleNames

        public java.lang.String[][] getRequiredRuleNames​(RequiredRuleNameComputer.Param param)
        Returns the names of parser rules that should be called in order to obtain the follow elements for the parser call stack described by the given param.
      • getAdjustedRequiredRuleNames

        protected java.lang.String[][] getAdjustedRequiredRuleNames​(RequiredRuleNameComputer.Param param,
                                                                    org.eclipse.xtext.AbstractElement elementToParse,
                                                                    java.lang.String originalRuleName)
        Since:
        2.14
      • getAdjustedSecondRule

        protected java.lang.String getAdjustedSecondRule​(RequiredRuleNameComputer.Param param,
                                                         org.eclipse.xtext.Group group,
                                                         int idx)
        Since:
        2.14
      • getRuleNamesInGroup

        protected java.lang.String[][] getRuleNamesInGroup​(RequiredRuleNameComputer.Param param,
                                                           org.eclipse.xtext.AbstractElement elementToParse,
                                                           java.lang.String adjustedFirstRule,
                                                           java.lang.String adjustedSecondRule)
        Since:
        2.14
      • getRequiredRuleNames

        protected java.lang.String[][] getRequiredRuleNames​(RequiredRuleNameComputer.Param param,
                                                            org.eclipse.xtext.AbstractElement elementToParse)
        Since:
        2.14
      • getFilteredElements

        protected java.util.List<org.eclipse.xtext.AbstractElement> getFilteredElements​(java.util.List<org.eclipse.xtext.AbstractElement> elements,
                                                                                        RequiredRuleNameComputer.Param param)
      • isFiltered

        protected boolean isFiltered​(RequiredRuleNameComputer.Param param)
        Returns true if the grammar element that is associated with the given param is filtered due to guard conditions of parameterized rules in the current call stack. If the grammar element is the only element contained in a group, its container is checked, too.
        See Also:
        isFiltered(AbstractElement, Param)
      • getEnclosingSingleElementGroup

        protected org.eclipse.xtext.AbstractElement getEnclosingSingleElementGroup​(org.eclipse.xtext.AbstractElement elementToParse)
        Return the containing group if it contains exactly one element.
        Since:
        2.14
      • isFiltered

        protected boolean isFiltered​(org.eclipse.xtext.AbstractElement canddiate,
                                     RequiredRuleNameComputer.Param param)
        Returns true if the given candidate is a group that is filtered due to rule parameters in the current call graph.
      • getRuleNames

        protected org.eclipse.xtext.xtext.RuleNames getRuleNames()
        Noreference:
        This method is not intended to be referenced by clients.
        Nooverride:
        This method is not intended to be re-implemented or extended by clients.