private Iterable<String> computeFQFeatureNames(final Grammar g) { final Function1<Assignment, String> _function = (Assignment it) -> { return this.getFQFeatureName(it); }; List<String> _map = ListExtensions.<Assignment, String>map(GrammarUtil.containedAssignments(g), _function); final Function1<AbstractRule, String> _function_1 = (AbstractRule it) -> { return this.getFQFeatureName(it); }; List<String> _map_1 = ListExtensions.<AbstractRule, String>map(g.getRules(), _function_1); return Iterables.<String>concat(_map, _map_1); }
public void collectAbstractElements(Grammar grammar, EStructuralFeature feature, IFollowElementAcceptor followElementAcceptor) { for (Grammar superGrammar : grammar.getUsedGrammars()) { collectAbstractElements(superGrammar, feature, followElementAcceptor); } EClass declarator = feature.getEContainingClass(); for (ParserRule rule : GrammarUtil.allParserRules(grammar)) { for (Assignment assignment : GrammarUtil.containedAssignments(rule)) { if (assignment.getFeature().equals(feature.getName())) { EClassifier classifier = GrammarUtil.findCurrentType(assignment); EClassifier compType = EcoreUtil2.getCompatibleType(declarator, classifier); if (compType == declarator) { followElementAcceptor.accept(assignment); } } } } }
protected void getLocallyAssignedContainmentReferences(final Grammar grammar, final Multimap<EClass, EReference> type2ref) { List<Assignment> _containedAssignments = GrammarUtil.containedAssignments(grammar); for (final Assignment assignment : _containedAssignments) { { final EClassifier type = GrammarUtil.findCurrentType(assignment); if ((type instanceof EClass)) { final EStructuralFeature feature = ((EClass)type).getEStructuralFeature(assignment.getFeature()); if (((feature instanceof EReference) && ((EReference) feature).isContainment())) { type2ref.put(((EClass)type), ((EReference) feature)); } } } } List<Action> _containedActions = GrammarUtil.containedActions(grammar); for (final Action action : _containedActions) { { final String featureName = action.getFeature(); if ((featureName != null)) { final EClassifier type = action.getType().getClassifier(); if ((type instanceof EClass)) { final EStructuralFeature feature = ((EClass)type).getEStructuralFeature(featureName); if (((feature instanceof EReference) && ((EReference) feature).isContainment())) { type2ref.put(((EClass)type), ((EReference) feature)); } } } } } }
return it.getTerminal(); }; final List<AbstractElement> terminals = IterableExtensions.<AbstractElement>toList(IterableExtensions.<Assignment, AbstractElement>map(IterableExtensions.<Assignment>filter(GrammarUtil.containedAssignments(GrammarUtil.containingParserRule(assignment)), _function), _function_1)); final Function1<AbstractElement, EClass> _function_2 = (AbstractElement it) -> { return it.eClass();
final ArrayList<Assignment> assignments = IterableExtensions.<Assignment, ArrayList<Assignment>>fold(GrammarUtil.containedAssignments(this.getGrammar()), CollectionLiterals.<Assignment>newArrayList(), _function); final Function2<ArrayList<AbstractRule>, AbstractRule, ArrayList<AbstractRule>> _function_1 = (ArrayList<AbstractRule> candidates, AbstractRule rule) -> { ArrayList<AbstractRule> _xblockexpression_1 = null;