public static boolean isAssigned(EObject e) { return containingAssignment(e) != null; }
/** * @since 2.0 */ public static boolean isUnassignedParserRuleCall(EObject ele) { if (!isParserRuleCall(ele)) return false; return GrammarUtil.containingAssignment(ele) == null; }
protected Assignment getAssignment(AbstractElement ele) { Assignment ass = GrammarUtil.containingAssignment(ele); if (ass == null) throw new RuntimeException("Only Assigned " + ele.eClass().getName() + "s are allowed"); return ass; }
/** * @since 2.0 */ public static boolean isAssignedEObjectRuleCall(EObject ele) { if (!isEObjectRuleCall(ele)) return false; return GrammarUtil.containingAssignment(ele) != null; }
/** * @since 2.0 */ public static boolean isUnassignedEObjectRuleCall(EObject ele) { if (!isEObjectRuleCall(ele)) return false; return GrammarUtil.containingAssignment(ele) == null; }
protected Iterable<AbstractElement> findValidBooleanAssignments(EObject semanticObj, Iterable<AbstractElement> assignedElements, Object value) { List<AbstractElement> result = Lists.newArrayList(); for (AbstractElement ele : assignedElements) if (GrammarUtil.isBooleanAssignment(GrammarUtil.containingAssignment(ele))) { if (Boolean.TRUE.equals(value)) result.add(ele); } else { if (ele instanceof RuleCall && valueSerializer.isValid(semanticObj, (RuleCall) ele, value, null)) result.add(ele); } return result; }
protected String getUnassignedRuleCallToken(RuleCall ruleCall, INode node) { Assignment ass = GrammarUtil.containingAssignment(ruleCall); if (ass != null && !GrammarUtil.isBooleanAssignment(ass)) throw new IllegalStateException("RuleCall is invalid; Can not determine token."); return getUnassignedRuleCallToken(contexts.peek().semanticObject, ruleCall, node); }
private String getAssignedFeature(RuleCall call) { Assignment ass = GrammarUtil.containingAssignment(call); if (ass != null) { String result = ass.getFeature(); if (result.equals(result.toLowerCase())) result = Strings.toFirstUpper(result); return result; } return null; }
private String getAssignedFeature(RuleCall call) { Assignment ass = GrammarUtil.containingAssignment(call); if (ass != null) { String result = ass.getFeature(); if (result.equals(result.toLowerCase())) result = Strings.toFirstUpper(result); return result; } return null; }
protected String getFeatureName() { if (element instanceof Action) return ((Action) element).getFeature(); Assignment ass = GrammarUtil.containingAssignment(element); if (ass != null) return ass.getFeature(); return null; }
protected String getAssignmentOperator() { if (element instanceof Action) return ((Action) element).getOperator(); Assignment ass = GrammarUtil.containingAssignment(element); if (ass != null) return ass.getOperator(); return null; }
private boolean isUnassignedRuleCall(final RuleCall c) { boolean _isEObjectRuleCall = GrammarUtil.isEObjectRuleCall(c); if (_isEObjectRuleCall) { return false; } final Assignment ass = GrammarUtil.containingAssignment(c); return ((ass == null) || GrammarUtil.isBooleanAssignment(ass)); }
public static EReference getReference(CrossReference ref, EClass referenceOwner) { final String feature = GrammarUtil.containingAssignment(ref).getFeature(); EStructuralFeature result = referenceOwner.getEStructuralFeature(feature); if (result instanceof EReference && !((EReference) result).isContainment()) return (EReference) result; return null; }
protected String addAssignemnt(String result, AbstractElement ele) { if (!showAssignment) return result; Assignment ass = GrammarUtil.containingAssignment(ele); result = ass != null ? ass.getFeature() + ass.getOperator() + result : result; return addQualified(result, ele); }
/** * @return true, if the parent node could contain cross references to the same semantic element as the given node. */ protected boolean shouldCheckParentNode(INode node) { EObject grammarElement = node.getGrammarElement(); if (grammarElement instanceof AbstractElement) { ICompositeNode parent = node.getParent(); if (parent != null && !parent.hasDirectSemanticElement()) { Assignment assignment = GrammarUtil.containingAssignment(grammarElement); return assignment == null; } } return false; }
protected void collectReachableRules(ParserRule pr, Set<ParserRule> rules, Set<ParserRule> visited) { if (!visited.add(pr)) return; for (RuleCall rc : GrammarUtil.containedRuleCalls(pr)) if (isParserRule(rc.getRule())) { if (GrammarUtil.containingAssignment(rc) != null) rules.add((ParserRule) rc.getRule()); collectReachableRules((ParserRule) rc.getRule(), rules, visited); } }
public boolean equalsOrReplacesNode(EObject context, RuleCall ruleCall, Object value, INode node) { if (ruleCall != node.getGrammarElement()) return false; Assignment ass = GrammarUtil.containingAssignment(ruleCall); if (GrammarUtil.isSingleAssignment(ass)) return true; Object converted = converter.toValue(serialize(node), ruleCall.getRule().getName(), node); return converted != null && converted.equals(value); }
/** * @since 2.0 */ protected EClass getConstructedType(AbstractElement ele) { if (ele instanceof Action) return (EClass) ((Action) ele).getType().getClassifier(); if (GrammarUtil.containingAssignment(ele) != null) return (EClass) GrammarUtil.containingRule(ele).getType().getClassifier(); return null; }
public Pair<EObject, EStructuralFeature> getEStructuralFeatureByParent() { INode leaf = getLeafNodeAtOffset(); EObject object = NodeModelUtils.findActualSemanticObjectFor(leaf); Assert.assertNotNull("No EObject found at offset " + offset, object); Assignment ass = GrammarUtil.containingAssignment(leaf.getGrammarElement()); while (ass == null && leaf.getParent() != null) { leaf = leaf.getParent(); ass = GrammarUtil.containingAssignment(leaf.getGrammarElement()); } Assert.assertNotNull("No Assignment found at offset " + offset, ass); @SuppressWarnings("null") EStructuralFeature feature = object.eClass().getEStructuralFeature(ass.getFeature()); return Tuples.create(object, feature); }
protected EObject findActualSemanticObject(INode node, EObject parent) { while (parent == node.getSemanticElement() && node.hasNextSibling()) { Assignment assignment = GrammarUtil.containingAssignment(node.getGrammarElement()); if (assignment != null) { return findSemanticObjectForStructuralFeature(assignment.getFeature(), parent); } node = node.getNextSibling(); } return node.getSemanticElement(); }