@Override public Iterable<AbstractElement> getStarts(AbstractElement root) { Set<AbstractElement> result = Sets.newLinkedHashSet(); for (Action act : GrammarUtil.containedActions(root)) if (act.getFeature() != null) result.add(act); for (AbstractElement ele : super.getStarts(root)) if (ele == null) result.add(null); else if (!GrammarUtil.isAssignedAction(ele)) result.add(ele); return result; }
@Override public Iterable<AbstractElement> getStarts(AbstractElement root) { Set<AbstractElement> result = Sets.newLinkedHashSet(); for (Action act : GrammarUtil.containedActions(root)) if (act.getFeature() != null) result.add(act); for (AbstractElement ele : super.getStarts(root)) if (ele == null) { } else if (actionCtx == ele) { result.add(null); } else if (!GrammarUtil.isAssignedAction(ele)) result.add(ele); return result; }
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; }
/** * inits the grammar order tree */ @Inject private void init() { if (grammarTree.isEmpty()) { grammarTree.clear(); List<ParserRule> parserRules = GrammarUtil.allParserRules(grammarAccess.getGrammar()); for (ParserRule rule : parserRules) { List<Action> action = GrammarUtil.containedActions(rule); List<Alternatives> alternatives = EcoreUtil2.getAllContentsOfType(rule.getAlternatives(), Alternatives.class); if (action.size() == 1 && alternatives.size() > 0) { grammarTree.put(action.get(0).getType().getClassifier(), getPriorityTree(alternatives.get(0))); } } } }
public List<IConstraintContext> getConstraints(Grammar context) { List<IConstraintContext> result = cache.get(context); if (result == null) { result = Lists.newArrayList(); for (ParserRule parserRule : GrammarUtil.allParserRules(context)) if (parserRule.getType().getClassifier() instanceof EClass) { result.add(getConstraints(parserRule)); for (Action action : GrammarUtil.containedActions(parserRule)) if (action.getFeature() != null) result.add(getConstraints(action)); } filterDuplicateConstraintsAndSetNames(context, result); cache.put(context, result); } return result; }
if (type != null) { for (ParserRule context : contextRules) for (Action a : GrammarUtil.containedActions(context)) if (a.getType().getClassifier() == type) { relevantRules.add(context);
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)); } } } } } }