public static boolean isParserRuleCall(EObject grammarElement) { if (grammarElement instanceof RuleCall) { AbstractRule calledRule = ((RuleCall) grammarElement).getRule(); return calledRule != null && calledRule instanceof ParserRule; } return false; }
protected EObject tryGetGrammarElementAsRule(INode candidate) { EObject grammarElement = candidate.getGrammarElement(); if (grammarElement instanceof RuleCall) { grammarElement = ((RuleCall) grammarElement).getRule(); } return grammarElement; }
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 Iterable<EObject> findContexts(EObject semanticObject, boolean consultContainer, Iterable<EObject> contextCandidates) { EObject ctx = findContextNode(semanticObject).getGrammarElement(); if (ctx instanceof RuleCall) return Collections.singletonList((EObject) (((RuleCall) ctx).getRule())); return Collections.singletonList(ctx); } }
public ISerializationDiagnostic getInvalidEnumValueDiagnostic(EObject semanticObject, RuleCall rc, Object value) { List<String> valid = Lists.newArrayList(); for (EnumLiteralDeclaration eld : org.eclipse.xtext.EcoreUtil2.getAllContentsOfType(rc.getRule(), EnumLiteralDeclaration.class)) valid.add(eld.getEnumLiteral().getInstance().getName()); StringBuilder msg = new StringBuilder(); msg.append("The value '" + value + "' is invalid for enum " + rc.getRule().getName() + "\n"); msg.append("Valid values are: " + Joiner.on(", ").join(valid)); return new SerializationDiagnostic(INVALID_ENUM_VALUE, semanticObject, rc, msg.toString()); }
protected boolean hasIdRule(final CrossReference crossRef) { AbstractElement _terminal = crossRef.getTerminal(); if ((_terminal instanceof RuleCall)) { AbstractElement _terminal_1 = crossRef.getTerminal(); final String ruleName = ((RuleCall) _terminal_1).getRule().getName(); return ((Objects.equal(ruleName, "IdOrSuper") || Objects.equal(ruleName, "ValidID")) || Objects.equal(ruleName, "FeatureCallID")); } return false; }
private boolean isRichComment(final ILeafNode node) { EObject _grammarElement = node.getGrammarElement(); if ((_grammarElement instanceof RuleCall)) { return (Objects.equal(((RuleCall) node.getGrammarElement()).getRule(), this._xtendGrammarAccess.getCOMMENT_RICH_TEXT_ENDRule()) || Objects.equal(((RuleCall) node.getGrammarElement()).getRule(), this._xtendGrammarAccess.getCOMMENT_RICH_TEXT_INBETWEENRule())); } return false; } }
public static boolean isEObjectRuleCall(EObject grammarElement) { if (grammarElement instanceof RuleCall) { AbstractRule calledRule = ((RuleCall) grammarElement).getRule(); return calledRule != null && calledRule instanceof ParserRule && calledRule.getType().getClassifier() instanceof EClass; } return false; }
protected boolean isConsumingElement() { return element instanceof Assignment || (element instanceof RuleCall && ((RuleCall) element).getRule().getType().getClassifier() instanceof EClass) || element instanceof Action; }
public EObject getCallContext() { switch (type) { case ASSIGNED_ACTION_CALL: return getAction(); case ASSIGNED_PARSER_RULE_CALL: return getRuleCall().getRule(); default: return null; } }
protected String getNameRuleName(EObject targetElement, EAttribute nameAttribute) { List<INode> nameNodes = NodeModelUtils.findNodesForFeature(targetElement, nameAttribute); if(nameNodes.size() == 1) { EObject grammarElement = nameNodes.get(0).getGrammarElement(); if(grammarElement instanceof RuleCall) { AbstractRule nameRule = ((RuleCall) grammarElement).getRule(); if(nameRule != null) return nameRule.getName(); } } return null; }
@Override protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { if (ruleCall.getRule() == grammarAccess.getArrayBracketsRule()) return getArrayBracketsToken(semanticObject, ruleCall, node); return ""; }
@Override protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { if (ruleCall.getRule() == grammarAccess.getArrayBracketsRule()) return getArrayBracketsToken(semanticObject, ruleCall, node); else if (ruleCall.getRule() == grammarAccess.getOpSingleAssignRule()) return getOpSingleAssignToken(semanticObject, ruleCall, node); return ""; }
@Override protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { if (ruleCall.getRule() == grammarAccess.getArrayBracketsRule()) return getArrayBracketsToken(semanticObject, ruleCall, node); else if (ruleCall.getRule() == grammarAccess.getOpSingleAssignRule()) return getOpSingleAssignToken(semanticObject, ruleCall, node); return ""; }
public static boolean isDatatypeRuleCall(EObject grammarElement) { if (grammarElement instanceof RuleCall) { AbstractRule calledRule = ((RuleCall) grammarElement).getRule(); return calledRule != null && calledRule instanceof ParserRule && calledRule.getType().getClassifier() instanceof EDataType; } return false; }
public String serializeAssignedValue(EObject context, RuleCall ruleCall, Object value, INode node) { if (node != null) { Object converted = converter.toValue(serialize(node), ruleCall.getRule().getName(), node); if (converted != null && converted.equals(value)) return ITokenSerializer.KEEP_VALUE_FROM_NODE_MODEL; } return converter.toString(value, ruleCall.getRule().getName()); }
@Override public String caseRuleCall(RuleCall object) { doSwitch(object.getRule()); result.append(Strings.emptyIfNull(object.getCardinality())); return ""; }
protected String _localVar(final RuleCall it) { String _name = AntlrGrammarGenUtil.<AbstractRule>getOriginalElement(it.getRule()).getName(); String _plus = ("this_" + _name); String _plus_1 = (_plus + "_"); int _indexOf = this.contentsAsList(GrammarUtil.containingParserRule(it)).indexOf(it); return (_plus_1 + Integer.valueOf(_indexOf)); }
protected AbstractRule binaryOperationPrecedence(final EObject op) { final ISemanticRegion node = this.textRegionExtensions.regionFor(op).feature(XbasePackage.Literals.XABSTRACT_FEATURE_CALL__FEATURE); if (((node != null) && (node.getGrammarElement() instanceof RuleCall))) { EObject _grammarElement = node.getGrammarElement(); return ((RuleCall) _grammarElement).getRule(); } return null; }
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); }