protected boolean hasIdRule(final CrossReference crossRef) {
   AbstractElement _terminal = crossRef.getTerminal();
   if ((_terminal instanceof RuleCall)) {
     AbstractElement _terminal_1 = crossRef.getTerminal();
     AbstractRule _rule = ((RuleCall) _terminal_1).getRule();
     final String ruleName = _rule.getName();
     boolean _or = false;
     boolean _or_1 = false;
     boolean _equals = Objects.equal(ruleName, "IdOrSuper");
     if (_equals) {
       _or_1 = true;
     } else {
       boolean _equals_1 = Objects.equal(ruleName, "ValidID");
       _or_1 = _equals_1;
     }
     if (_or_1) {
       _or = true;
     } else {
       boolean _equals_2 = Objects.equal(ruleName, "FeatureCallID");
       _or = _equals_2;
     }
     return _or;
   }
   return false;
 }
 public Set<QualifiedName> getImportedNames(XtextResource resource) {
   XPackage xPackage = getXPackage(resource);
   String packageName = xPackage.getName();
   List<String> implicitPackageImports = newArrayList(packageName, "java.lang");
   Set<QualifiedName> importedNames = newLinkedHashSet();
   Map<String, QualifiedName> implicitAliases = getImplicitAliases();
   for (INode node : XcoreUtil.importableCrossReferences(xPackage)) {
     CrossReference grammarElement = (CrossReference) node.getGrammarElement();
     EObject container = grammarElement.eContainer();
     if (container instanceof Assignment) {
       String name = node.getText().trim();
       if (name.endsWith("::")) {
         name = name.substring(0, name.length() - 2);
       }
       QualifiedName actualQualifiedName = nameConverter.toQualifiedName(name);
       Assignment assignment = (Assignment) container;
       String feature = assignment.getFeature();
       EObject semanticObject = NodeModelUtils.findActualSemanticObjectFor(node);
       EStructuralFeature eStructuralFeature =
           semanticObject.eClass().getEStructuralFeature(feature);
       if (!eStructuralFeature.isMany()) {
         EObject eCrossReference = (EObject) semanticObject.eGet(eStructuralFeature);
         EObject eContainer = eCrossReference.eContainer();
         if (eContainer != xPackage
             && !(eContainer instanceof XPackage
                 && "xcore.lang".equals(((XPackage) eContainer).getName()))
             && !(eContainer instanceof GenPackage
                 && packageName.equals(((GenPackage) eContainer).getQualifiedPackageName()))
             && !(eCrossReference instanceof JvmDeclaredType
                 && implicitPackageImports.contains(
                     ((JvmDeclaredType) eCrossReference).getPackageName()))) {
           QualifiedName fullyQualifiedName = nameProvider.getFullyQualifiedName(eCrossReference);
           if (fullyQualifiedName != null
               && !actualQualifiedName.equals(fullyQualifiedName)
               && !fullyQualifiedName.equals(implicitAliases.get(name))) {
             importedNames.add(fullyQualifiedName);
           }
         }
       } else {
         throw new RuntimeException("Not expecting multi-valued cross references in these models");
       }
     } else {
       throw new RuntimeException(
           "Expecting all cross references to be part of an assignment in these models");
     }
   }
   return importedNames;
 }
  public class CompositeTypeEntryElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule =
        (ParserRule)
            GrammarUtil.findRuleForName(
                getGrammar(),
                "org.eclipse.xtext.ui.tests.editor.contentassist.DatatypeRuleTestLanguage.CompositeTypeEntry");
    private final Assignment cDataTypeAssignment = (Assignment) rule.eContents().get(1);
    private final CrossReference cDataTypeTypeCrossReference_0 =
        (CrossReference) cDataTypeAssignment.eContents().get(0);
    private final RuleCall cDataTypeTypeTypeIdParserRuleCall_0_1 =
        (RuleCall) cDataTypeTypeCrossReference_0.eContents().get(1);

    // CompositeTypeEntry:
    //	dataType=[Type|TypeId];
    @Override
    public ParserRule getRule() {
      return rule;
    }

    // dataType=[Type|TypeId]
    public Assignment getDataTypeAssignment() {
      return cDataTypeAssignment;
    }

    // [Type|TypeId]
    public CrossReference getDataTypeTypeCrossReference_0() {
      return cDataTypeTypeCrossReference_0;
    }

    // TypeId
    public RuleCall getDataTypeTypeTypeIdParserRuleCall_0_1() {
      return cDataTypeTypeTypeIdParserRuleCall_0_1;
    }
  }
  public class CompositeTypeEntryElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule =
        (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CompositeTypeEntry");
    private final Assignment cDataTypeAssignment = (Assignment) rule.eContents().get(1);
    private final CrossReference cDataTypeTypeCrossReference_0 =
        (CrossReference) cDataTypeAssignment.eContents().get(0);
    private final RuleCall cDataTypeTypeTypeIdParserRuleCall_0_1 =
        (RuleCall) cDataTypeTypeCrossReference_0.eContents().get(1);

    // CompositeTypeEntry:
    //	dataType=[Type|TypeId];
    public ParserRule getRule() {
      return rule;
    }

    // dataType=[Type|TypeId]
    public Assignment getDataTypeAssignment() {
      return cDataTypeAssignment;
    }

    // [Type|TypeId]
    public CrossReference getDataTypeTypeCrossReference_0() {
      return cDataTypeTypeCrossReference_0;
    }

    // TypeId
    public RuleCall getDataTypeTypeTypeIdParserRuleCall_0_1() {
      return cDataTypeTypeTypeIdParserRuleCall_0_1;
    }
  }
