protected EObject getRootContext() { for (AbstractRule rule : grammar.getGrammar().getRules()) if (GrammarUtil.isEObjectRule(rule)) return rule; throw new RuntimeException("There is no parser rule in the grammar."); }
public List<EObject> getAllContexts(Grammar grammar) { List<EObject> result = Lists.newArrayList(); for (ParserRule pr : GrammarUtil.allParserRules(grammar)) if (GrammarUtil.isEObjectRule(pr)) { result.add(pr); for (Action action : GrammarUtil.containedActions(pr)) if (GrammarUtil.isAssignedAction(action)) result.add(action); } return result; }
public String getContextName(EObject ctx) { if (GrammarUtil.isEObjectRule(ctx)) return getContextName((ParserRule) ctx); if (GrammarUtil.isAssignedAction(ctx)) return getContextName((Action) ctx); throw new RuntimeException("Invalid Context: " + EmfFormatter.objPath(ctx)); }
private List<AbstractRule> unassignedCalledTokenRules() { final Function1<AbstractRule, Boolean> _function = (AbstractRule it) -> { return Boolean.valueOf(GrammarUtil.isEObjectRule(it)); }; final Iterable<AbstractRule> rules = IterableExtensions.<AbstractRule>filter(GrammarUtil.allRules(this.getGrammar()), _function); final Function1<AbstractRule, Iterable<RuleCall>> _function_1 = (AbstractRule it) -> { final Function1<RuleCall, Boolean> _function_2 = (RuleCall it_1) -> { return Boolean.valueOf(this.isUnassignedRuleCall(it_1)); }; return IterableExtensions.<RuleCall>filter(GrammarUtil.containedRuleCalls(it), _function_2); }; final Iterable<RuleCall> calls = Iterables.<RuleCall>concat(IterableExtensions.<AbstractRule, Iterable<RuleCall>>map(rules, _function_1)); final Function1<RuleCall, AbstractRule> _function_2 = (RuleCall it) -> { return it.getRule(); }; final Function1<AbstractRule, String> _function_3 = (AbstractRule it) -> { return it.getName(); }; return IterableExtensions.<AbstractRule, String>sortBy(IterableExtensions.<AbstractRule>toSet(IterableExtensions.<RuleCall, AbstractRule>map(calls, _function_2)), _function_3); }
public JavaFileAccess compileParserDefinition(final Grammar grammar) { final Function1<AbstractRule, Boolean> _function = (AbstractRule it) -> { return Boolean.valueOf(GrammarUtil.isEObjectRule(it)); }; final Iterable<AbstractRule> EObjectRules = IterableExtensions.<AbstractRule>filter(GrammarUtil.allRules(grammar), _function);
/** * @since 2.0 */ protected ParserRule findRootRuleForRegion(INode node) { if (GrammarUtil.isEObjectRule(node.getGrammarElement())) return (ParserRule) node.getGrammarElement(); if (node.hasDirectSemanticElement()) return GrammarUtil.containingParserRule(node.getGrammarElement()); if (node.getParent() != null) return findRootRuleForRegion(node.getParent()); return null; }