Beispiel #5
0
  public class FigureRefElementElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule =
        (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FigureRefElement");
    private final Group cGroup = (Group) rule.eContents().get(1);
    private final Keyword cFigureRefKeyword_0 = (Keyword) cGroup.eContents().get(0);
    private final Keyword cLeftSquareBracketKeyword_1 = (Keyword) cGroup.eContents().get(1);
    private final Assignment cRefAssignment_2 = (Assignment) cGroup.eContents().get(2);
    private final CrossReference cRefFigureElementCrossReference_2_0 =
        (CrossReference) cRefAssignment_2.eContents().get(0);
    private final RuleCall cRefFigureElementIDTerminalRuleCall_2_0_1 =
        (RuleCall) cRefFigureElementCrossReference_2_0.eContents().get(1);
    private final Keyword cRightSquareBracketKeyword_3 = (Keyword) cGroup.eContents().get(3);

    // FigureRefElement:
    //
    //	"figureRef" "[" ref=[FigureElement] "]";
    public ParserRule getRule() {
      return rule;
    }

    // "figureRef" "[" ref=[FigureElement] "]"
    public Group getGroup() {
      return cGroup;
    }

    // "figureRef"
    public Keyword getFigureRefKeyword_0() {
      return cFigureRefKeyword_0;
    }

    // "["
    public Keyword getLeftSquareBracketKeyword_1() {
      return cLeftSquareBracketKeyword_1;
    }

    // ref=[FigureElement]
    public Assignment getRefAssignment_2() {
      return cRefAssignment_2;
    }

    // [FigureElement]
    public CrossReference getRefFigureElementCrossReference_2_0() {
      return cRefFigureElementCrossReference_2_0;
    }

    // ID
    public RuleCall getRefFigureElementIDTerminalRuleCall_2_0_1() {
      return cRefFigureElementIDTerminalRuleCall_2_0_1;
    }

    // "]"
    public Keyword getRightSquareBracketKeyword_3() {
      return cRightSquareBracketKeyword_3;
    }
  }
  public class PropertyElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule =
        (ParserRule)
            GrammarUtil.findRuleForName(
                getGrammar(), "org.eclipse.xtext.idea.sdomain.SDomain.Property");
    private final Group cGroup = (Group) rule.eContents().get(1);
    private final Assignment cTypeAssignment_0 = (Assignment) cGroup.eContents().get(0);
    private final CrossReference cTypeTypeCrossReference_0_0 =
        (CrossReference) cTypeAssignment_0.eContents().get(0);
    private final RuleCall cTypeTypeQualifiedNameParserRuleCall_0_0_1 =
        (RuleCall) cTypeTypeCrossReference_0_0.eContents().get(1);
    private final Assignment cNameAssignment_1 = (Assignment) cGroup.eContents().get(1);
    private final RuleCall cNameIDTerminalRuleCall_1_0 =
        (RuleCall) cNameAssignment_1.eContents().get(0);

    // Property:
    //	type=[Type|QualifiedName] name=ID;
    @Override
    public ParserRule getRule() {
      return rule;
    }

    // type=[Type|QualifiedName] name=ID
    public Group getGroup() {
      return cGroup;
    }

    // type=[Type|QualifiedName]
    public Assignment getTypeAssignment_0() {
      return cTypeAssignment_0;
    }

    // [Type|QualifiedName]
    public CrossReference getTypeTypeCrossReference_0_0() {
      return cTypeTypeCrossReference_0_0;
    }

    // QualifiedName
    public RuleCall getTypeTypeQualifiedNameParserRuleCall_0_0_1() {
      return cTypeTypeQualifiedNameParserRuleCall_0_0_1;
    }

    // name=ID
    public Assignment getNameAssignment_1() {
      return cNameAssignment_1;
    }

    // ID
    public RuleCall getNameIDTerminalRuleCall_1_0() {
      return cNameIDTerminalRuleCall_1_0;
    }
  }
  public class FqnRefElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule =
        (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FqnRef");
    private final Group cGroup = (Group) rule.eContents().get(1);
    private final Keyword cFqnrefKeyword_0 = (Keyword) cGroup.eContents().get(0);
    private final Assignment cRefAssignment_1 = (Assignment) cGroup.eContents().get(1);
    private final CrossReference cRefFqnObjCrossReference_1_0 =
        (CrossReference) cRefAssignment_1.eContents().get(0);
    private final RuleCall cRefFqnObjFQNParserRuleCall_1_0_1 =
        (RuleCall) cRefFqnObjCrossReference_1_0.eContents().get(1);

    // FqnRef:
    //	"fqnref" ref=[FqnObj|FQN];
    public ParserRule getRule() {
      return rule;
    }

    // "fqnref" ref=[FqnObj|FQN]
    public Group getGroup() {
      return cGroup;
    }

    // "fqnref"
    public Keyword getFqnrefKeyword_0() {
      return cFqnrefKeyword_0;
    }

    // ref=[FqnObj|FQN]
    public Assignment getRefAssignment_1() {
      return cRefAssignment_1;
    }

    // [FqnObj|FQN]
    public CrossReference getRefFqnObjCrossReference_1_0() {
      return cRefFqnObjCrossReference_1_0;
    }

    // FQN
    public RuleCall getRefFqnObjFQNParserRuleCall_1_0_1() {
      return cRefFqnObjFQNParserRuleCall_1_0_1;
    }
  }
Beispiel #8
0
  public class ReferenceElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule =
        (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Reference");
    private final Group cGroup = (Group) rule.eContents().get(1);
    private final Keyword cRefKeyword_0 = (Keyword) cGroup.eContents().get(0);
    private final Assignment cReferencedAssignment_1 = (Assignment) cGroup.eContents().get(1);
    private final CrossReference cReferencedEObjectCrossReference_1_0 =
        (CrossReference) cReferencedAssignment_1.eContents().get(0);
    private final RuleCall cReferencedEObjectFQNParserRuleCall_1_0_1 =
        (RuleCall) cReferencedEObjectCrossReference_1_0.eContents().get(1);

    // Reference:
    //	"ref" referenced=[ecore::EObject|FQN];
    public ParserRule getRule() {
      return rule;
    }

    // "ref" referenced=[ecore::EObject|FQN]
    public Group getGroup() {
      return cGroup;
    }

    // "ref"
    public Keyword getRefKeyword_0() {
      return cRefKeyword_0;
    }

    // referenced=[ecore::EObject|FQN]
    public Assignment getReferencedAssignment_1() {
      return cReferencedAssignment_1;
    }

    // [ecore::EObject|FQN]
    public CrossReference getReferencedEObjectCrossReference_1_0() {
      return cReferencedEObjectCrossReference_1_0;
    }

    // FQN
    public RuleCall getReferencedEObjectFQNParserRuleCall_1_0_1() {
      return cReferencedEObjectFQNParserRuleCall_1_0_1;
    }
  }
 protected String _toXtext(final CrossReference cr) {
   AbstractElement _terminal = cr.getTerminal();
   return this.toXtext(_terminal);
 }
  public class BoxInstanceElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule =
        (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BoxInstance");
    private final Group cGroup = (Group) rule.eContents().get(1);
    private final Keyword cBoxInstanceKeyword_0 = (Keyword) cGroup.eContents().get(0);
    private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword) cGroup.eContents().get(1);
    private final Keyword cBoxRefKeyword_2 = (Keyword) cGroup.eContents().get(2);
    private final Assignment cBoxRefAssignment_3 = (Assignment) cGroup.eContents().get(3);
    private final CrossReference cBoxRefBoxCrossReference_3_0 =
        (CrossReference) cBoxRefAssignment_3.eContents().get(0);
    private final RuleCall cBoxRefBoxQualifiedNameParserRuleCall_3_0_1 =
        (RuleCall) cBoxRefBoxCrossReference_3_0.eContents().get(1);
    private final Group cGroup_4 = (Group) cGroup.eContents().get(4);
    private final Keyword cInstanceNameKeyword_4_0 = (Keyword) cGroup_4.eContents().get(0);
    private final Assignment cInstanceNameAssignment_4_1 = (Assignment) cGroup_4.eContents().get(1);
    private final RuleCall cInstanceNameEStringParserRuleCall_4_1_0 =
        (RuleCall) cInstanceNameAssignment_4_1.eContents().get(0);
    private final Group cGroup_5 = (Group) cGroup.eContents().get(5);
    private final Keyword cConnectionsKeyword_5_0 = (Keyword) cGroup_5.eContents().get(0);
    private final Keyword cLeftCurlyBracketKeyword_5_1 = (Keyword) cGroup_5.eContents().get(1);
    private final Assignment cConnectionsAssignment_5_2 = (Assignment) cGroup_5.eContents().get(2);
    private final RuleCall cConnectionsConnectionParserRuleCall_5_2_0 =
        (RuleCall) cConnectionsAssignment_5_2.eContents().get(0);
    private final Group cGroup_5_3 = (Group) cGroup_5.eContents().get(3);
    private final Keyword cCommaKeyword_5_3_0 = (Keyword) cGroup_5_3.eContents().get(0);
    private final Assignment cConnectionsAssignment_5_3_1 =
        (Assignment) cGroup_5_3.eContents().get(1);
    private final RuleCall cConnectionsConnectionParserRuleCall_5_3_1_0 =
        (RuleCall) cConnectionsAssignment_5_3_1.eContents().get(0);
    private final Keyword cRightCurlyBracketKeyword_5_4 = (Keyword) cGroup_5.eContents().get(4);
    private final Keyword cRightCurlyBracketKeyword_6 = (Keyword) cGroup.eContents().get(6);

    // BoxInstance:
    //	"BoxInstance" "{" "boxRef" boxRef=[Box|QualifiedName] ("instanceName" instanceName=EString)?
    // ("connections" "{"
    //	connections+=Connection ("," connections+=Connection)* "}")? "}";
    @Override
    public ParserRule getRule() {
      return rule;
    }

    // "BoxInstance" "{" "boxRef" boxRef=[Box|QualifiedName] ("instanceName" instanceName=EString)?
    // ("connections" "{"
    // connections+=Connection ("," connections+=Connection)* "}")? "}"
    public Group getGroup() {
      return cGroup;
    }

    // "BoxInstance"
    public Keyword getBoxInstanceKeyword_0() {
      return cBoxInstanceKeyword_0;
    }

    // "{"
    public Keyword getLeftCurlyBracketKeyword_1() {
      return cLeftCurlyBracketKeyword_1;
    }

    // "boxRef"
    public Keyword getBoxRefKeyword_2() {
      return cBoxRefKeyword_2;
    }

    // boxRef=[Box|QualifiedName]
    public Assignment getBoxRefAssignment_3() {
      return cBoxRefAssignment_3;
    }

    // [Box|QualifiedName]
    public CrossReference getBoxRefBoxCrossReference_3_0() {
      return cBoxRefBoxCrossReference_3_0;
    }

    // QualifiedName
    public RuleCall getBoxRefBoxQualifiedNameParserRuleCall_3_0_1() {
      return cBoxRefBoxQualifiedNameParserRuleCall_3_0_1;
    }

    // ("instanceName" instanceName=EString)?
    public Group getGroup_4() {
      return cGroup_4;
    }

    // "instanceName"
    public Keyword getInstanceNameKeyword_4_0() {
      return cInstanceNameKeyword_4_0;
    }

    // instanceName=EString
    public Assignment getInstanceNameAssignment_4_1() {
      return cInstanceNameAssignment_4_1;
    }

    // EString
    public RuleCall getInstanceNameEStringParserRuleCall_4_1_0() {
      return cInstanceNameEStringParserRuleCall_4_1_0;
    }

    // ("connections" "{" connections+=Connection ("," connections+=Connection)* "}")?
    public Group getGroup_5() {
      return cGroup_5;
    }

    // "connections"
    public Keyword getConnectionsKeyword_5_0() {
      return cConnectionsKeyword_5_0;
    }

    // "{"
    public Keyword getLeftCurlyBracketKeyword_5_1() {
      return cLeftCurlyBracketKeyword_5_1;
    }

    // connections+=Connection
    public Assignment getConnectionsAssignment_5_2() {
      return cConnectionsAssignment_5_2;
    }

    // Connection
    public RuleCall getConnectionsConnectionParserRuleCall_5_2_0() {
      return cConnectionsConnectionParserRuleCall_5_2_0;
    }

    // ("," connections+=Connection)*
    public Group getGroup_5_3() {
      return cGroup_5_3;
    }

    // ","
    public Keyword getCommaKeyword_5_3_0() {
      return cCommaKeyword_5_3_0;
    }

    // connections+=Connection
    public Assignment getConnectionsAssignment_5_3_1() {
      return cConnectionsAssignment_5_3_1;
    }

    // Connection
    public RuleCall getConnectionsConnectionParserRuleCall_5_3_1_0() {
      return cConnectionsConnectionParserRuleCall_5_3_1_0;
    }

    // "}"
    public Keyword getRightCurlyBracketKeyword_5_4() {
      return cRightCurlyBracketKeyword_5_4;
    }

    // "}"
    public Keyword getRightCurlyBracketKeyword_6() {
      return cRightCurlyBracketKeyword_6;
    }
  }
  public class ConnectionElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule =
        (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Connection");
    private final Group cGroup = (Group) rule.eContents().get(1);
    private final Keyword cConnectionKeyword_0 = (Keyword) cGroup.eContents().get(0);
    private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword) cGroup.eContents().get(1);
    private final Keyword cIntPortsKeyword_2 = (Keyword) cGroup.eContents().get(2);
    private final Keyword cLeftParenthesisKeyword_3 = (Keyword) cGroup.eContents().get(3);
    private final Assignment cIntPortsAssignment_4 = (Assignment) cGroup.eContents().get(4);
    private final CrossReference cIntPortsPortCrossReference_4_0 =
        (CrossReference) cIntPortsAssignment_4.eContents().get(0);
    private final RuleCall cIntPortsPortQualifiedNameParserRuleCall_4_0_1 =
        (RuleCall) cIntPortsPortCrossReference_4_0.eContents().get(1);
    private final Group cGroup_5 = (Group) cGroup.eContents().get(5);
    private final Keyword cCommaKeyword_5_0 = (Keyword) cGroup_5.eContents().get(0);
    private final Assignment cIntPortsAssignment_5_1 = (Assignment) cGroup_5.eContents().get(1);
    private final CrossReference cIntPortsPortCrossReference_5_1_0 =
        (CrossReference) cIntPortsAssignment_5_1.eContents().get(0);
    private final RuleCall cIntPortsPortQualifiedNameParserRuleCall_5_1_0_1 =
        (RuleCall) cIntPortsPortCrossReference_5_1_0.eContents().get(1);
    private final Keyword cRightParenthesisKeyword_6 = (Keyword) cGroup.eContents().get(6);
    private final Group cGroup_7 = (Group) cGroup.eContents().get(7);
    private final Keyword cExtPortsKeyword_7_0 = (Keyword) cGroup_7.eContents().get(0);
    private final Keyword cLeftParenthesisKeyword_7_1 = (Keyword) cGroup_7.eContents().get(1);
    private final Assignment cExtPortsAssignment_7_2 = (Assignment) cGroup_7.eContents().get(2);
    private final CrossReference cExtPortsPortCrossReference_7_2_0 =
        (CrossReference) cExtPortsAssignment_7_2.eContents().get(0);
    private final RuleCall cExtPortsPortQualifiedNameParserRuleCall_7_2_0_1 =
        (RuleCall) cExtPortsPortCrossReference_7_2_0.eContents().get(1);
    private final Group cGroup_7_3 = (Group) cGroup_7.eContents().get(3);
    private final Keyword cCommaKeyword_7_3_0 = (Keyword) cGroup_7_3.eContents().get(0);
    private final Assignment cExtPortsAssignment_7_3_1 = (Assignment) cGroup_7_3.eContents().get(1);
    private final CrossReference cExtPortsPortCrossReference_7_3_1_0 =
        (CrossReference) cExtPortsAssignment_7_3_1.eContents().get(0);
    private final RuleCall cExtPortsPortQualifiedNameParserRuleCall_7_3_1_0_1 =
        (RuleCall) cExtPortsPortCrossReference_7_3_1_0.eContents().get(1);
    private final Keyword cRightParenthesisKeyword_7_4 = (Keyword) cGroup_7.eContents().get(4);
    private final Keyword cRightCurlyBracketKeyword_8 = (Keyword) cGroup.eContents().get(8);

    // Connection:
    //	"Connection" "{" "intPorts" "(" intPorts+=[Port|QualifiedName] (","
    // intPorts+=[Port|QualifiedName])* ")" ("extPorts"
    //	"(" extPorts+=[Port|QualifiedName] ("," extPorts+=[Port|QualifiedName])* ")")? "}";
    @Override
    public ParserRule getRule() {
      return rule;
    }

    // "Connection" "{" "intPorts" "(" intPorts+=[Port|QualifiedName] (","
    // intPorts+=[Port|QualifiedName])* ")" ("extPorts" "("
    // extPorts+=[Port|QualifiedName] ("," extPorts+=[Port|QualifiedName])* ")")? "}"
    public Group getGroup() {
      return cGroup;
    }

    // "Connection"
    public Keyword getConnectionKeyword_0() {
      return cConnectionKeyword_0;
    }

    // "{"
    public Keyword getLeftCurlyBracketKeyword_1() {
      return cLeftCurlyBracketKeyword_1;
    }

    // "intPorts"
    public Keyword getIntPortsKeyword_2() {
      return cIntPortsKeyword_2;
    }

    // "("
    public Keyword getLeftParenthesisKeyword_3() {
      return cLeftParenthesisKeyword_3;
    }

    // intPorts+=[Port|QualifiedName]
    public Assignment getIntPortsAssignment_4() {
      return cIntPortsAssignment_4;
    }

    // [Port|QualifiedName]
    public CrossReference getIntPortsPortCrossReference_4_0() {
      return cIntPortsPortCrossReference_4_0;
    }

    // QualifiedName
    public RuleCall getIntPortsPortQualifiedNameParserRuleCall_4_0_1() {
      return cIntPortsPortQualifiedNameParserRuleCall_4_0_1;
    }

    // ("," intPorts+=[Port|QualifiedName])*
    public Group getGroup_5() {
      return cGroup_5;
    }

    // ","
    public Keyword getCommaKeyword_5_0() {
      return cCommaKeyword_5_0;
    }

    // intPorts+=[Port|QualifiedName]
    public Assignment getIntPortsAssignment_5_1() {
      return cIntPortsAssignment_5_1;
    }

    // [Port|QualifiedName]
    public CrossReference getIntPortsPortCrossReference_5_1_0() {
      return cIntPortsPortCrossReference_5_1_0;
    }

    // QualifiedName
    public RuleCall getIntPortsPortQualifiedNameParserRuleCall_5_1_0_1() {
      return cIntPortsPortQualifiedNameParserRuleCall_5_1_0_1;
    }

    // ")"
    public Keyword getRightParenthesisKeyword_6() {
      return cRightParenthesisKeyword_6;
    }

    // ("extPorts" "(" extPorts+=[Port|QualifiedName] ("," extPorts+=[Port|QualifiedName])* ")")?
    public Group getGroup_7() {
      return cGroup_7;
    }

    // "extPorts"
    public Keyword getExtPortsKeyword_7_0() {
      return cExtPortsKeyword_7_0;
    }

    // "("
    public Keyword getLeftParenthesisKeyword_7_1() {
      return cLeftParenthesisKeyword_7_1;
    }

    // extPorts+=[Port|QualifiedName]
    public Assignment getExtPortsAssignment_7_2() {
      return cExtPortsAssignment_7_2;
    }

    // [Port|QualifiedName]
    public CrossReference getExtPortsPortCrossReference_7_2_0() {
      return cExtPortsPortCrossReference_7_2_0;
    }

    // QualifiedName
    public RuleCall getExtPortsPortQualifiedNameParserRuleCall_7_2_0_1() {
      return cExtPortsPortQualifiedNameParserRuleCall_7_2_0_1;
    }

    // ("," extPorts+=[Port|QualifiedName])*
    public Group getGroup_7_3() {
      return cGroup_7_3;
    }

    // ","
    public Keyword getCommaKeyword_7_3_0() {
      return cCommaKeyword_7_3_0;
    }

    // extPorts+=[Port|QualifiedName]
    public Assignment getExtPortsAssignment_7_3_1() {
      return cExtPortsAssignment_7_3_1;
    }

    // [Port|QualifiedName]
    public CrossReference getExtPortsPortCrossReference_7_3_1_0() {
      return cExtPortsPortCrossReference_7_3_1_0;
    }

    // QualifiedName
    public RuleCall getExtPortsPortQualifiedNameParserRuleCall_7_3_1_0_1() {
      return cExtPortsPortQualifiedNameParserRuleCall_7_3_1_0_1;
    }

    // ")"
    public Keyword getRightParenthesisKeyword_7_4() {
      return cRightParenthesisKeyword_7_4;
    }

    // "}"
    public Keyword getRightCurlyBracketKeyword_8() {
      return cRightCurlyBracketKeyword_8;
    }
  }
  public class MixedElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Mixed");
    private final Group cGroup = (Group) rule.eContents().get(1);
    private final Keyword cLeftParenthesisKeyword_0 = (Keyword) cGroup.eContents().get(0);
    private final Group cGroup_1 = (Group) cGroup.eContents().get(1);
    private final Keyword cUnassignedKeyword_1_0 = (Keyword) cGroup_1.eContents().get(0);
    private final Alternatives cAlternatives_1_1 = (Alternatives) cGroup_1.eContents().get(1);
    private final RuleCall cIDTerminalRuleCall_1_1_0 =
        (RuleCall) cAlternatives_1_1.eContents().get(0);
    private final RuleCall cDatatypeParserRuleCall_1_1_1 =
        (RuleCall) cAlternatives_1_1.eContents().get(1);
    private final Alternatives cAlternatives_2 = (Alternatives) cGroup.eContents().get(2);
    private final Action cActionAction_2_0 = (Action) cAlternatives_2.eContents().get(0);
    private final RuleCall cMixedParserRuleCall_2_1 = (RuleCall) cAlternatives_2.eContents().get(1);
    private final Alternatives cAlternatives_2_2 =
        (Alternatives) cAlternatives_2.eContents().get(2);
    private final Assignment cNameAssignment_2_2_0 =
        (Assignment) cAlternatives_2_2.eContents().get(0);
    private final RuleCall cNameIDTerminalRuleCall_2_2_0_0 =
        (RuleCall) cNameAssignment_2_2_0.eContents().get(0);
    private final Group cGroup_2_2_1 = (Group) cAlternatives_2_2.eContents().get(1);
    private final Keyword cChildKeyword_2_2_1_0 = (Keyword) cGroup_2_2_1.eContents().get(0);
    private final Assignment cEobjAssignment_2_2_1_1 = (Assignment) cGroup_2_2_1.eContents().get(1);
    private final RuleCall cEobjMixedParserRuleCall_2_2_1_1_0 =
        (RuleCall) cEobjAssignment_2_2_1_1.eContents().get(0);
    private final Assignment cDatatypeAssignment_2_2_2 =
        (Assignment) cAlternatives_2_2.eContents().get(2);
    private final RuleCall cDatatypeDatatypeParserRuleCall_2_2_2_0 =
        (RuleCall) cDatatypeAssignment_2_2_2.eContents().get(0);
    private final Group cGroup_2_2_3 = (Group) cAlternatives_2_2.eContents().get(3);
    private final Keyword cRefKeyword_2_2_3_0 = (Keyword) cGroup_2_2_3.eContents().get(0);
    private final Assignment cRefAssignment_2_2_3_1 = (Assignment) cGroup_2_2_3.eContents().get(1);
    private final CrossReference cRefMixedCrossReference_2_2_3_1_0 =
        (CrossReference) cRefAssignment_2_2_3_1.eContents().get(0);
    private final RuleCall cRefMixedIDTerminalRuleCall_2_2_3_1_0_1 =
        (RuleCall) cRefMixedCrossReference_2_2_3_1_0.eContents().get(1);
    private final Assignment cLitAssignment_2_2_4 =
        (Assignment) cAlternatives_2_2.eContents().get(4);
    private final RuleCall cLitEnumEnumRuleCall_2_2_4_0 =
        (RuleCall) cLitAssignment_2_2_4.eContents().get(0);
    private final Keyword cRightParenthesisKeyword_3 = (Keyword) cGroup.eContents().get(3);
    private final Group cGroup_4 = (Group) cGroup.eContents().get(4);
    private final Action cAssignedActionChildAction_4_0 = (Action) cGroup_4.eContents().get(0);
    private final Keyword cActionKeyword_4_1 = (Keyword) cGroup_4.eContents().get(1);
    private final Group cGroup_4_2 = (Group) cGroup_4.eContents().get(2);
    private final Assignment cBodyAssignment_4_2_0 = (Assignment) cGroup_4_2.eContents().get(0);
    private final RuleCall cBodyMixedParserRuleCall_4_2_0_0 =
        (RuleCall) cBodyAssignment_4_2_0.eContents().get(0);
    private final Keyword cEndKeyword_4_2_1 = (Keyword) cGroup_4_2.eContents().get(1);

    // Mixed:
    //	"(" ("unassigned" (ID | Datatype))? ({Action} | Mixed | (name=ID | "child" eobj=Mixed |
    // datatype=Datatype | "ref"
    //	ref=[Mixed] | lit=Enum)) ")" ({AssignedAction.child=current} "action" (body=Mixed "end")?)*;
    @Override
    public ParserRule getRule() {
      return rule;
    }

    // "(" ("unassigned" (ID | Datatype))? ({Action} | Mixed | (name=ID | "child" eobj=Mixed |
    // datatype=Datatype | "ref"
    // ref=[Mixed] | lit=Enum)) ")" ({AssignedAction.child=current} "action" (body=Mixed "end")?)*
    public Group getGroup() {
      return cGroup;
    }

    // "("
    public Keyword getLeftParenthesisKeyword_0() {
      return cLeftParenthesisKeyword_0;
    }

    // ("unassigned" (ID | Datatype))?
    public Group getGroup_1() {
      return cGroup_1;
    }

    // "unassigned"
    public Keyword getUnassignedKeyword_1_0() {
      return cUnassignedKeyword_1_0;
    }

    // ID | Datatype
    public Alternatives getAlternatives_1_1() {
      return cAlternatives_1_1;
    }

    // ID
    public RuleCall getIDTerminalRuleCall_1_1_0() {
      return cIDTerminalRuleCall_1_1_0;
    }

    // Datatype
    public RuleCall getDatatypeParserRuleCall_1_1_1() {
      return cDatatypeParserRuleCall_1_1_1;
    }

    // {Action} | Mixed | (name=ID | "child" eobj=Mixed | datatype=Datatype | "ref" ref=[Mixed] |
    // lit=Enum)
    public Alternatives getAlternatives_2() {
      return cAlternatives_2;
    }

    // {Action}
    public Action getActionAction_2_0() {
      return cActionAction_2_0;
    }

    // Mixed
    public RuleCall getMixedParserRuleCall_2_1() {
      return cMixedParserRuleCall_2_1;
    }

    // name=ID | "child" eobj=Mixed | datatype=Datatype | "ref" ref=[Mixed] | lit=Enum
    public Alternatives getAlternatives_2_2() {
      return cAlternatives_2_2;
    }

    // name=ID
    public Assignment getNameAssignment_2_2_0() {
      return cNameAssignment_2_2_0;
    }

    // ID
    public RuleCall getNameIDTerminalRuleCall_2_2_0_0() {
      return cNameIDTerminalRuleCall_2_2_0_0;
    }

    // "child" eobj=Mixed
    public Group getGroup_2_2_1() {
      return cGroup_2_2_1;
    }

    // "child"
    public Keyword getChildKeyword_2_2_1_0() {
      return cChildKeyword_2_2_1_0;
    }

    // eobj=Mixed
    public Assignment getEobjAssignment_2_2_1_1() {
      return cEobjAssignment_2_2_1_1;
    }

    // Mixed
    public RuleCall getEobjMixedParserRuleCall_2_2_1_1_0() {
      return cEobjMixedParserRuleCall_2_2_1_1_0;
    }

    // datatype=Datatype
    public Assignment getDatatypeAssignment_2_2_2() {
      return cDatatypeAssignment_2_2_2;
    }

    // Datatype
    public RuleCall getDatatypeDatatypeParserRuleCall_2_2_2_0() {
      return cDatatypeDatatypeParserRuleCall_2_2_2_0;
    }

    // "ref" ref=[Mixed]
    public Group getGroup_2_2_3() {
      return cGroup_2_2_3;
    }

    // "ref"
    public Keyword getRefKeyword_2_2_3_0() {
      return cRefKeyword_2_2_3_0;
    }

    // ref=[Mixed]
    public Assignment getRefAssignment_2_2_3_1() {
      return cRefAssignment_2_2_3_1;
    }

    // [Mixed]
    public CrossReference getRefMixedCrossReference_2_2_3_1_0() {
      return cRefMixedCrossReference_2_2_3_1_0;
    }

    // ID
    public RuleCall getRefMixedIDTerminalRuleCall_2_2_3_1_0_1() {
      return cRefMixedIDTerminalRuleCall_2_2_3_1_0_1;
    }

    // lit=Enum
    public Assignment getLitAssignment_2_2_4() {
      return cLitAssignment_2_2_4;
    }

    // Enum
    public RuleCall getLitEnumEnumRuleCall_2_2_4_0() {
      return cLitEnumEnumRuleCall_2_2_4_0;
    }

    // ")"
    public Keyword getRightParenthesisKeyword_3() {
      return cRightParenthesisKeyword_3;
    }

    // ({AssignedAction.child=current} "action" (body=Mixed "end")?)*
    public Group getGroup_4() {
      return cGroup_4;
    }

    // {AssignedAction.child=current}
    public Action getAssignedActionChildAction_4_0() {
      return cAssignedActionChildAction_4_0;
    }

    // "action"
    public Keyword getActionKeyword_4_1() {
      return cActionKeyword_4_1;
    }

    // (body=Mixed "end")?
    public Group getGroup_4_2() {
      return cGroup_4_2;
    }

    // body=Mixed
    public Assignment getBodyAssignment_4_2_0() {
      return cBodyAssignment_4_2_0;
    }

    // Mixed
    public RuleCall getBodyMixedParserRuleCall_4_2_0_0() {
      return cBodyMixedParserRuleCall_4_2_0_0;
    }

    // "end"
    public Keyword getEndKeyword_4_2_1() {
      return cEndKeyword_4_2_1;
    }
  }
  public class ModelElements extends AbstractParserRuleElementFinder {
    private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Model");
    private final Group cGroup = (Group) rule.eContents().get(1);
    private final Assignment cNameAssignment_0 = (Assignment) cGroup.eContents().get(0);
    private final RuleCall cNameIDTerminalRuleCall_0_0 =
        (RuleCall) cNameAssignment_0.eContents().get(0);
    private final Assignment cEnabledAssignment_1 = (Assignment) cGroup.eContents().get(1);
    private final RuleCall cEnabledUnassignedActionParserRuleCall_1_0 =
        (RuleCall) cEnabledAssignment_1.eContents().get(0);
    private final Assignment cReferenceAssignment_2 = (Assignment) cGroup.eContents().get(2);
    private final CrossReference cReferenceModelCrossReference_2_0 =
        (CrossReference) cReferenceAssignment_2.eContents().get(0);
    private final RuleCall cReferenceModelIDTerminalRuleCall_2_0_1 =
        (RuleCall) cReferenceModelCrossReference_2_0.eContents().get(1);

    // Model:
    //	name=ID enabled=UnassignedAction? reference=[Model]?;
    @Override
    public ParserRule getRule() {
      return rule;
    }

    // name=ID enabled=UnassignedAction? reference=[Model]?
    public Group getGroup() {
      return cGroup;
    }

    // name=ID
    public Assignment getNameAssignment_0() {
      return cNameAssignment_0;
    }

    // ID
    public RuleCall getNameIDTerminalRuleCall_0_0() {
      return cNameIDTerminalRuleCall_0_0;
    }

    // enabled=UnassignedAction?
    public Assignment getEnabledAssignment_1() {
      return cEnabledAssignment_1;
    }

    // UnassignedAction
    public RuleCall getEnabledUnassignedActionParserRuleCall_1_0() {
      return cEnabledUnassignedActionParserRuleCall_1_0;
    }

    // reference=[Model]?
    public Assignment getReferenceAssignment_2() {
      return cReferenceAssignment_2;
    }

    // [Model]
    public CrossReference getReferenceModelCrossReference_2_0() {
      return cReferenceModelCrossReference_2_0;
    }

    // ID
    public RuleCall getReferenceModelIDTerminalRuleCall_2_0_1() {
      return cReferenceModelIDTerminalRuleCall_2_0_1;
    }
  }