diff --git a/org.xtext.example.mydslTest/.classpath b/org.xtext.example.mydslTest/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..3f1be5028577c15f387245557efec88746d8654c --- /dev/null +++ b/org.xtext.example.mydslTest/.classpath @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="src-gen"/> + <classpathentry kind="src" path="xtend-gen"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/org.xtext.example.mydslTest/.project b/org.xtext.example.mydslTest/.project new file mode 100644 index 0000000000000000000000000000000000000000..18f9543bd5c125902f31659929d7944fc50ef8e5 --- /dev/null +++ b/org.xtext.example.mydslTest/.project @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.xtext.example.mydslTest</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> + </natures> +</projectDescription> diff --git a/org.xtext.example.mydslTest/META-INF/MANIFEST.MF b/org.xtext.example.mydslTest/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..4072b055618b77e104d40d9b37a338d59ecb704f --- /dev/null +++ b/org.xtext.example.mydslTest/META-INF/MANIFEST.MF @@ -0,0 +1,29 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydslTest +Bundle-Vendor: My Company +Bundle-Version: 1.0.0 +Bundle-SymbolicName: org.xtext.example.mydslTest; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.xtext;bundle-version="2.1.0";visibility:=reexport, + org.eclipse.xtext.xbase;bundle-version="2.1.0";resolution:=optional;visibility:=reexport, + org.apache.log4j;bundle-version="1.2.15";visibility:=reexport, + org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional;visibility:=reexport, + org.eclipse.xtext.generator;resolution:=optional, + org.eclipse.emf.codegen.ecore;resolution:=optional, + org.eclipse.emf.mwe.utils;resolution:=optional, + org.eclipse.emf.mwe2.launch;resolution:=optional, + edu.kit.ipd.descartes.mm, + org.eclipse.xtext.util, + org.antlr.runtime +Import-Package: org.apache.log4j, + org.apache.commons.logging +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.xtext.example.mydsl, + org.xtext.example.mydsl.services, + org.xtext.example.mydsl.parseTreeConstruction, + org.xtext.example.mydsl.parser.antlr, + org.xtext.example.mydsl.parser.antlr.internal, + org.xtext.example.mydsl.validation, + org.xtext.example.mydsl.scoping, + org.xtext.example.mydsl.formatting diff --git a/org.xtext.example.mydslTest/build.properties b/org.xtext.example.mydslTest/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..31255ed05bc1242430be9f3e44440c2e42921649 --- /dev/null +++ b/org.xtext.example.mydslTest/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = META-INF/,\ + .,\ + plugin.xml \ No newline at end of file diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/AbstractMyDslTestRuntimeModule.java b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/AbstractMyDslTestRuntimeModule.java new file mode 100644 index 0000000000000000000000000000000000000000..4ddc3fee1d7d8a8ee75d9a7f9391ecd2ea674922 --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/AbstractMyDslTestRuntimeModule.java @@ -0,0 +1,142 @@ +/* + * generated by Xtext + */ +package org.xtext.example.mydsl; + +import java.util.Properties; + +import org.eclipse.xtext.Constants; +import org.eclipse.xtext.service.DefaultRuntimeModule; + +import com.google.inject.Binder; +import com.google.inject.name.Names; + +/** + * Manual modifications go to {org.xtext.example.mydsl.MyDslTestRuntimeModule} + */ + @SuppressWarnings("all") +public abstract class AbstractMyDslTestRuntimeModule extends DefaultRuntimeModule { + + protected Properties properties = null; + + @Override + public void configure(Binder binder) { + properties = tryBindProperties(binder, "org/xtext/example/mydsl/MyDslTest.properties"); + super.configure(binder); + } + + public void configureLanguageName(Binder binder) { + binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.xtext.example.mydsl.MyDslTest"); + } + + public void configureFileExtensions(Binder binder) { + if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null) + binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("mydslTest"); + } + + // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment + public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() { + return org.xtext.example.mydsl.services.MyDslTestGrammarAccess.class; + } + + // contributed by org.eclipse.xtext.generator.parseTreeConstructor.ParseTreeConstructorFragment + public Class<? extends org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor> bindIParseTreeConstructor() { + return org.xtext.example.mydsl.parseTreeConstruction.MyDslTestParsetreeConstructor.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() { + return org.xtext.example.mydsl.parser.antlr.MyDslTestParser.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() { + return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() { + return org.xtext.example.mydsl.parser.antlr.MyDslTestAntlrTokenFileProvider.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() { + return org.xtext.example.mydsl.parser.antlr.internal.InternalMyDslTestLexer.class; + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public com.google.inject.Provider<org.xtext.example.mydsl.parser.antlr.internal.InternalMyDslTestLexer> provideInternalMyDslTestLexer() { + return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.xtext.example.mydsl.parser.antlr.internal.InternalMyDslTestLexer.class); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public void configureRuntimeLexer(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.xtext.example.mydsl.parser.antlr.internal.InternalMyDslTestLexer.class); + } + + // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment + public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() { + return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class; + } + + // contributed by org.eclipse.xtext.generator.ecore2xtext.Ecore2XtextValueConverterServiceFragment + public Class<? extends org.eclipse.xtext.conversion.IValueConverterService> bindIValueConverterService() { + return org.eclipse.xtext.common.services.Ecore2XtextTerminalConverters.class; + } + + // contributed by org.eclipse.xtext.generator.validation.JavaValidatorFragment + @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.xtext.example.mydsl.validation.MyDslTestJavaValidator> bindMyDslTestJavaValidator() { + return org.xtext.example.mydsl.validation.MyDslTestJavaValidator.class; + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() { + return org.xtext.example.mydsl.scoping.MyDslTestScopeProvider.class; + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public void configureIScopeProviderDelegate(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.SimpleLocalScopeProvider.class); + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() { + return org.eclipse.xtext.scoping.impl.ImportUriGlobalScopeProvider.class; + } + + // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment + public void configureIgnoreCaseLinking(com.google.inject.Binder binder) { + binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false); + } + + // contributed by org.eclipse.xtext.generator.exporting.SimpleNamesFragment + public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() { + return org.eclipse.xtext.naming.SimpleNameProvider.class; + } + + // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment + public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() { + return org.xtext.example.mydsl.formatting.MyDslTestFormatter.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() { + return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() { + return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class; + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptions(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class); + } + + // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment + public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) { + binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class); + } + +} diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/MyDslTest.xmi b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/MyDslTest.xmi new file mode 100644 index 0000000000000000000000000000000000000000..6f877586fa4d9d54d5813b2336de6776d2eadfc0 --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/MyDslTest.xmi @@ -0,0 +1,1051 @@ +<?xml version="1.0" encoding="ASCII"?> +<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext"> + <xtext:Grammar name="org.xtext.example.mydsl.MyDslTest" usedGrammars="/1"> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel"> + <ePackage href="http://www.descartes-research.net/metamodel/parameterdependencies/0.1#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="servicebehavior"> + <ePackage href="http://www.descartes-research.net/metamodel/servicebehavior/0.1#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore"> + <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="repository"> + <ePackage href="http://www.descartes-research.net/metamodel/repository/0.1#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="repository_composites"> + <ePackage href="http://www.descartes-research.net/metamodel/repository_composites/0.1#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="functions"> + <ePackage href="http://www.descartes-research.net/metamodel/functions/0.1#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="system"> + <ePackage href="http://www.descartes-research.net/metamodel/system/0.1#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="resourceconfiguration"> + <ePackage href="http://www.descartes-research.net/metamodel/resourceconfiguration/0.1#/"/> + </metamodelDeclarations> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="resourcetype"> + <ePackage href="http://www.descartes-research.net/metamodel/resourcetype/0.1#/"/> + </metamodelDeclarations> + <rules xsi:type="xtext:ParserRule" name="Repository"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//Repository"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="Repository"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="datatypes"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="datatypes" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="datatypes" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="interfaces"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="interfaces" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="interfaces" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="components"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="components" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="components" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="DataType"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//DataType"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.6"/> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.7"/> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.8"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="RepositoryComponent"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//RepositoryComponent"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.5"/> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.15"/> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.16"/> + <elements xsi:type="xtext:RuleCall" rule="/0/@rules.17"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="EString"> + <type metamodel="/0/@metamodelDeclarations.2"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/> + <elements xsi:type="xtext:RuleCall" rule="/1/@rules.0"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="Interface"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//Interface"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="Interface"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="parentInterfaces"/> + <elements xsi:type="xtext:Keyword" value="("/> + <elements xsi:type="xtext:Assignment" feature="parentInterfaces" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//Interface"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="parentInterfaces" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//Interface"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value=")"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="signatures"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="signatures" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="signatures" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="RepositoryComponent_Impl"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//RepositoryComponent"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="RepositoryComponent"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="relationship"/> + <elements xsi:type="xtext:Keyword" value="("/> + <elements xsi:type="xtext:Assignment" feature="relationship" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/parameterdependencies/0.1#//Relationship"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="relationship" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/parameterdependencies/0.1#//Relationship"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value=")"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="providedRoles"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="providedRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="providedRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="requiredRoles"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="requiredRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="requiredRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="CollectionDataType"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//CollectionDataType"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="CollectionDataType"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Keyword" value="innerType"/> + <elements xsi:type="xtext:Assignment" feature="innerType" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//DataType"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="CompositeDataType"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//CompositeDataType"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="CompositeDataType"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="parentTypes"/> + <elements xsi:type="xtext:Keyword" value="("/> + <elements xsi:type="xtext:Assignment" feature="parentTypes" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//CompositeDataType"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="parentTypes" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//CompositeDataType"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value=")"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="innerDeclarations"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="innerDeclarations" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="innerDeclarations" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="PrimitiveDataType"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//PrimitiveDataType"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="PrimitiveDataType"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Keyword" value="type"/> + <elements xsi:type="xtext:Assignment" feature="type" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.10"/> + </elements> + <elements xsi:type="xtext:Keyword" value="ref"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="InnerDeclaration"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//InnerDeclaration"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="InnerDeclaration"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Keyword" value="dataType"/> + <elements xsi:type="xtext:Assignment" feature="dataType" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//DataType"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:EnumRule" name="PrimitiveTypeEnum"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EEnum" href="http://www.descartes-research.net/metamodel/repository/0.1#//PrimitiveTypeEnum"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:EnumLiteralDeclaration"> + <enumLiteral href="http://www.descartes-research.net/metamodel/repository/0.1#//PrimitiveTypeEnum/INT"/> + <literal value="INT"/> + </elements> + <elements xsi:type="xtext:EnumLiteralDeclaration"> + <enumLiteral href="http://www.descartes-research.net/metamodel/repository/0.1#//PrimitiveTypeEnum/STRING"/> + <literal value="STRING"/> + </elements> + <elements xsi:type="xtext:EnumLiteralDeclaration"> + <enumLiteral href="http://www.descartes-research.net/metamodel/repository/0.1#//PrimitiveTypeEnum/BOOL"/> + <literal value="BOOL"/> + </elements> + <elements xsi:type="xtext:EnumLiteralDeclaration"> + <enumLiteral href="http://www.descartes-research.net/metamodel/repository/0.1#//PrimitiveTypeEnum/DOUBLE"/> + <literal value="DOUBLE"/> + </elements> + <elements xsi:type="xtext:EnumLiteralDeclaration"> + <enumLiteral href="http://www.descartes-research.net/metamodel/repository/0.1#//PrimitiveTypeEnum/CHAR"/> + <literal value="CHAR"/> + </elements> + <elements xsi:type="xtext:EnumLiteralDeclaration"> + <enumLiteral href="http://www.descartes-research.net/metamodel/repository/0.1#//PrimitiveTypeEnum/BYTE"/> + <literal value="BYTE"/> + </elements> + <elements xsi:type="xtext:EnumLiteralDeclaration"> + <enumLiteral href="http://www.descartes-research.net/metamodel/repository/0.1#//PrimitiveTypeEnum/LONG"/> + <literal value="LONG"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="Signature"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//Signature"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Assignment" feature="returnType" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//DataType"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="void"/> + </elements> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="("/> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Assignment" feature="parameters" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="parameters" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/> + </elements> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value=")"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="Parameter"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//Parameter"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Assignment" feature="dataType" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//DataType"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="ProvidedRole"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//ProvidedRole"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//ProvidedRole"/> + </type> + </elements> + <elements xsi:type="xtext:Keyword" value="provides"/> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Assignment" feature="interface" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//Interface"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" cardinality="?" value=","/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="RequiredRole"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//RequiredRole"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//RequiredRole"/> + </type> + </elements> + <elements xsi:type="xtext:Keyword" value="requires"/> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Assignment" feature="interface" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//Interface"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" cardinality="?" value=","/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="BasicComponent"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//BasicComponent"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="BasicComponent"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Assignment" feature="providedRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="providedRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/> + </elements> + </elements> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Assignment" feature="requiredRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="requiredRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="relationship"/> + <elements xsi:type="xtext:Keyword" value="("/> + <elements xsi:type="xtext:Assignment" feature="relationship" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/parameterdependencies/0.1#//Relationship"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="relationship" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/parameterdependencies/0.1#//Relationship"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value=")"/> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="CompositeComponent"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//CompositeComponent"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="CompositeComponent"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Assignment" feature="providedRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="providedRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/> + </elements> + </elements> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Assignment" feature="requiredRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="requiredRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="relationship"/> + <elements xsi:type="xtext:Keyword" value="("/> + <elements xsi:type="xtext:Assignment" feature="relationship" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/parameterdependencies/0.1#//Relationship"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="relationship" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/parameterdependencies/0.1#//Relationship"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value=")"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="assembly"/> + <elements xsi:type="xtext:Assignment" feature="assembly" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="SubSystem"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//SubSystem"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="SubSystem"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="providedRoles"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="providedRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="providedRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="requiredRoles"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="requiredRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="requiredRoles" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="relationship"/> + <elements xsi:type="xtext:Keyword" value="("/> + <elements xsi:type="xtext:Assignment" feature="relationship" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/parameterdependencies/0.1#//Relationship"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="relationship" operator="+="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/parameterdependencies/0.1#//Relationship"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value=")"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="assembly"/> + <elements xsi:type="xtext:Assignment" feature="assembly" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="ComposedStructureAssembly"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//ComposedStructureAssembly"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Action"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//ComposedStructureAssembly"/> + </type> + </elements> + <elements xsi:type="xtext:Keyword" value="ComposedStructureAssembly"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="assemblyContexts"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="assemblyContexts" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.19"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="assemblyContexts" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.19"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="assemblyConnectors"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="assemblyConnectors" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="assemblyConnectors" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="providedDelegationConnectors"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="providedDelegationConnectors" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="providedDelegationConnectors" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" value="requiredDelegationConnectors"/> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Assignment" feature="requiredDelegationConnectors" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/> + </elements> + <elements xsi:type="xtext:Group" cardinality="*"> + <elements xsi:type="xtext:Keyword" value=","/> + <elements xsi:type="xtext:Assignment" feature="requiredDelegationConnectors" operator="+="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="AssemblyContext"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//AssemblyContext"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="AssemblyContext"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Keyword" value="encapsulatedComponent"/> + <elements xsi:type="xtext:Assignment" feature="encapsulatedComponent" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//RepositoryComponent"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="AssemblyConnector"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//AssemblyConnector"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="AssemblyConnector"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Keyword" value="requiredRole"/> + <elements xsi:type="xtext:Assignment" feature="requiredRole" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//RequiredRole"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="providedRole"/> + <elements xsi:type="xtext:Assignment" feature="providedRole" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//ProvidedRole"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="providingAssemblyContext"/> + <elements xsi:type="xtext:Assignment" feature="providingAssemblyContext" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//AssemblyContext"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="requiringAssemblyContext"/> + <elements xsi:type="xtext:Assignment" feature="requiringAssemblyContext" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//AssemblyContext"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="ProvidedDelegationConnector"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//ProvidedDelegationConnector"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="ProvidedDelegationConnector"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Keyword" value="assemblyContext"/> + <elements xsi:type="xtext:Assignment" feature="assemblyContext" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//AssemblyContext"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="innerProvidedRole"/> + <elements xsi:type="xtext:Assignment" feature="innerProvidedRole" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//ProvidedRole"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="outerProvidedRole"/> + <elements xsi:type="xtext:Assignment" feature="outerProvidedRole" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//ProvidedRole"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="RequiredDelegationConnector"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//RequiredDelegationConnector"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="RequiredDelegationConnector"/> + <elements xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </elements> + <elements xsi:type="xtext:Keyword" value="{"/> + <elements xsi:type="xtext:Keyword" value="assemblyContext"/> + <elements xsi:type="xtext:Assignment" feature="assemblyContext" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.4"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository_composites/0.1#//AssemblyContext"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="innerRequiredRole"/> + <elements xsi:type="xtext:Assignment" feature="innerRequiredRole" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//RequiredRole"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="outerRequiredRole"/> + <elements xsi:type="xtext:Assignment" feature="outerRequiredRole" operator="="> + <terminal xsi:type="xtext:CrossReference"> + <type metamodel="/0/@metamodelDeclarations.3"> + <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/repository/0.1#//RequiredRole"/> + </type> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </terminal> + </elements> + <elements xsi:type="xtext:Keyword" value="}"/> + </alternatives> + </rules> + </xtext:Grammar> + <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4"> + <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore"> + <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/> + </metamodelDeclarations> + <rules xsi:type="xtext:TerminalRule" name="ID"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" cardinality="?" value="^"/> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:CharacterRange"> + <left value="a"/> + <right value="z"/> + </elements> + <elements xsi:type="xtext:CharacterRange"> + <left value="A"/> + <right value="Z"/> + </elements> + <elements xsi:type="xtext:Keyword" value="_"/> + </elements> + <elements xsi:type="xtext:Alternatives" cardinality="*"> + <elements xsi:type="xtext:CharacterRange"> + <left value="a"/> + <right value="z"/> + </elements> + <elements xsi:type="xtext:CharacterRange"> + <left value="A"/> + <right value="Z"/> + </elements> + <elements xsi:type="xtext:Keyword" value="_"/> + <elements xsi:type="xtext:CharacterRange"> + <left value="0"/> + <right value="9"/> + </elements> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="INT"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + </type> + <alternatives xsi:type="xtext:CharacterRange" cardinality="+"> + <left value="0"/> + <right value="9"/> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="STRING"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="""/> + <elements xsi:type="xtext:Alternatives" cardinality="*"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="\"/> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="b"/> + <elements xsi:type="xtext:Keyword" value="t"/> + <elements xsi:type="xtext:Keyword" value="n"/> + <elements xsi:type="xtext:Keyword" value="f"/> + <elements xsi:type="xtext:Keyword" value="r"/> + <elements xsi:type="xtext:Keyword" value="u"/> + <elements xsi:type="xtext:Keyword" value="""/> + <elements xsi:type="xtext:Keyword" value="'"/> + <elements xsi:type="xtext:Keyword" value="\"/> + </elements> + </elements> + <elements xsi:type="xtext:NegatedToken"> + <terminal xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="\"/> + <elements xsi:type="xtext:Keyword" value="""/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="""/> + </elements> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="'"/> + <elements xsi:type="xtext:Alternatives" cardinality="*"> + <elements xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="\"/> + <elements xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="b"/> + <elements xsi:type="xtext:Keyword" value="t"/> + <elements xsi:type="xtext:Keyword" value="n"/> + <elements xsi:type="xtext:Keyword" value="f"/> + <elements xsi:type="xtext:Keyword" value="r"/> + <elements xsi:type="xtext:Keyword" value="u"/> + <elements xsi:type="xtext:Keyword" value="""/> + <elements xsi:type="xtext:Keyword" value="'"/> + <elements xsi:type="xtext:Keyword" value="\"/> + </elements> + </elements> + <elements xsi:type="xtext:NegatedToken"> + <terminal xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="\"/> + <elements xsi:type="xtext:Keyword" value="'"/> + </terminal> + </elements> + </elements> + <elements xsi:type="xtext:Keyword" value="'"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="/*"/> + <elements xsi:type="xtext:UntilToken"> + <terminal xsi:type="xtext:Keyword" value="*/"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Group"> + <elements xsi:type="xtext:Keyword" value="//"/> + <elements xsi:type="xtext:NegatedToken" cardinality="*"> + <terminal xsi:type="xtext:Alternatives"> + <elements xsi:type="xtext:Keyword" value="
"/> + <elements xsi:type="xtext:Keyword" value="
"/> + </terminal> + </elements> + <elements xsi:type="xtext:Group" cardinality="?"> + <elements xsi:type="xtext:Keyword" cardinality="?" value="
"/> + <elements xsi:type="xtext:Keyword" value="
"/> + </elements> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="WS"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Alternatives" cardinality="+"> + <elements xsi:type="xtext:Keyword" value=" "/> + <elements xsi:type="xtext:Keyword" value="	"/> + <elements xsi:type="xtext:Keyword" value="
"/> + <elements xsi:type="xtext:Keyword" value="
"/> + </alternatives> + </rules> + <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER"> + <type metamodel="/1/@metamodelDeclarations.0"> + <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </type> + <alternatives xsi:type="xtext:Wildcard"/> + </rules> + </xtext:Grammar> +</xmi:XMI> diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/MyDslTestStandaloneSetupGenerated.java b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/MyDslTestStandaloneSetupGenerated.java new file mode 100644 index 0000000000000000000000000000000000000000..aa3acd631bef5e711be9ceb5dab2a9a57a78d44b --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/MyDslTestStandaloneSetupGenerated.java @@ -0,0 +1,40 @@ + +package org.xtext.example.mydsl; + +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.ISetup; +import org.eclipse.emf.ecore.resource.Resource; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Generated from StandaloneSetup.xpt! + */ +@SuppressWarnings("all") +public class MyDslTestStandaloneSetupGenerated implements ISetup { + + public Injector createInjectorAndDoEMFRegistration() { + org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup(); + + Injector injector = createInjector(); + register(injector); + return injector; + } + + public Injector createInjector() { + return Guice.createInjector(new org.xtext.example.mydsl.MyDslTestRuntimeModule()); + } + + public void register(Injector injector) { + + org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class); + org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class); + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("mydslTest", resourceFactory); + org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("mydslTest", serviceProvider); + + + + + } +} diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parseTreeConstruction/MyDslTestParsetreeConstructor.java b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parseTreeConstruction/MyDslTestParsetreeConstructor.java new file mode 100644 index 0000000000000000000000000000000000000000..18bb089d229e9ca71c2d7d5f3a9d6d9692ef5586 --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parseTreeConstruction/MyDslTestParsetreeConstructor.java @@ -0,0 +1,9268 @@ +/* +* generated by Xtext +*/ +package org.xtext.example.mydsl.parseTreeConstruction; + +import org.eclipse.emf.ecore.*; +import org.eclipse.xtext.*; +import org.eclipse.xtext.parsetree.reconstr.IEObjectConsumer; +import org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor; + +import org.xtext.example.mydsl.services.MyDslTestGrammarAccess; + +import com.google.inject.Inject; + +@SuppressWarnings("all") +public class MyDslTestParsetreeConstructor extends AbstractParseTreeConstructor { + + @Inject + private MyDslTestGrammarAccess grammarAccess; + + @Override + protected AbstractToken getRootToken(IEObjectConsumer inst) { + return new ThisRootNode(inst); + } + +protected class ThisRootNode extends RootToken { + public ThisRootNode(IEObjectConsumer inst) { + super(inst); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group(this, this, 0, inst); + case 1: return new DataType_Alternatives(this, this, 1, inst); + case 2: return new RepositoryComponent_Alternatives(this, this, 2, inst); + case 3: return new Interface_Group(this, this, 3, inst); + case 4: return new RepositoryComponent_Impl_Group(this, this, 4, inst); + case 5: return new CollectionDataType_Group(this, this, 5, inst); + case 6: return new CompositeDataType_Group(this, this, 6, inst); + case 7: return new PrimitiveDataType_Group(this, this, 7, inst); + case 8: return new InnerDeclaration_Group(this, this, 8, inst); + case 9: return new Signature_Group(this, this, 9, inst); + case 10: return new Parameter_Group(this, this, 10, inst); + case 11: return new ProvidedRole_Group(this, this, 11, inst); + case 12: return new RequiredRole_Group(this, this, 12, inst); + case 13: return new BasicComponent_Group(this, this, 13, inst); + case 14: return new CompositeComponent_Group(this, this, 14, inst); + case 15: return new SubSystem_Group(this, this, 15, inst); + case 16: return new ComposedStructureAssembly_Group(this, this, 16, inst); + case 17: return new AssemblyContext_Group(this, this, 17, inst); + case 18: return new AssemblyConnector_Group(this, this, 18, inst); + case 19: return new ProvidedDelegationConnector_Group(this, this, 19, inst); + case 20: return new RequiredDelegationConnector_Group(this, this, 20, inst); + default: return null; + } + } +} + + +/************ begin Rule Repository **************** + * + * Repository returns repository::Repository: + * "Repository" name=EString "{" ("datatypes" "{" datatypes+=DataType ("," datatypes+=DataType)* "}")? ("interfaces" "{" + * interfaces+=Interface ("," interfaces+=Interface)* "}")? ("components" "{" components+=RepositoryComponent ("," + * components+=RepositoryComponent)* "}")? "}"; + * + **/ + +// "Repository" name=EString "{" ("datatypes" "{" datatypes+=DataType ("," datatypes+=DataType)* "}")? ("interfaces" "{" +// interfaces+=Interface ("," interfaces+=Interface)* "}")? ("components" "{" components+=RepositoryComponent ("," +// components+=RepositoryComponent)* "}")? "}" +protected class Repository_Group extends GroupToken { + + public Repository_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getRepositoryRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "Repository" +protected class Repository_RepositoryKeyword_0 extends KeywordToken { + + public Repository_RepositoryKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getRepositoryKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class Repository_NameAssignment_1 extends AssignmentToken { + + public Repository_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_RepositoryKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getRepositoryAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getRepositoryAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class Repository_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public Repository_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// ("datatypes" "{" datatypes+=DataType ("," datatypes+=DataType)* "}")? +protected class Repository_Group_3 extends GroupToken { + + public Repository_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryAccess().getGroup_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_RightCurlyBracketKeyword_3_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "datatypes" +protected class Repository_DatatypesKeyword_3_0 extends KeywordToken { + + public Repository_DatatypesKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getDatatypesKeyword_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "{" +protected class Repository_LeftCurlyBracketKeyword_3_1 extends KeywordToken { + + public Repository_LeftCurlyBracketKeyword_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_DatatypesKeyword_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// datatypes+=DataType +protected class Repository_DatatypesAssignment_3_2 extends AssignmentToken { + + public Repository_DatatypesAssignment_3_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryAccess().getDatatypesAssignment_3_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new DataType_Alternatives(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("datatypes",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("datatypes"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getDataTypeRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryAccess().getDatatypesDataTypeParserRuleCall_3_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Repository_LeftCurlyBracketKeyword_3_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," datatypes+=DataType)* +protected class Repository_Group_3_3 extends GroupToken { + + public Repository_Group_3_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryAccess().getGroup_3_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_DatatypesAssignment_3_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class Repository_CommaKeyword_3_3_0 extends KeywordToken { + + public Repository_CommaKeyword_3_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getCommaKeyword_3_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Repository_DatatypesAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// datatypes+=DataType +protected class Repository_DatatypesAssignment_3_3_1 extends AssignmentToken { + + public Repository_DatatypesAssignment_3_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryAccess().getDatatypesAssignment_3_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new DataType_Alternatives(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("datatypes",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("datatypes"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getDataTypeRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryAccess().getDatatypesDataTypeParserRuleCall_3_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Repository_CommaKeyword_3_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class Repository_RightCurlyBracketKeyword_3_4 extends KeywordToken { + + public Repository_RightCurlyBracketKeyword_3_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_3_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Repository_DatatypesAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("interfaces" "{" interfaces+=Interface ("," interfaces+=Interface)* "}")? +protected class Repository_Group_4 extends GroupToken { + + public Repository_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryAccess().getGroup_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_RightCurlyBracketKeyword_4_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "interfaces" +protected class Repository_InterfacesKeyword_4_0 extends KeywordToken { + + public Repository_InterfacesKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getInterfacesKeyword_4_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Repository_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// "{" +protected class Repository_LeftCurlyBracketKeyword_4_1 extends KeywordToken { + + public Repository_LeftCurlyBracketKeyword_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_4_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_InterfacesKeyword_4_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// interfaces+=Interface +protected class Repository_InterfacesAssignment_4_2 extends AssignmentToken { + + public Repository_InterfacesAssignment_4_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryAccess().getInterfacesAssignment_4_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("interfaces",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("interfaces"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getInterfaceRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryAccess().getInterfacesInterfaceParserRuleCall_4_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Repository_LeftCurlyBracketKeyword_4_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," interfaces+=Interface)* +protected class Repository_Group_4_3 extends GroupToken { + + public Repository_Group_4_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryAccess().getGroup_4_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_InterfacesAssignment_4_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class Repository_CommaKeyword_4_3_0 extends KeywordToken { + + public Repository_CommaKeyword_4_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getCommaKeyword_4_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Repository_InterfacesAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// interfaces+=Interface +protected class Repository_InterfacesAssignment_4_3_1 extends AssignmentToken { + + public Repository_InterfacesAssignment_4_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryAccess().getInterfacesAssignment_4_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("interfaces",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("interfaces"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getInterfaceRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryAccess().getInterfacesInterfaceParserRuleCall_4_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Repository_CommaKeyword_4_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class Repository_RightCurlyBracketKeyword_4_4 extends KeywordToken { + + public Repository_RightCurlyBracketKeyword_4_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_4_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Repository_InterfacesAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("components" "{" components+=RepositoryComponent ("," components+=RepositoryComponent)* "}")? +protected class Repository_Group_5 extends GroupToken { + + public Repository_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryAccess().getGroup_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_RightCurlyBracketKeyword_5_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "components" +protected class Repository_ComponentsKeyword_5_0 extends KeywordToken { + + public Repository_ComponentsKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getComponentsKeyword_5_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group_4(lastRuleCallOrigin, this, 0, inst); + case 1: return new Repository_Group_3(lastRuleCallOrigin, this, 1, inst); + case 2: return new Repository_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + +// "{" +protected class Repository_LeftCurlyBracketKeyword_5_1 extends KeywordToken { + + public Repository_LeftCurlyBracketKeyword_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_5_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_ComponentsKeyword_5_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// components+=RepositoryComponent +protected class Repository_ComponentsAssignment_5_2 extends AssignmentToken { + + public Repository_ComponentsAssignment_5_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryAccess().getComponentsAssignment_5_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Alternatives(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("components",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("components"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRepositoryComponentRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryAccess().getComponentsRepositoryComponentParserRuleCall_5_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Repository_LeftCurlyBracketKeyword_5_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," components+=RepositoryComponent)* +protected class Repository_Group_5_3 extends GroupToken { + + public Repository_Group_5_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryAccess().getGroup_5_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_ComponentsAssignment_5_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class Repository_CommaKeyword_5_3_0 extends KeywordToken { + + public Repository_CommaKeyword_5_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getCommaKeyword_5_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Repository_ComponentsAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// components+=RepositoryComponent +protected class Repository_ComponentsAssignment_5_3_1 extends AssignmentToken { + + public Repository_ComponentsAssignment_5_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryAccess().getComponentsAssignment_5_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Alternatives(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("components",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("components"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRepositoryComponentRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryAccess().getComponentsRepositoryComponentParserRuleCall_5_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Repository_CommaKeyword_5_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class Repository_RightCurlyBracketKeyword_5_4 extends KeywordToken { + + public Repository_RightCurlyBracketKeyword_5_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_5_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Repository_ComponentsAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// "}" +protected class Repository_RightCurlyBracketKeyword_6 extends KeywordToken { + + public Repository_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Repository_Group_5(lastRuleCallOrigin, this, 0, inst); + case 1: return new Repository_Group_4(lastRuleCallOrigin, this, 1, inst); + case 2: return new Repository_Group_3(lastRuleCallOrigin, this, 2, inst); + case 3: return new Repository_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 3, inst); + default: return null; + } + } + +} + + +/************ end Rule Repository ****************/ + + +/************ begin Rule DataType **************** + * + * DataType returns repository::DataType: + * CollectionDataType | CompositeDataType | PrimitiveDataType; + * + **/ + +// CollectionDataType | CompositeDataType | PrimitiveDataType +protected class DataType_Alternatives extends AlternativesToken { + + public DataType_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Alternatives getGrammarElement() { + return grammarAccess.getDataTypeAccess().getAlternatives(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new DataType_CollectionDataTypeParserRuleCall_0(lastRuleCallOrigin, this, 0, inst); + case 1: return new DataType_CompositeDataTypeParserRuleCall_1(lastRuleCallOrigin, this, 1, inst); + case 2: return new DataType_PrimitiveDataTypeParserRuleCall_2(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getCollectionDataTypeRule().getType().getClassifier() && + getEObject().eClass() != grammarAccess.getCompositeDataTypeRule().getType().getClassifier() && + getEObject().eClass() != grammarAccess.getPrimitiveDataTypeRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// CollectionDataType +protected class DataType_CollectionDataTypeParserRuleCall_0 extends RuleCallToken { + + public DataType_CollectionDataTypeParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public RuleCall getGrammarElement() { + return grammarAccess.getDataTypeAccess().getCollectionDataTypeParserRuleCall_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CollectionDataType_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getCollectionDataTypeRule().getType().getClassifier()) + return null; + if(checkForRecursion(CollectionDataType_Group.class, eObjectConsumer)) return null; + return eObjectConsumer; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst); + } + } +} + +// CompositeDataType +protected class DataType_CompositeDataTypeParserRuleCall_1 extends RuleCallToken { + + public DataType_CompositeDataTypeParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public RuleCall getGrammarElement() { + return grammarAccess.getDataTypeAccess().getCompositeDataTypeParserRuleCall_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getCompositeDataTypeRule().getType().getClassifier()) + return null; + if(checkForRecursion(CompositeDataType_Group.class, eObjectConsumer)) return null; + return eObjectConsumer; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst); + } + } +} + +// PrimitiveDataType +protected class DataType_PrimitiveDataTypeParserRuleCall_2 extends RuleCallToken { + + public DataType_PrimitiveDataTypeParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public RuleCall getGrammarElement() { + return grammarAccess.getDataTypeAccess().getPrimitiveDataTypeParserRuleCall_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new PrimitiveDataType_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getPrimitiveDataTypeRule().getType().getClassifier()) + return null; + if(checkForRecursion(PrimitiveDataType_Group.class, eObjectConsumer)) return null; + return eObjectConsumer; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst); + } + } +} + + +/************ end Rule DataType ****************/ + + +/************ begin Rule RepositoryComponent **************** + * + * RepositoryComponent returns repository::RepositoryComponent: + * RepositoryComponent_Impl | BasicComponent | CompositeComponent | SubSystem; + * + **/ + +// RepositoryComponent_Impl | BasicComponent | CompositeComponent | SubSystem +protected class RepositoryComponent_Alternatives extends AlternativesToken { + + public RepositoryComponent_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Alternatives getGrammarElement() { + return grammarAccess.getRepositoryComponentAccess().getAlternatives(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_RepositoryComponent_ImplParserRuleCall_0(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_BasicComponentParserRuleCall_1(lastRuleCallOrigin, this, 1, inst); + case 2: return new RepositoryComponent_CompositeComponentParserRuleCall_2(lastRuleCallOrigin, this, 2, inst); + case 3: return new RepositoryComponent_SubSystemParserRuleCall_3(lastRuleCallOrigin, this, 3, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getBasicComponentRule().getType().getClassifier() && + getEObject().eClass() != grammarAccess.getCompositeComponentRule().getType().getClassifier() && + getEObject().eClass() != grammarAccess.getRepositoryComponent_ImplRule().getType().getClassifier() && + getEObject().eClass() != grammarAccess.getSubSystemRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// RepositoryComponent_Impl +protected class RepositoryComponent_RepositoryComponent_ImplParserRuleCall_0 extends RuleCallToken { + + public RepositoryComponent_RepositoryComponent_ImplParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public RuleCall getGrammarElement() { + return grammarAccess.getRepositoryComponentAccess().getRepositoryComponent_ImplParserRuleCall_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getRepositoryComponent_ImplRule().getType().getClassifier()) + return null; + if(checkForRecursion(RepositoryComponent_Impl_Group.class, eObjectConsumer)) return null; + return eObjectConsumer; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst); + } + } +} + +// BasicComponent +protected class RepositoryComponent_BasicComponentParserRuleCall_1 extends RuleCallToken { + + public RepositoryComponent_BasicComponentParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public RuleCall getGrammarElement() { + return grammarAccess.getRepositoryComponentAccess().getBasicComponentParserRuleCall_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getBasicComponentRule().getType().getClassifier()) + return null; + if(checkForRecursion(BasicComponent_Group.class, eObjectConsumer)) return null; + return eObjectConsumer; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst); + } + } +} + +// CompositeComponent +protected class RepositoryComponent_CompositeComponentParserRuleCall_2 extends RuleCallToken { + + public RepositoryComponent_CompositeComponentParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public RuleCall getGrammarElement() { + return grammarAccess.getRepositoryComponentAccess().getCompositeComponentParserRuleCall_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getCompositeComponentRule().getType().getClassifier()) + return null; + if(checkForRecursion(CompositeComponent_Group.class, eObjectConsumer)) return null; + return eObjectConsumer; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst); + } + } +} + +// SubSystem +protected class RepositoryComponent_SubSystemParserRuleCall_3 extends RuleCallToken { + + public RepositoryComponent_SubSystemParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public RuleCall getGrammarElement() { + return grammarAccess.getRepositoryComponentAccess().getSubSystemParserRuleCall_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getSubSystemRule().getType().getClassifier()) + return null; + if(checkForRecursion(SubSystem_Group.class, eObjectConsumer)) return null; + return eObjectConsumer; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst); + } + } +} + + +/************ end Rule RepositoryComponent ****************/ + + + +/************ begin Rule Interface **************** + * + * Interface returns repository::Interface: + * "Interface" name=EString "{" ("parentInterfaces" "(" parentInterfaces+=[repository::Interface|EString] ("," + * parentInterfaces+=[repository::Interface|EString])* ")")? ("signatures" "{" signatures+=Signature ("," + * signatures+=Signature)* "}")? "}"; + * + **/ + +// "Interface" name=EString "{" ("parentInterfaces" "(" parentInterfaces+=[repository::Interface|EString] ("," +// parentInterfaces+=[repository::Interface|EString])* ")")? ("signatures" "{" signatures+=Signature ("," +// signatures+=Signature)* "}")? "}" +protected class Interface_Group extends GroupToken { + + public Interface_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getInterfaceAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getInterfaceRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "Interface" +protected class Interface_InterfaceKeyword_0 extends KeywordToken { + + public Interface_InterfaceKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getInterfaceKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class Interface_NameAssignment_1 extends AssignmentToken { + + public Interface_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getInterfaceAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_InterfaceKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getInterfaceAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getInterfaceAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class Interface_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public Interface_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// ("parentInterfaces" "(" parentInterfaces+=[repository::Interface|EString] ("," +// parentInterfaces+=[repository::Interface|EString])* ")")? +protected class Interface_Group_3 extends GroupToken { + + public Interface_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getInterfaceAccess().getGroup_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_RightParenthesisKeyword_3_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "parentInterfaces" +protected class Interface_ParentInterfacesKeyword_3_0 extends KeywordToken { + + public Interface_ParentInterfacesKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getParentInterfacesKeyword_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "(" +protected class Interface_LeftParenthesisKeyword_3_1 extends KeywordToken { + + public Interface_LeftParenthesisKeyword_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getLeftParenthesisKeyword_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_ParentInterfacesKeyword_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// parentInterfaces+=[repository::Interface|EString] +protected class Interface_ParentInterfacesAssignment_3_2 extends AssignmentToken { + + public Interface_ParentInterfacesAssignment_3_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getInterfaceAccess().getParentInterfacesAssignment_3_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_LeftParenthesisKeyword_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("parentInterfaces",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parentInterfaces"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getInterfaceAccess().getParentInterfacesInterfaceCrossReference_3_2_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getInterfaceAccess().getParentInterfacesInterfaceCrossReference_3_2_0(); + return obj; + } + } + return null; + } + +} + +// ("," parentInterfaces+=[repository::Interface|EString])* +protected class Interface_Group_3_3 extends GroupToken { + + public Interface_Group_3_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getInterfaceAccess().getGroup_3_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_ParentInterfacesAssignment_3_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class Interface_CommaKeyword_3_3_0 extends KeywordToken { + + public Interface_CommaKeyword_3_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getCommaKeyword_3_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Interface_ParentInterfacesAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// parentInterfaces+=[repository::Interface|EString] +protected class Interface_ParentInterfacesAssignment_3_3_1 extends AssignmentToken { + + public Interface_ParentInterfacesAssignment_3_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getInterfaceAccess().getParentInterfacesAssignment_3_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_CommaKeyword_3_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("parentInterfaces",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parentInterfaces"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getInterfaceAccess().getParentInterfacesInterfaceCrossReference_3_3_1_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getInterfaceAccess().getParentInterfacesInterfaceCrossReference_3_3_1_0(); + return obj; + } + } + return null; + } + +} + + +// ")" +protected class Interface_RightParenthesisKeyword_3_4 extends KeywordToken { + + public Interface_RightParenthesisKeyword_3_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getRightParenthesisKeyword_3_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Interface_ParentInterfacesAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("signatures" "{" signatures+=Signature ("," signatures+=Signature)* "}")? +protected class Interface_Group_4 extends GroupToken { + + public Interface_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getInterfaceAccess().getGroup_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_RightCurlyBracketKeyword_4_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "signatures" +protected class Interface_SignaturesKeyword_4_0 extends KeywordToken { + + public Interface_SignaturesKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getSignaturesKeyword_4_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_Group_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Interface_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// "{" +protected class Interface_LeftCurlyBracketKeyword_4_1 extends KeywordToken { + + public Interface_LeftCurlyBracketKeyword_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_4_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_SignaturesKeyword_4_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// signatures+=Signature +protected class Interface_SignaturesAssignment_4_2 extends AssignmentToken { + + public Interface_SignaturesAssignment_4_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getInterfaceAccess().getSignaturesAssignment_4_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("signatures",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("signatures"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getSignatureRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getInterfaceAccess().getSignaturesSignatureParserRuleCall_4_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Interface_LeftCurlyBracketKeyword_4_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," signatures+=Signature)* +protected class Interface_Group_4_3 extends GroupToken { + + public Interface_Group_4_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getInterfaceAccess().getGroup_4_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_SignaturesAssignment_4_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class Interface_CommaKeyword_4_3_0 extends KeywordToken { + + public Interface_CommaKeyword_4_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getCommaKeyword_4_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Interface_SignaturesAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// signatures+=Signature +protected class Interface_SignaturesAssignment_4_3_1 extends AssignmentToken { + + public Interface_SignaturesAssignment_4_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getInterfaceAccess().getSignaturesAssignment_4_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("signatures",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("signatures"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getSignatureRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getInterfaceAccess().getSignaturesSignatureParserRuleCall_4_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Interface_CommaKeyword_4_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class Interface_RightCurlyBracketKeyword_4_4 extends KeywordToken { + + public Interface_RightCurlyBracketKeyword_4_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_4_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Interface_SignaturesAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// "}" +protected class Interface_RightCurlyBracketKeyword_5 extends KeywordToken { + + public Interface_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Interface_Group_4(lastRuleCallOrigin, this, 0, inst); + case 1: return new Interface_Group_3(lastRuleCallOrigin, this, 1, inst); + case 2: return new Interface_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + + +/************ end Rule Interface ****************/ + + +/************ begin Rule RepositoryComponent_Impl **************** + * + * RepositoryComponent_Impl returns repository::RepositoryComponent: + * "RepositoryComponent" name=EString "{" ("relationship" "(" relationship+=[Relationship|EString] ("," + * relationship+=[Relationship|EString])* ")")? ("providedRoles" "{" providedRoles+=ProvidedRole ("," + * providedRoles+=ProvidedRole)* "}")? ("requiredRoles" "{" requiredRoles+=RequiredRole ("," + * requiredRoles+=RequiredRole)* "}")? "}"; + * + **/ + +// "RepositoryComponent" name=EString "{" ("relationship" "(" relationship+=[Relationship|EString] ("," +// relationship+=[Relationship|EString])* ")")? ("providedRoles" "{" providedRoles+=ProvidedRole ("," +// providedRoles+=ProvidedRole)* "}")? ("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* +// "}")? "}" +protected class RepositoryComponent_Impl_Group extends GroupToken { + + public RepositoryComponent_Impl_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getRepositoryComponent_ImplRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "RepositoryComponent" +protected class RepositoryComponent_Impl_RepositoryComponentKeyword_0 extends KeywordToken { + + public RepositoryComponent_Impl_RepositoryComponentKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRepositoryComponentKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class RepositoryComponent_Impl_NameAssignment_1 extends AssignmentToken { + + public RepositoryComponent_Impl_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_RepositoryComponentKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getRepositoryComponent_ImplAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getRepositoryComponent_ImplAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class RepositoryComponent_Impl_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public RepositoryComponent_Impl_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// ("relationship" "(" relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? +protected class RepositoryComponent_Impl_Group_3 extends GroupToken { + + public RepositoryComponent_Impl_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getGroup_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_RightParenthesisKeyword_3_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "relationship" +protected class RepositoryComponent_Impl_RelationshipKeyword_3_0 extends KeywordToken { + + public RepositoryComponent_Impl_RelationshipKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipKeyword_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "(" +protected class RepositoryComponent_Impl_LeftParenthesisKeyword_3_1 extends KeywordToken { + + public RepositoryComponent_Impl_LeftParenthesisKeyword_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getLeftParenthesisKeyword_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_RelationshipKeyword_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// relationship+=[Relationship|EString] +protected class RepositoryComponent_Impl_RelationshipAssignment_3_2 extends AssignmentToken { + + public RepositoryComponent_Impl_RelationshipAssignment_3_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipAssignment_3_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_LeftParenthesisKeyword_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("relationship",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("relationship"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipRelationshipCrossReference_3_2_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipRelationshipCrossReference_3_2_0(); + return obj; + } + } + return null; + } + +} + +// ("," relationship+=[Relationship|EString])* +protected class RepositoryComponent_Impl_Group_3_3 extends GroupToken { + + public RepositoryComponent_Impl_Group_3_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getGroup_3_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_RelationshipAssignment_3_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class RepositoryComponent_Impl_CommaKeyword_3_3_0 extends KeywordToken { + + public RepositoryComponent_Impl_CommaKeyword_3_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getCommaKeyword_3_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_Impl_RelationshipAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// relationship+=[Relationship|EString] +protected class RepositoryComponent_Impl_RelationshipAssignment_3_3_1 extends AssignmentToken { + + public RepositoryComponent_Impl_RelationshipAssignment_3_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipAssignment_3_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_CommaKeyword_3_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("relationship",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("relationship"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipRelationshipCrossReference_3_3_1_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipRelationshipCrossReference_3_3_1_0(); + return obj; + } + } + return null; + } + +} + + +// ")" +protected class RepositoryComponent_Impl_RightParenthesisKeyword_3_4 extends KeywordToken { + + public RepositoryComponent_Impl_RightParenthesisKeyword_3_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRightParenthesisKeyword_3_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_Impl_RelationshipAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("providedRoles" "{" providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)* "}")? +protected class RepositoryComponent_Impl_Group_4 extends GroupToken { + + public RepositoryComponent_Impl_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getGroup_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_RightCurlyBracketKeyword_4_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "providedRoles" +protected class RepositoryComponent_Impl_ProvidedRolesKeyword_4_0 extends KeywordToken { + + public RepositoryComponent_Impl_ProvidedRolesKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesKeyword_4_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_Impl_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// "{" +protected class RepositoryComponent_Impl_LeftCurlyBracketKeyword_4_1 extends KeywordToken { + + public RepositoryComponent_Impl_LeftCurlyBracketKeyword_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getLeftCurlyBracketKeyword_4_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_ProvidedRolesKeyword_4_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// providedRoles+=ProvidedRole +protected class RepositoryComponent_Impl_ProvidedRolesAssignment_4_2 extends AssignmentToken { + + public RepositoryComponent_Impl_ProvidedRolesAssignment_4_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesAssignment_4_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedRoles",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesProvidedRoleParserRuleCall_4_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new RepositoryComponent_Impl_LeftCurlyBracketKeyword_4_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," providedRoles+=ProvidedRole)* +protected class RepositoryComponent_Impl_Group_4_3 extends GroupToken { + + public RepositoryComponent_Impl_Group_4_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getGroup_4_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_ProvidedRolesAssignment_4_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class RepositoryComponent_Impl_CommaKeyword_4_3_0 extends KeywordToken { + + public RepositoryComponent_Impl_CommaKeyword_4_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getCommaKeyword_4_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_Impl_ProvidedRolesAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// providedRoles+=ProvidedRole +protected class RepositoryComponent_Impl_ProvidedRolesAssignment_4_3_1 extends AssignmentToken { + + public RepositoryComponent_Impl_ProvidedRolesAssignment_4_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesAssignment_4_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedRoles",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesProvidedRoleParserRuleCall_4_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new RepositoryComponent_Impl_CommaKeyword_4_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class RepositoryComponent_Impl_RightCurlyBracketKeyword_4_4 extends KeywordToken { + + public RepositoryComponent_Impl_RightCurlyBracketKeyword_4_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRightCurlyBracketKeyword_4_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_Impl_ProvidedRolesAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* "}")? +protected class RepositoryComponent_Impl_Group_5 extends GroupToken { + + public RepositoryComponent_Impl_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getGroup_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_RightCurlyBracketKeyword_5_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "requiredRoles" +protected class RepositoryComponent_Impl_RequiredRolesKeyword_5_0 extends KeywordToken { + + public RepositoryComponent_Impl_RequiredRolesKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesKeyword_5_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group_4(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_Impl_Group_3(lastRuleCallOrigin, this, 1, inst); + case 2: return new RepositoryComponent_Impl_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + +// "{" +protected class RepositoryComponent_Impl_LeftCurlyBracketKeyword_5_1 extends KeywordToken { + + public RepositoryComponent_Impl_LeftCurlyBracketKeyword_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getLeftCurlyBracketKeyword_5_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_RequiredRolesKeyword_5_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// requiredRoles+=RequiredRole +protected class RepositoryComponent_Impl_RequiredRolesAssignment_5_2 extends AssignmentToken { + + public RepositoryComponent_Impl_RequiredRolesAssignment_5_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesAssignment_5_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredRoles",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesRequiredRoleParserRuleCall_5_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new RepositoryComponent_Impl_LeftCurlyBracketKeyword_5_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," requiredRoles+=RequiredRole)* +protected class RepositoryComponent_Impl_Group_5_3 extends GroupToken { + + public RepositoryComponent_Impl_Group_5_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getGroup_5_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_RequiredRolesAssignment_5_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class RepositoryComponent_Impl_CommaKeyword_5_3_0 extends KeywordToken { + + public RepositoryComponent_Impl_CommaKeyword_5_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getCommaKeyword_5_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_Impl_RequiredRolesAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// requiredRoles+=RequiredRole +protected class RepositoryComponent_Impl_RequiredRolesAssignment_5_3_1 extends AssignmentToken { + + public RepositoryComponent_Impl_RequiredRolesAssignment_5_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesAssignment_5_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredRoles",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesRequiredRoleParserRuleCall_5_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new RepositoryComponent_Impl_CommaKeyword_5_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class RepositoryComponent_Impl_RightCurlyBracketKeyword_5_4 extends KeywordToken { + + public RepositoryComponent_Impl_RightCurlyBracketKeyword_5_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRightCurlyBracketKeyword_5_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_Impl_RequiredRolesAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// "}" +protected class RepositoryComponent_Impl_RightCurlyBracketKeyword_6 extends KeywordToken { + + public RepositoryComponent_Impl_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRepositoryComponent_ImplAccess().getRightCurlyBracketKeyword_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RepositoryComponent_Impl_Group_5(lastRuleCallOrigin, this, 0, inst); + case 1: return new RepositoryComponent_Impl_Group_4(lastRuleCallOrigin, this, 1, inst); + case 2: return new RepositoryComponent_Impl_Group_3(lastRuleCallOrigin, this, 2, inst); + case 3: return new RepositoryComponent_Impl_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 3, inst); + default: return null; + } + } + +} + + +/************ end Rule RepositoryComponent_Impl ****************/ + + +/************ begin Rule CollectionDataType **************** + * + * CollectionDataType returns repository::CollectionDataType: + * "CollectionDataType" name=EString "{" "innerType" innerType=[repository::DataType|EString] "}"; + * + **/ + +// "CollectionDataType" name=EString "{" "innerType" innerType=[repository::DataType|EString] "}" +protected class CollectionDataType_Group extends GroupToken { + + public CollectionDataType_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCollectionDataTypeAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CollectionDataType_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getCollectionDataTypeRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "CollectionDataType" +protected class CollectionDataType_CollectionDataTypeKeyword_0 extends KeywordToken { + + public CollectionDataType_CollectionDataTypeKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCollectionDataTypeAccess().getCollectionDataTypeKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class CollectionDataType_NameAssignment_1 extends AssignmentToken { + + public CollectionDataType_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCollectionDataTypeAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CollectionDataType_CollectionDataTypeKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCollectionDataTypeAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getCollectionDataTypeAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class CollectionDataType_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public CollectionDataType_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCollectionDataTypeAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CollectionDataType_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "innerType" +protected class CollectionDataType_InnerTypeKeyword_3 extends KeywordToken { + + public CollectionDataType_InnerTypeKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCollectionDataTypeAccess().getInnerTypeKeyword_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CollectionDataType_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// innerType=[repository::DataType|EString] +protected class CollectionDataType_InnerTypeAssignment_4 extends AssignmentToken { + + public CollectionDataType_InnerTypeAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCollectionDataTypeAccess().getInnerTypeAssignment_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CollectionDataType_InnerTypeKeyword_3(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("innerType",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("innerType"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getCollectionDataTypeAccess().getInnerTypeDataTypeCrossReference_4_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getCollectionDataTypeAccess().getInnerTypeDataTypeCrossReference_4_0(); + return obj; + } + } + return null; + } + +} + +// "}" +protected class CollectionDataType_RightCurlyBracketKeyword_5 extends KeywordToken { + + public CollectionDataType_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCollectionDataTypeAccess().getRightCurlyBracketKeyword_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CollectionDataType_InnerTypeAssignment_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + + +/************ end Rule CollectionDataType ****************/ + + +/************ begin Rule CompositeDataType **************** + * + * CompositeDataType returns repository::CompositeDataType: + * "CompositeDataType" name=EString "{" ("parentTypes" "(" parentTypes+=[repository::CompositeDataType|EString] ("," + * parentTypes+=[repository::CompositeDataType|EString])* ")")? ("innerDeclarations" "{" + * innerDeclarations+=InnerDeclaration ("," innerDeclarations+=InnerDeclaration)* "}")? "}"; + * + **/ + +// "CompositeDataType" name=EString "{" ("parentTypes" "(" parentTypes+=[repository::CompositeDataType|EString] ("," +// parentTypes+=[repository::CompositeDataType|EString])* ")")? ("innerDeclarations" "{" +// innerDeclarations+=InnerDeclaration ("," innerDeclarations+=InnerDeclaration)* "}")? "}" +protected class CompositeDataType_Group extends GroupToken { + + public CompositeDataType_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getCompositeDataTypeRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "CompositeDataType" +protected class CompositeDataType_CompositeDataTypeKeyword_0 extends KeywordToken { + + public CompositeDataType_CompositeDataTypeKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getCompositeDataTypeKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class CompositeDataType_NameAssignment_1 extends AssignmentToken { + + public CompositeDataType_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_CompositeDataTypeKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCompositeDataTypeAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getCompositeDataTypeAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class CompositeDataType_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public CompositeDataType_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// ("parentTypes" "(" parentTypes+=[repository::CompositeDataType|EString] ("," +// parentTypes+=[repository::CompositeDataType|EString])* ")")? +protected class CompositeDataType_Group_3 extends GroupToken { + + public CompositeDataType_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getGroup_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_RightParenthesisKeyword_3_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "parentTypes" +protected class CompositeDataType_ParentTypesKeyword_3_0 extends KeywordToken { + + public CompositeDataType_ParentTypesKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getParentTypesKeyword_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "(" +protected class CompositeDataType_LeftParenthesisKeyword_3_1 extends KeywordToken { + + public CompositeDataType_LeftParenthesisKeyword_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getLeftParenthesisKeyword_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_ParentTypesKeyword_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// parentTypes+=[repository::CompositeDataType|EString] +protected class CompositeDataType_ParentTypesAssignment_3_2 extends AssignmentToken { + + public CompositeDataType_ParentTypesAssignment_3_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getParentTypesAssignment_3_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_LeftParenthesisKeyword_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("parentTypes",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parentTypes"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getCompositeDataTypeAccess().getParentTypesCompositeDataTypeCrossReference_3_2_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getCompositeDataTypeAccess().getParentTypesCompositeDataTypeCrossReference_3_2_0(); + return obj; + } + } + return null; + } + +} + +// ("," parentTypes+=[repository::CompositeDataType|EString])* +protected class CompositeDataType_Group_3_3 extends GroupToken { + + public CompositeDataType_Group_3_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getGroup_3_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_ParentTypesAssignment_3_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class CompositeDataType_CommaKeyword_3_3_0 extends KeywordToken { + + public CompositeDataType_CommaKeyword_3_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getCommaKeyword_3_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeDataType_ParentTypesAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// parentTypes+=[repository::CompositeDataType|EString] +protected class CompositeDataType_ParentTypesAssignment_3_3_1 extends AssignmentToken { + + public CompositeDataType_ParentTypesAssignment_3_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getParentTypesAssignment_3_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_CommaKeyword_3_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("parentTypes",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parentTypes"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getCompositeDataTypeAccess().getParentTypesCompositeDataTypeCrossReference_3_3_1_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getCompositeDataTypeAccess().getParentTypesCompositeDataTypeCrossReference_3_3_1_0(); + return obj; + } + } + return null; + } + +} + + +// ")" +protected class CompositeDataType_RightParenthesisKeyword_3_4 extends KeywordToken { + + public CompositeDataType_RightParenthesisKeyword_3_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getRightParenthesisKeyword_3_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeDataType_ParentTypesAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("innerDeclarations" "{" innerDeclarations+=InnerDeclaration ("," innerDeclarations+=InnerDeclaration)* "}")? +protected class CompositeDataType_Group_4 extends GroupToken { + + public CompositeDataType_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getGroup_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_RightCurlyBracketKeyword_4_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "innerDeclarations" +protected class CompositeDataType_InnerDeclarationsKeyword_4_0 extends KeywordToken { + + public CompositeDataType_InnerDeclarationsKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsKeyword_4_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_Group_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeDataType_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// "{" +protected class CompositeDataType_LeftCurlyBracketKeyword_4_1 extends KeywordToken { + + public CompositeDataType_LeftCurlyBracketKeyword_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getLeftCurlyBracketKeyword_4_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_InnerDeclarationsKeyword_4_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// innerDeclarations+=InnerDeclaration +protected class CompositeDataType_InnerDeclarationsAssignment_4_2 extends AssignmentToken { + + public CompositeDataType_InnerDeclarationsAssignment_4_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsAssignment_4_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new InnerDeclaration_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("innerDeclarations",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("innerDeclarations"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getInnerDeclarationRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsInnerDeclarationParserRuleCall_4_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new CompositeDataType_LeftCurlyBracketKeyword_4_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," innerDeclarations+=InnerDeclaration)* +protected class CompositeDataType_Group_4_3 extends GroupToken { + + public CompositeDataType_Group_4_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getGroup_4_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_InnerDeclarationsAssignment_4_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class CompositeDataType_CommaKeyword_4_3_0 extends KeywordToken { + + public CompositeDataType_CommaKeyword_4_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getCommaKeyword_4_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeDataType_InnerDeclarationsAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// innerDeclarations+=InnerDeclaration +protected class CompositeDataType_InnerDeclarationsAssignment_4_3_1 extends AssignmentToken { + + public CompositeDataType_InnerDeclarationsAssignment_4_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsAssignment_4_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new InnerDeclaration_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("innerDeclarations",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("innerDeclarations"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getInnerDeclarationRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsInnerDeclarationParserRuleCall_4_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new CompositeDataType_CommaKeyword_4_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class CompositeDataType_RightCurlyBracketKeyword_4_4 extends KeywordToken { + + public CompositeDataType_RightCurlyBracketKeyword_4_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getRightCurlyBracketKeyword_4_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeDataType_InnerDeclarationsAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// "}" +protected class CompositeDataType_RightCurlyBracketKeyword_5 extends KeywordToken { + + public CompositeDataType_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeDataTypeAccess().getRightCurlyBracketKeyword_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeDataType_Group_4(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeDataType_Group_3(lastRuleCallOrigin, this, 1, inst); + case 2: return new CompositeDataType_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + + +/************ end Rule CompositeDataType ****************/ + + +/************ begin Rule PrimitiveDataType **************** + * + * PrimitiveDataType returns repository::PrimitiveDataType: + * "PrimitiveDataType" "{" "type" type=PrimitiveTypeEnum "ref" name=EString "}"; + * + **/ + +// "PrimitiveDataType" "{" "type" type=PrimitiveTypeEnum "ref" name=EString "}" +protected class PrimitiveDataType_Group extends GroupToken { + + public PrimitiveDataType_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getPrimitiveDataTypeAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new PrimitiveDataType_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getPrimitiveDataTypeRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "PrimitiveDataType" +protected class PrimitiveDataType_PrimitiveDataTypeKeyword_0 extends KeywordToken { + + public PrimitiveDataType_PrimitiveDataTypeKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getPrimitiveDataTypeAccess().getPrimitiveDataTypeKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// "{" +protected class PrimitiveDataType_LeftCurlyBracketKeyword_1 extends KeywordToken { + + public PrimitiveDataType_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getPrimitiveDataTypeAccess().getLeftCurlyBracketKeyword_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new PrimitiveDataType_PrimitiveDataTypeKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "type" +protected class PrimitiveDataType_TypeKeyword_2 extends KeywordToken { + + public PrimitiveDataType_TypeKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getPrimitiveDataTypeAccess().getTypeKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new PrimitiveDataType_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// type=PrimitiveTypeEnum +protected class PrimitiveDataType_TypeAssignment_3 extends AssignmentToken { + + public PrimitiveDataType_TypeAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getPrimitiveDataTypeAccess().getTypeAssignment_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new PrimitiveDataType_TypeKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("type",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("type"); + if(enumLitSerializer.isValid(obj.getEObject(), grammarAccess.getPrimitiveDataTypeAccess().getTypePrimitiveTypeEnumEnumRuleCall_3_0(), value, null)) { + type = AssignmentType.ENUM_RULE_CALL; + element = grammarAccess.getPrimitiveDataTypeAccess().getTypePrimitiveTypeEnumEnumRuleCall_3_0(); + return obj; + } + return null; + } + +} + +// "ref" +protected class PrimitiveDataType_RefKeyword_4 extends KeywordToken { + + public PrimitiveDataType_RefKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getPrimitiveDataTypeAccess().getRefKeyword_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new PrimitiveDataType_TypeAssignment_3(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// name=EString +protected class PrimitiveDataType_NameAssignment_5 extends AssignmentToken { + + public PrimitiveDataType_NameAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getPrimitiveDataTypeAccess().getNameAssignment_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new PrimitiveDataType_RefKeyword_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getPrimitiveDataTypeAccess().getNameEStringParserRuleCall_5_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getPrimitiveDataTypeAccess().getNameEStringParserRuleCall_5_0(); + return obj; + } + return null; + } + +} + +// "}" +protected class PrimitiveDataType_RightCurlyBracketKeyword_6 extends KeywordToken { + + public PrimitiveDataType_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getPrimitiveDataTypeAccess().getRightCurlyBracketKeyword_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new PrimitiveDataType_NameAssignment_5(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + + +/************ end Rule PrimitiveDataType ****************/ + + +/************ begin Rule InnerDeclaration **************** + * + * InnerDeclaration returns repository::InnerDeclaration: + * "InnerDeclaration" name=EString "{" "dataType" dataType=[repository::DataType|EString] "}"; + * + **/ + +// "InnerDeclaration" name=EString "{" "dataType" dataType=[repository::DataType|EString] "}" +protected class InnerDeclaration_Group extends GroupToken { + + public InnerDeclaration_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getInnerDeclarationAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new InnerDeclaration_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getInnerDeclarationRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "InnerDeclaration" +protected class InnerDeclaration_InnerDeclarationKeyword_0 extends KeywordToken { + + public InnerDeclaration_InnerDeclarationKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInnerDeclarationAccess().getInnerDeclarationKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class InnerDeclaration_NameAssignment_1 extends AssignmentToken { + + public InnerDeclaration_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getInnerDeclarationAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new InnerDeclaration_InnerDeclarationKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getInnerDeclarationAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getInnerDeclarationAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class InnerDeclaration_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public InnerDeclaration_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInnerDeclarationAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new InnerDeclaration_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "dataType" +protected class InnerDeclaration_DataTypeKeyword_3 extends KeywordToken { + + public InnerDeclaration_DataTypeKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInnerDeclarationAccess().getDataTypeKeyword_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new InnerDeclaration_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// dataType=[repository::DataType|EString] +protected class InnerDeclaration_DataTypeAssignment_4 extends AssignmentToken { + + public InnerDeclaration_DataTypeAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getInnerDeclarationAccess().getDataTypeAssignment_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new InnerDeclaration_DataTypeKeyword_3(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("dataType",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dataType"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getInnerDeclarationAccess().getDataTypeDataTypeCrossReference_4_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getInnerDeclarationAccess().getDataTypeDataTypeCrossReference_4_0(); + return obj; + } + } + return null; + } + +} + +// "}" +protected class InnerDeclaration_RightCurlyBracketKeyword_5 extends KeywordToken { + + public InnerDeclaration_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getInnerDeclarationAccess().getRightCurlyBracketKeyword_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new InnerDeclaration_DataTypeAssignment_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + + +/************ end Rule InnerDeclaration ****************/ + + +/************ begin Rule Signature **************** + * + * Signature returns repository::Signature: + * (returnType=[repository::DataType|EString] | "void") name=EString "(" (parameters+=Parameter ("," + * parameters+=Parameter)*)? ")"; + * + **/ + +// (returnType=[repository::DataType|EString] | "void") name=EString "(" (parameters+=Parameter ("," +// parameters+=Parameter)*)? ")" +protected class Signature_Group extends GroupToken { + + public Signature_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSignatureAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_RightParenthesisKeyword_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getSignatureRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// returnType=[repository::DataType|EString] | "void" +protected class Signature_Alternatives_0 extends AlternativesToken { + + public Signature_Alternatives_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Alternatives getGrammarElement() { + return grammarAccess.getSignatureAccess().getAlternatives_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_ReturnTypeAssignment_0_0(lastRuleCallOrigin, this, 0, inst); + case 1: return new Signature_VoidKeyword_0_1(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// returnType=[repository::DataType|EString] +protected class Signature_ReturnTypeAssignment_0_0 extends AssignmentToken { + + public Signature_ReturnTypeAssignment_0_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSignatureAccess().getReturnTypeAssignment_0_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("returnType",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("returnType"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getSignatureAccess().getReturnTypeDataTypeCrossReference_0_0_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getSignatureAccess().getReturnTypeDataTypeCrossReference_0_0_0(); + return obj; + } + } + return null; + } + +} + +// "void" +protected class Signature_VoidKeyword_0_1 extends KeywordToken { + + public Signature_VoidKeyword_0_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSignatureAccess().getVoidKeyword_0_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + + +// name=EString +protected class Signature_NameAssignment_1 extends AssignmentToken { + + public Signature_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSignatureAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_Alternatives_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSignatureAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getSignatureAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "(" +protected class Signature_LeftParenthesisKeyword_2 extends KeywordToken { + + public Signature_LeftParenthesisKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSignatureAccess().getLeftParenthesisKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// (parameters+=Parameter ("," parameters+=Parameter)*)? +protected class Signature_Group_3 extends GroupToken { + + public Signature_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSignatureAccess().getGroup_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_Group_3_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new Signature_ParametersAssignment_3_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// parameters+=Parameter +protected class Signature_ParametersAssignment_3_0 extends AssignmentToken { + + public Signature_ParametersAssignment_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSignatureAccess().getParametersAssignment_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Parameter_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("parameters",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parameters"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getParameterRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getSignatureAccess().getParametersParameterParserRuleCall_3_0_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Signature_LeftParenthesisKeyword_2(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," parameters+=Parameter)* +protected class Signature_Group_3_1 extends GroupToken { + + public Signature_Group_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSignatureAccess().getGroup_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_ParametersAssignment_3_1_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class Signature_CommaKeyword_3_1_0 extends KeywordToken { + + public Signature_CommaKeyword_3_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSignatureAccess().getCommaKeyword_3_1_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_Group_3_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new Signature_ParametersAssignment_3_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// parameters+=Parameter +protected class Signature_ParametersAssignment_3_1_1 extends AssignmentToken { + + public Signature_ParametersAssignment_3_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSignatureAccess().getParametersAssignment_3_1_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Parameter_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("parameters",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parameters"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getParameterRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getSignatureAccess().getParametersParameterParserRuleCall_3_1_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new Signature_CommaKeyword_3_1_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + + +// ")" +protected class Signature_RightParenthesisKeyword_4 extends KeywordToken { + + public Signature_RightParenthesisKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSignatureAccess().getRightParenthesisKeyword_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Signature_Group_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new Signature_LeftParenthesisKeyword_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +/************ end Rule Signature ****************/ + + +/************ begin Rule Parameter **************** + * + * Parameter returns repository::Parameter: + * dataType=[repository::DataType|EString] name=EString; + * + **/ + +// dataType=[repository::DataType|EString] name=EString +protected class Parameter_Group extends GroupToken { + + public Parameter_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getParameterAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Parameter_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getParameterRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// dataType=[repository::DataType|EString] +protected class Parameter_DataTypeAssignment_0 extends AssignmentToken { + + public Parameter_DataTypeAssignment_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getParameterAccess().getDataTypeAssignment_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("dataType",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("dataType"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getParameterAccess().getDataTypeDataTypeCrossReference_0_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getParameterAccess().getDataTypeDataTypeCrossReference_0_0(); + return obj; + } + } + return null; + } + +} + +// name=EString +protected class Parameter_NameAssignment_1 extends AssignmentToken { + + public Parameter_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getParameterAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new Parameter_DataTypeAssignment_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + + +/************ end Rule Parameter ****************/ + + +/************ begin Rule ProvidedRole **************** + * + * ProvidedRole returns repository::ProvidedRole: + * {repository::ProvidedRole} "provides" (interface+=[repository::Interface|EString] ","?)*; + * + **/ + +// {repository::ProvidedRole} "provides" (interface+=[repository::Interface|EString] ","?)* +protected class ProvidedRole_Group extends GroupToken { + + public ProvidedRole_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getProvidedRoleAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group_2(lastRuleCallOrigin, this, 0, inst); + case 1: return new ProvidedRole_ProvidesKeyword_1(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getProvidedRoleAccess().getProvidedRoleAction_0().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// {repository::ProvidedRole} +protected class ProvidedRole_ProvidedRoleAction_0 extends ActionToken { + + public ProvidedRole_ProvidedRoleAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Action getGrammarElement() { + return grammarAccess.getProvidedRoleAccess().getProvidedRoleAction_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(!eObjectConsumer.isConsumed()) return null; + return eObjectConsumer; + } +} + +// "provides" +protected class ProvidedRole_ProvidesKeyword_1 extends KeywordToken { + + public ProvidedRole_ProvidesKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getProvidedRoleAccess().getProvidesKeyword_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_ProvidedRoleAction_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// (interface+=[repository::Interface|EString] ","?)* +protected class ProvidedRole_Group_2 extends GroupToken { + + public ProvidedRole_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getProvidedRoleAccess().getGroup_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_InterfaceAssignment_2_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// interface+=[repository::Interface|EString] +protected class ProvidedRole_InterfaceAssignment_2_0 extends AssignmentToken { + + public ProvidedRole_InterfaceAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getProvidedRoleAccess().getInterfaceAssignment_2_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group_2(lastRuleCallOrigin, this, 0, inst); + case 1: return new ProvidedRole_ProvidesKeyword_1(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("interface",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("interface"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedRoleAccess().getInterfaceInterfaceCrossReference_2_0_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getProvidedRoleAccess().getInterfaceInterfaceCrossReference_2_0_0(); + return obj; + } + } + return null; + } + +} + + + +/************ end Rule ProvidedRole ****************/ + + +/************ begin Rule RequiredRole **************** + * + * RequiredRole returns repository::RequiredRole: + * {repository::RequiredRole} "requires" (interface+=[repository::Interface|EString] ","?)*; + * + **/ + +// {repository::RequiredRole} "requires" (interface+=[repository::Interface|EString] ","?)* +protected class RequiredRole_Group extends GroupToken { + + public RequiredRole_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRequiredRoleAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group_2(lastRuleCallOrigin, this, 0, inst); + case 1: return new RequiredRole_RequiresKeyword_1(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getRequiredRoleAccess().getRequiredRoleAction_0().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// {repository::RequiredRole} +protected class RequiredRole_RequiredRoleAction_0 extends ActionToken { + + public RequiredRole_RequiredRoleAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Action getGrammarElement() { + return grammarAccess.getRequiredRoleAccess().getRequiredRoleAction_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(!eObjectConsumer.isConsumed()) return null; + return eObjectConsumer; + } +} + +// "requires" +protected class RequiredRole_RequiresKeyword_1 extends KeywordToken { + + public RequiredRole_RequiresKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRequiredRoleAccess().getRequiresKeyword_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_RequiredRoleAction_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// (interface+=[repository::Interface|EString] ","?)* +protected class RequiredRole_Group_2 extends GroupToken { + + public RequiredRole_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRequiredRoleAccess().getGroup_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_InterfaceAssignment_2_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// interface+=[repository::Interface|EString] +protected class RequiredRole_InterfaceAssignment_2_0 extends AssignmentToken { + + public RequiredRole_InterfaceAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRequiredRoleAccess().getInterfaceAssignment_2_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group_2(lastRuleCallOrigin, this, 0, inst); + case 1: return new RequiredRole_RequiresKeyword_1(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("interface",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("interface"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredRoleAccess().getInterfaceInterfaceCrossReference_2_0_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getRequiredRoleAccess().getInterfaceInterfaceCrossReference_2_0_0(); + return obj; + } + } + return null; + } + +} + + + +/************ end Rule RequiredRole ****************/ + + +/************ begin Rule BasicComponent **************** + * + * BasicComponent returns repository::BasicComponent: + * "BasicComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + * (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" + * relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? "}"; + * + **/ + +// "BasicComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? +// (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" +// relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? "}" +protected class BasicComponent_Group extends GroupToken { + + public BasicComponent_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getBasicComponentRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "BasicComponent" +protected class BasicComponent_BasicComponentKeyword_0 extends KeywordToken { + + public BasicComponent_BasicComponentKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getBasicComponentKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class BasicComponent_NameAssignment_1 extends AssignmentToken { + + public BasicComponent_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_BasicComponentKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getBasicComponentAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getBasicComponentAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? +protected class BasicComponent_Group_2 extends GroupToken { + + public BasicComponent_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getGroup_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_Group_2_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new BasicComponent_ProvidedRolesAssignment_2_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// providedRoles+=ProvidedRole +protected class BasicComponent_ProvidedRolesAssignment_2_0 extends AssignmentToken { + + public BasicComponent_ProvidedRolesAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getProvidedRolesAssignment_2_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedRoles",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getBasicComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_0_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new BasicComponent_NameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," providedRoles+=ProvidedRole)* +protected class BasicComponent_Group_2_1 extends GroupToken { + + public BasicComponent_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getGroup_2_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_ProvidedRolesAssignment_2_1_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class BasicComponent_CommaKeyword_2_1_0 extends KeywordToken { + + public BasicComponent_CommaKeyword_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getCommaKeyword_2_1_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_Group_2_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new BasicComponent_ProvidedRolesAssignment_2_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// providedRoles+=ProvidedRole +protected class BasicComponent_ProvidedRolesAssignment_2_1_1 extends AssignmentToken { + + public BasicComponent_ProvidedRolesAssignment_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getProvidedRolesAssignment_2_1_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedRoles",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getBasicComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_1_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new BasicComponent_CommaKeyword_2_1_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + + +// (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? +protected class BasicComponent_Group_3 extends GroupToken { + + public BasicComponent_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getGroup_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_Group_3_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new BasicComponent_RequiredRolesAssignment_3_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// requiredRoles+=RequiredRole +protected class BasicComponent_RequiredRolesAssignment_3_0 extends AssignmentToken { + + public BasicComponent_RequiredRolesAssignment_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getRequiredRolesAssignment_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredRoles",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getBasicComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_0_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new BasicComponent_Group_2(lastRuleCallOrigin, next, actIndex, consumed); + case 1: return new BasicComponent_NameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," requiredRoles+=RequiredRole)* +protected class BasicComponent_Group_3_1 extends GroupToken { + + public BasicComponent_Group_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getGroup_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_RequiredRolesAssignment_3_1_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class BasicComponent_CommaKeyword_3_1_0 extends KeywordToken { + + public BasicComponent_CommaKeyword_3_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getCommaKeyword_3_1_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_Group_3_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new BasicComponent_RequiredRolesAssignment_3_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// requiredRoles+=RequiredRole +protected class BasicComponent_RequiredRolesAssignment_3_1_1 extends AssignmentToken { + + public BasicComponent_RequiredRolesAssignment_3_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getRequiredRolesAssignment_3_1_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredRoles",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getBasicComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_1_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new BasicComponent_CommaKeyword_3_1_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + + +// "{" +protected class BasicComponent_LeftCurlyBracketKeyword_4 extends KeywordToken { + + public BasicComponent_LeftCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getLeftCurlyBracketKeyword_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_Group_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new BasicComponent_Group_2(lastRuleCallOrigin, this, 1, inst); + case 2: return new BasicComponent_NameAssignment_1(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + +// ("relationship" "(" relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? +protected class BasicComponent_Group_5 extends GroupToken { + + public BasicComponent_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getGroup_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_RightParenthesisKeyword_5_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "relationship" +protected class BasicComponent_RelationshipKeyword_5_0 extends KeywordToken { + + public BasicComponent_RelationshipKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getRelationshipKeyword_5_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "(" +protected class BasicComponent_LeftParenthesisKeyword_5_1 extends KeywordToken { + + public BasicComponent_LeftParenthesisKeyword_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getLeftParenthesisKeyword_5_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_RelationshipKeyword_5_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// relationship+=[Relationship|EString] +protected class BasicComponent_RelationshipAssignment_5_2 extends AssignmentToken { + + public BasicComponent_RelationshipAssignment_5_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getRelationshipAssignment_5_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_LeftParenthesisKeyword_5_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("relationship",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("relationship"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getBasicComponentAccess().getRelationshipRelationshipCrossReference_5_2_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getBasicComponentAccess().getRelationshipRelationshipCrossReference_5_2_0(); + return obj; + } + } + return null; + } + +} + +// ("," relationship+=[Relationship|EString])* +protected class BasicComponent_Group_5_3 extends GroupToken { + + public BasicComponent_Group_5_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getGroup_5_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_RelationshipAssignment_5_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class BasicComponent_CommaKeyword_5_3_0 extends KeywordToken { + + public BasicComponent_CommaKeyword_5_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getCommaKeyword_5_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new BasicComponent_RelationshipAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// relationship+=[Relationship|EString] +protected class BasicComponent_RelationshipAssignment_5_3_1 extends AssignmentToken { + + public BasicComponent_RelationshipAssignment_5_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getRelationshipAssignment_5_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_CommaKeyword_5_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("relationship",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("relationship"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getBasicComponentAccess().getRelationshipRelationshipCrossReference_5_3_1_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getBasicComponentAccess().getRelationshipRelationshipCrossReference_5_3_1_0(); + return obj; + } + } + return null; + } + +} + + +// ")" +protected class BasicComponent_RightParenthesisKeyword_5_4 extends KeywordToken { + + public BasicComponent_RightParenthesisKeyword_5_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getRightParenthesisKeyword_5_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new BasicComponent_RelationshipAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// "}" +protected class BasicComponent_RightCurlyBracketKeyword_6 extends KeywordToken { + + public BasicComponent_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getBasicComponentAccess().getRightCurlyBracketKeyword_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new BasicComponent_Group_5(lastRuleCallOrigin, this, 0, inst); + case 1: return new BasicComponent_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +/************ end Rule BasicComponent ****************/ + + +/************ begin Rule CompositeComponent **************** + * + * CompositeComponent returns repository::CompositeComponent: + * "CompositeComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + * (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" + * relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" + * assembly=ComposedStructureAssembly)? "}"; + * + **/ + +// "CompositeComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? +// (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" +// relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" +// assembly=ComposedStructureAssembly)? "}" +protected class CompositeComponent_Group extends GroupToken { + + public CompositeComponent_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_RightCurlyBracketKeyword_7(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getCompositeComponentRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "CompositeComponent" +protected class CompositeComponent_CompositeComponentKeyword_0 extends KeywordToken { + + public CompositeComponent_CompositeComponentKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getCompositeComponentKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class CompositeComponent_NameAssignment_1 extends AssignmentToken { + + public CompositeComponent_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_CompositeComponentKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getCompositeComponentAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getCompositeComponentAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? +protected class CompositeComponent_Group_2 extends GroupToken { + + public CompositeComponent_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getGroup_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group_2_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeComponent_ProvidedRolesAssignment_2_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// providedRoles+=ProvidedRole +protected class CompositeComponent_ProvidedRolesAssignment_2_0 extends AssignmentToken { + + public CompositeComponent_ProvidedRolesAssignment_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getProvidedRolesAssignment_2_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedRoles",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getCompositeComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_0_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new CompositeComponent_NameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," providedRoles+=ProvidedRole)* +protected class CompositeComponent_Group_2_1 extends GroupToken { + + public CompositeComponent_Group_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getGroup_2_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_ProvidedRolesAssignment_2_1_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class CompositeComponent_CommaKeyword_2_1_0 extends KeywordToken { + + public CompositeComponent_CommaKeyword_2_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getCommaKeyword_2_1_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group_2_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeComponent_ProvidedRolesAssignment_2_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// providedRoles+=ProvidedRole +protected class CompositeComponent_ProvidedRolesAssignment_2_1_1 extends AssignmentToken { + + public CompositeComponent_ProvidedRolesAssignment_2_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getProvidedRolesAssignment_2_1_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedRoles",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getCompositeComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_1_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new CompositeComponent_CommaKeyword_2_1_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + + +// (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? +protected class CompositeComponent_Group_3 extends GroupToken { + + public CompositeComponent_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getGroup_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group_3_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeComponent_RequiredRolesAssignment_3_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// requiredRoles+=RequiredRole +protected class CompositeComponent_RequiredRolesAssignment_3_0 extends AssignmentToken { + + public CompositeComponent_RequiredRolesAssignment_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getRequiredRolesAssignment_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredRoles",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getCompositeComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_0_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new CompositeComponent_Group_2(lastRuleCallOrigin, next, actIndex, consumed); + case 1: return new CompositeComponent_NameAssignment_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," requiredRoles+=RequiredRole)* +protected class CompositeComponent_Group_3_1 extends GroupToken { + + public CompositeComponent_Group_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getGroup_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_RequiredRolesAssignment_3_1_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class CompositeComponent_CommaKeyword_3_1_0 extends KeywordToken { + + public CompositeComponent_CommaKeyword_3_1_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getCommaKeyword_3_1_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group_3_1(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeComponent_RequiredRolesAssignment_3_0(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// requiredRoles+=RequiredRole +protected class CompositeComponent_RequiredRolesAssignment_3_1_1 extends AssignmentToken { + + public CompositeComponent_RequiredRolesAssignment_3_1_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getRequiredRolesAssignment_3_1_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredRoles",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getCompositeComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_1_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new CompositeComponent_CommaKeyword_3_1_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + + +// "{" +protected class CompositeComponent_LeftCurlyBracketKeyword_4 extends KeywordToken { + + public CompositeComponent_LeftCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getLeftCurlyBracketKeyword_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeComponent_Group_2(lastRuleCallOrigin, this, 1, inst); + case 2: return new CompositeComponent_NameAssignment_1(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + +// ("relationship" "(" relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? +protected class CompositeComponent_Group_5 extends GroupToken { + + public CompositeComponent_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getGroup_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_RightParenthesisKeyword_5_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "relationship" +protected class CompositeComponent_RelationshipKeyword_5_0 extends KeywordToken { + + public CompositeComponent_RelationshipKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getRelationshipKeyword_5_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "(" +protected class CompositeComponent_LeftParenthesisKeyword_5_1 extends KeywordToken { + + public CompositeComponent_LeftParenthesisKeyword_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getLeftParenthesisKeyword_5_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_RelationshipKeyword_5_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// relationship+=[Relationship|EString] +protected class CompositeComponent_RelationshipAssignment_5_2 extends AssignmentToken { + + public CompositeComponent_RelationshipAssignment_5_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getRelationshipAssignment_5_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_LeftParenthesisKeyword_5_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("relationship",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("relationship"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getCompositeComponentAccess().getRelationshipRelationshipCrossReference_5_2_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getCompositeComponentAccess().getRelationshipRelationshipCrossReference_5_2_0(); + return obj; + } + } + return null; + } + +} + +// ("," relationship+=[Relationship|EString])* +protected class CompositeComponent_Group_5_3 extends GroupToken { + + public CompositeComponent_Group_5_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getGroup_5_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_RelationshipAssignment_5_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class CompositeComponent_CommaKeyword_5_3_0 extends KeywordToken { + + public CompositeComponent_CommaKeyword_5_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getCommaKeyword_5_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeComponent_RelationshipAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// relationship+=[Relationship|EString] +protected class CompositeComponent_RelationshipAssignment_5_3_1 extends AssignmentToken { + + public CompositeComponent_RelationshipAssignment_5_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getRelationshipAssignment_5_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_CommaKeyword_5_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("relationship",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("relationship"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getCompositeComponentAccess().getRelationshipRelationshipCrossReference_5_3_1_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getCompositeComponentAccess().getRelationshipRelationshipCrossReference_5_3_1_0(); + return obj; + } + } + return null; + } + +} + + +// ")" +protected class CompositeComponent_RightParenthesisKeyword_5_4 extends KeywordToken { + + public CompositeComponent_RightParenthesisKeyword_5_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getRightParenthesisKeyword_5_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeComponent_RelationshipAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("assembly" assembly=ComposedStructureAssembly)? +protected class CompositeComponent_Group_6 extends GroupToken { + + public CompositeComponent_Group_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getGroup_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_AssemblyAssignment_6_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "assembly" +protected class CompositeComponent_AssemblyKeyword_6_0 extends KeywordToken { + + public CompositeComponent_AssemblyKeyword_6_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getAssemblyKeyword_6_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group_5(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeComponent_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// assembly=ComposedStructureAssembly +protected class CompositeComponent_AssemblyAssignment_6_1 extends AssignmentToken { + + public CompositeComponent_AssemblyAssignment_6_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getAssemblyAssignment_6_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("assembly",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assembly"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getComposedStructureAssemblyRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getCompositeComponentAccess().getAssemblyComposedStructureAssemblyParserRuleCall_6_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new CompositeComponent_AssemblyKeyword_6_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class CompositeComponent_RightCurlyBracketKeyword_7 extends KeywordToken { + + public CompositeComponent_RightCurlyBracketKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getCompositeComponentAccess().getRightCurlyBracketKeyword_7(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new CompositeComponent_Group_6(lastRuleCallOrigin, this, 0, inst); + case 1: return new CompositeComponent_Group_5(lastRuleCallOrigin, this, 1, inst); + case 2: return new CompositeComponent_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + + +/************ end Rule CompositeComponent ****************/ + + +/************ begin Rule SubSystem **************** + * + * SubSystem returns repository::SubSystem: + * "SubSystem" name=EString ("providedRoles" "{" providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)* "}")? + * ("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* "}")? "{" ("relationship" "(" + * relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" + * assembly=ComposedStructureAssembly)? "}"; + * + **/ + +// "SubSystem" name=EString ("providedRoles" "{" providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)* "}")? +// ("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* "}")? "{" ("relationship" "(" +// relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" +// assembly=ComposedStructureAssembly)? "}" +protected class SubSystem_Group extends GroupToken { + + public SubSystem_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSubSystemAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_RightCurlyBracketKeyword_7(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getSubSystemRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "SubSystem" +protected class SubSystem_SubSystemKeyword_0 extends KeywordToken { + + public SubSystem_SubSystemKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getSubSystemKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class SubSystem_NameAssignment_1 extends AssignmentToken { + + public SubSystem_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSubSystemAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_SubSystemKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getSubSystemAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getSubSystemAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// ("providedRoles" "{" providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)* "}")? +protected class SubSystem_Group_2 extends GroupToken { + + public SubSystem_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSubSystemAccess().getGroup_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_RightCurlyBracketKeyword_2_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "providedRoles" +protected class SubSystem_ProvidedRolesKeyword_2_0 extends KeywordToken { + + public SubSystem_ProvidedRolesKeyword_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getProvidedRolesKeyword_2_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "{" +protected class SubSystem_LeftCurlyBracketKeyword_2_1 extends KeywordToken { + + public SubSystem_LeftCurlyBracketKeyword_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getLeftCurlyBracketKeyword_2_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_ProvidedRolesKeyword_2_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// providedRoles+=ProvidedRole +protected class SubSystem_ProvidedRolesAssignment_2_2 extends AssignmentToken { + + public SubSystem_ProvidedRolesAssignment_2_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSubSystemAccess().getProvidedRolesAssignment_2_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedRoles",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getSubSystemAccess().getProvidedRolesProvidedRoleParserRuleCall_2_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new SubSystem_LeftCurlyBracketKeyword_2_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," providedRoles+=ProvidedRole)* +protected class SubSystem_Group_2_3 extends GroupToken { + + public SubSystem_Group_2_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSubSystemAccess().getGroup_2_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_ProvidedRolesAssignment_2_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class SubSystem_CommaKeyword_2_3_0 extends KeywordToken { + + public SubSystem_CommaKeyword_2_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getCommaKeyword_2_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_2_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_ProvidedRolesAssignment_2_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// providedRoles+=ProvidedRole +protected class SubSystem_ProvidedRolesAssignment_2_3_1 extends AssignmentToken { + + public SubSystem_ProvidedRolesAssignment_2_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSubSystemAccess().getProvidedRolesAssignment_2_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedRoles",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getSubSystemAccess().getProvidedRolesProvidedRoleParserRuleCall_2_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new SubSystem_CommaKeyword_2_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class SubSystem_RightCurlyBracketKeyword_2_4 extends KeywordToken { + + public SubSystem_RightCurlyBracketKeyword_2_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRightCurlyBracketKeyword_2_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_2_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_ProvidedRolesAssignment_2_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* "}")? +protected class SubSystem_Group_3 extends GroupToken { + + public SubSystem_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSubSystemAccess().getGroup_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_RightCurlyBracketKeyword_3_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "requiredRoles" +protected class SubSystem_RequiredRolesKeyword_3_0 extends KeywordToken { + + public SubSystem_RequiredRolesKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRequiredRolesKeyword_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_2(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_NameAssignment_1(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// "{" +protected class SubSystem_LeftCurlyBracketKeyword_3_1 extends KeywordToken { + + public SubSystem_LeftCurlyBracketKeyword_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getLeftCurlyBracketKeyword_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_RequiredRolesKeyword_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// requiredRoles+=RequiredRole +protected class SubSystem_RequiredRolesAssignment_3_2 extends AssignmentToken { + + public SubSystem_RequiredRolesAssignment_3_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRequiredRolesAssignment_3_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredRoles",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getSubSystemAccess().getRequiredRolesRequiredRoleParserRuleCall_3_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new SubSystem_LeftCurlyBracketKeyword_3_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," requiredRoles+=RequiredRole)* +protected class SubSystem_Group_3_3 extends GroupToken { + + public SubSystem_Group_3_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSubSystemAccess().getGroup_3_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_RequiredRolesAssignment_3_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class SubSystem_CommaKeyword_3_3_0 extends KeywordToken { + + public SubSystem_CommaKeyword_3_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getCommaKeyword_3_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_RequiredRolesAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// requiredRoles+=RequiredRole +protected class SubSystem_RequiredRolesAssignment_3_3_1 extends AssignmentToken { + + public SubSystem_RequiredRolesAssignment_3_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRequiredRolesAssignment_3_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredRole_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredRoles",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredRoles"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredRoleRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getSubSystemAccess().getRequiredRolesRequiredRoleParserRuleCall_3_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new SubSystem_CommaKeyword_3_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class SubSystem_RightCurlyBracketKeyword_3_4 extends KeywordToken { + + public SubSystem_RightCurlyBracketKeyword_3_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRightCurlyBracketKeyword_3_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_RequiredRolesAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// "{" +protected class SubSystem_LeftCurlyBracketKeyword_4 extends KeywordToken { + + public SubSystem_LeftCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getLeftCurlyBracketKeyword_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_Group_2(lastRuleCallOrigin, this, 1, inst); + case 2: return new SubSystem_NameAssignment_1(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + +// ("relationship" "(" relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? +protected class SubSystem_Group_5 extends GroupToken { + + public SubSystem_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSubSystemAccess().getGroup_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_RightParenthesisKeyword_5_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "relationship" +protected class SubSystem_RelationshipKeyword_5_0 extends KeywordToken { + + public SubSystem_RelationshipKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRelationshipKeyword_5_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "(" +protected class SubSystem_LeftParenthesisKeyword_5_1 extends KeywordToken { + + public SubSystem_LeftParenthesisKeyword_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getLeftParenthesisKeyword_5_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_RelationshipKeyword_5_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// relationship+=[Relationship|EString] +protected class SubSystem_RelationshipAssignment_5_2 extends AssignmentToken { + + public SubSystem_RelationshipAssignment_5_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRelationshipAssignment_5_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_LeftParenthesisKeyword_5_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("relationship",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("relationship"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getSubSystemAccess().getRelationshipRelationshipCrossReference_5_2_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getSubSystemAccess().getRelationshipRelationshipCrossReference_5_2_0(); + return obj; + } + } + return null; + } + +} + +// ("," relationship+=[Relationship|EString])* +protected class SubSystem_Group_5_3 extends GroupToken { + + public SubSystem_Group_5_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSubSystemAccess().getGroup_5_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_RelationshipAssignment_5_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class SubSystem_CommaKeyword_5_3_0 extends KeywordToken { + + public SubSystem_CommaKeyword_5_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getCommaKeyword_5_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_RelationshipAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// relationship+=[Relationship|EString] +protected class SubSystem_RelationshipAssignment_5_3_1 extends AssignmentToken { + + public SubSystem_RelationshipAssignment_5_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRelationshipAssignment_5_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_CommaKeyword_5_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("relationship",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("relationship"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getSubSystemAccess().getRelationshipRelationshipCrossReference_5_3_1_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getSubSystemAccess().getRelationshipRelationshipCrossReference_5_3_1_0(); + return obj; + } + } + return null; + } + +} + + +// ")" +protected class SubSystem_RightParenthesisKeyword_5_4 extends KeywordToken { + + public SubSystem_RightParenthesisKeyword_5_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRightParenthesisKeyword_5_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_RelationshipAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("assembly" assembly=ComposedStructureAssembly)? +protected class SubSystem_Group_6 extends GroupToken { + + public SubSystem_Group_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getSubSystemAccess().getGroup_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_AssemblyAssignment_6_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "assembly" +protected class SubSystem_AssemblyKeyword_6_0 extends KeywordToken { + + public SubSystem_AssemblyKeyword_6_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getAssemblyKeyword_6_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_5(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// assembly=ComposedStructureAssembly +protected class SubSystem_AssemblyAssignment_6_1 extends AssignmentToken { + + public SubSystem_AssemblyAssignment_6_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getSubSystemAccess().getAssemblyAssignment_6_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("assembly",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assembly"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getComposedStructureAssemblyRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getSubSystemAccess().getAssemblyComposedStructureAssemblyParserRuleCall_6_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new SubSystem_AssemblyKeyword_6_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class SubSystem_RightCurlyBracketKeyword_7 extends KeywordToken { + + public SubSystem_RightCurlyBracketKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getSubSystemAccess().getRightCurlyBracketKeyword_7(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new SubSystem_Group_6(lastRuleCallOrigin, this, 0, inst); + case 1: return new SubSystem_Group_5(lastRuleCallOrigin, this, 1, inst); + case 2: return new SubSystem_LeftCurlyBracketKeyword_4(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + + +/************ end Rule SubSystem ****************/ + + +/************ begin Rule ComposedStructureAssembly **************** + * + * ComposedStructureAssembly returns repository_composites::ComposedStructureAssembly: + * {repository_composites::ComposedStructureAssembly} "ComposedStructureAssembly" "{" ("assemblyContexts" "{" + * assemblyContexts+=AssemblyContext ("," assemblyContexts+=AssemblyContext)* "}")? ("assemblyConnectors" "{" + * assemblyConnectors+=AssemblyConnector ("," assemblyConnectors+=AssemblyConnector)* "}")? + * ("providedDelegationConnectors" "{" providedDelegationConnectors+=ProvidedDelegationConnector ("," + * providedDelegationConnectors+=ProvidedDelegationConnector)* "}")? ("requiredDelegationConnectors" "{" + * requiredDelegationConnectors+=RequiredDelegationConnector ("," + * requiredDelegationConnectors+=RequiredDelegationConnector)* "}")? "}"; + * + **/ + +// {repository_composites::ComposedStructureAssembly} "ComposedStructureAssembly" "{" ("assemblyContexts" "{" +// assemblyContexts+=AssemblyContext ("," assemblyContexts+=AssemblyContext)* "}")? ("assemblyConnectors" "{" +// assemblyConnectors+=AssemblyConnector ("," assemblyConnectors+=AssemblyConnector)* "}")? +// ("providedDelegationConnectors" "{" providedDelegationConnectors+=ProvidedDelegationConnector ("," +// providedDelegationConnectors+=ProvidedDelegationConnector)* "}")? ("requiredDelegationConnectors" "{" +// requiredDelegationConnectors+=RequiredDelegationConnector ("," +// requiredDelegationConnectors+=RequiredDelegationConnector)* "}")? "}" +protected class ComposedStructureAssembly_Group extends GroupToken { + + public ComposedStructureAssembly_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_RightCurlyBracketKeyword_7(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getComposedStructureAssemblyAccess().getComposedStructureAssemblyAction_0().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// {repository_composites::ComposedStructureAssembly} +protected class ComposedStructureAssembly_ComposedStructureAssemblyAction_0 extends ActionToken { + + public ComposedStructureAssembly_ComposedStructureAssemblyAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Action getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getComposedStructureAssemblyAction_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(!eObjectConsumer.isConsumed()) return null; + return eObjectConsumer; + } +} + +// "ComposedStructureAssembly" +protected class ComposedStructureAssembly_ComposedStructureAssemblyKeyword_1 extends KeywordToken { + + public ComposedStructureAssembly_ComposedStructureAssemblyKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getComposedStructureAssemblyKeyword_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_ComposedStructureAssemblyAction_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "{" +protected class ComposedStructureAssembly_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public ComposedStructureAssembly_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_ComposedStructureAssemblyKeyword_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// ("assemblyContexts" "{" assemblyContexts+=AssemblyContext ("," assemblyContexts+=AssemblyContext)* "}")? +protected class ComposedStructureAssembly_Group_3 extends GroupToken { + + public ComposedStructureAssembly_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getGroup_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_RightCurlyBracketKeyword_3_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "assemblyContexts" +protected class ComposedStructureAssembly_AssemblyContextsKeyword_3_0 extends KeywordToken { + + public ComposedStructureAssembly_AssemblyContextsKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsKeyword_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "{" +protected class ComposedStructureAssembly_LeftCurlyBracketKeyword_3_1 extends KeywordToken { + + public ComposedStructureAssembly_LeftCurlyBracketKeyword_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_AssemblyContextsKeyword_3_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// assemblyContexts+=AssemblyContext +protected class ComposedStructureAssembly_AssemblyContextsAssignment_3_2 extends AssignmentToken { + + public ComposedStructureAssembly_AssemblyContextsAssignment_3_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsAssignment_3_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyContext_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("assemblyContexts",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assemblyContexts"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getAssemblyContextRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsAssemblyContextParserRuleCall_3_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new ComposedStructureAssembly_LeftCurlyBracketKeyword_3_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," assemblyContexts+=AssemblyContext)* +protected class ComposedStructureAssembly_Group_3_3 extends GroupToken { + + public ComposedStructureAssembly_Group_3_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getGroup_3_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_AssemblyContextsAssignment_3_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class ComposedStructureAssembly_CommaKeyword_3_3_0 extends KeywordToken { + + public ComposedStructureAssembly_CommaKeyword_3_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_3_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_AssemblyContextsAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// assemblyContexts+=AssemblyContext +protected class ComposedStructureAssembly_AssemblyContextsAssignment_3_3_1 extends AssignmentToken { + + public ComposedStructureAssembly_AssemblyContextsAssignment_3_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsAssignment_3_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyContext_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("assemblyContexts",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assemblyContexts"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getAssemblyContextRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsAssemblyContextParserRuleCall_3_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new ComposedStructureAssembly_CommaKeyword_3_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class ComposedStructureAssembly_RightCurlyBracketKeyword_3_4 extends KeywordToken { + + public ComposedStructureAssembly_RightCurlyBracketKeyword_3_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_3_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_3_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_AssemblyContextsAssignment_3_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("assemblyConnectors" "{" assemblyConnectors+=AssemblyConnector ("," assemblyConnectors+=AssemblyConnector)* "}")? +protected class ComposedStructureAssembly_Group_4 extends GroupToken { + + public ComposedStructureAssembly_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getGroup_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_RightCurlyBracketKeyword_4_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "assemblyConnectors" +protected class ComposedStructureAssembly_AssemblyConnectorsKeyword_4_0 extends KeywordToken { + + public ComposedStructureAssembly_AssemblyConnectorsKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsKeyword_4_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// "{" +protected class ComposedStructureAssembly_LeftCurlyBracketKeyword_4_1 extends KeywordToken { + + public ComposedStructureAssembly_LeftCurlyBracketKeyword_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_4_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_AssemblyConnectorsKeyword_4_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// assemblyConnectors+=AssemblyConnector +protected class ComposedStructureAssembly_AssemblyConnectorsAssignment_4_2 extends AssignmentToken { + + public ComposedStructureAssembly_AssemblyConnectorsAssignment_4_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsAssignment_4_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("assemblyConnectors",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assemblyConnectors"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getAssemblyConnectorRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsAssemblyConnectorParserRuleCall_4_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new ComposedStructureAssembly_LeftCurlyBracketKeyword_4_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," assemblyConnectors+=AssemblyConnector)* +protected class ComposedStructureAssembly_Group_4_3 extends GroupToken { + + public ComposedStructureAssembly_Group_4_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getGroup_4_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_AssemblyConnectorsAssignment_4_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class ComposedStructureAssembly_CommaKeyword_4_3_0 extends KeywordToken { + + public ComposedStructureAssembly_CommaKeyword_4_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_4_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_AssemblyConnectorsAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// assemblyConnectors+=AssemblyConnector +protected class ComposedStructureAssembly_AssemblyConnectorsAssignment_4_3_1 extends AssignmentToken { + + public ComposedStructureAssembly_AssemblyConnectorsAssignment_4_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsAssignment_4_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("assemblyConnectors",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assemblyConnectors"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getAssemblyConnectorRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsAssemblyConnectorParserRuleCall_4_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new ComposedStructureAssembly_CommaKeyword_4_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class ComposedStructureAssembly_RightCurlyBracketKeyword_4_4 extends KeywordToken { + + public ComposedStructureAssembly_RightCurlyBracketKeyword_4_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_4_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_4_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_AssemblyConnectorsAssignment_4_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("providedDelegationConnectors" "{" providedDelegationConnectors+=ProvidedDelegationConnector ("," +// providedDelegationConnectors+=ProvidedDelegationConnector)* "}")? +protected class ComposedStructureAssembly_Group_5 extends GroupToken { + + public ComposedStructureAssembly_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getGroup_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_RightCurlyBracketKeyword_5_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "providedDelegationConnectors" +protected class ComposedStructureAssembly_ProvidedDelegationConnectorsKeyword_5_0 extends KeywordToken { + + public ComposedStructureAssembly_ProvidedDelegationConnectorsKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsKeyword_5_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_4(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_Group_3(lastRuleCallOrigin, this, 1, inst); + case 2: return new ComposedStructureAssembly_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 2, inst); + default: return null; + } + } + +} + +// "{" +protected class ComposedStructureAssembly_LeftCurlyBracketKeyword_5_1 extends KeywordToken { + + public ComposedStructureAssembly_LeftCurlyBracketKeyword_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_5_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_ProvidedDelegationConnectorsKeyword_5_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// providedDelegationConnectors+=ProvidedDelegationConnector +protected class ComposedStructureAssembly_ProvidedDelegationConnectorsAssignment_5_2 extends AssignmentToken { + + public ComposedStructureAssembly_ProvidedDelegationConnectorsAssignment_5_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsAssignment_5_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedDelegationConnectors",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedDelegationConnectors"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedDelegationConnectorRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new ComposedStructureAssembly_LeftCurlyBracketKeyword_5_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," providedDelegationConnectors+=ProvidedDelegationConnector)* +protected class ComposedStructureAssembly_Group_5_3 extends GroupToken { + + public ComposedStructureAssembly_Group_5_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getGroup_5_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_ProvidedDelegationConnectorsAssignment_5_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class ComposedStructureAssembly_CommaKeyword_5_3_0 extends KeywordToken { + + public ComposedStructureAssembly_CommaKeyword_5_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_5_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_ProvidedDelegationConnectorsAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// providedDelegationConnectors+=ProvidedDelegationConnector +protected class ComposedStructureAssembly_ProvidedDelegationConnectorsAssignment_5_3_1 extends AssignmentToken { + + public ComposedStructureAssembly_ProvidedDelegationConnectorsAssignment_5_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsAssignment_5_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedDelegationConnectors",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedDelegationConnectors"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedDelegationConnectorRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new ComposedStructureAssembly_CommaKeyword_5_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class ComposedStructureAssembly_RightCurlyBracketKeyword_5_4 extends KeywordToken { + + public ComposedStructureAssembly_RightCurlyBracketKeyword_5_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_5_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_5_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_ProvidedDelegationConnectorsAssignment_5_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// ("requiredDelegationConnectors" "{" requiredDelegationConnectors+=RequiredDelegationConnector ("," +// requiredDelegationConnectors+=RequiredDelegationConnector)* "}")? +protected class ComposedStructureAssembly_Group_6 extends GroupToken { + + public ComposedStructureAssembly_Group_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getGroup_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_RightCurlyBracketKeyword_6_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "requiredDelegationConnectors" +protected class ComposedStructureAssembly_RequiredDelegationConnectorsKeyword_6_0 extends KeywordToken { + + public ComposedStructureAssembly_RequiredDelegationConnectorsKeyword_6_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsKeyword_6_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_5(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_Group_4(lastRuleCallOrigin, this, 1, inst); + case 2: return new ComposedStructureAssembly_Group_3(lastRuleCallOrigin, this, 2, inst); + case 3: return new ComposedStructureAssembly_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 3, inst); + default: return null; + } + } + +} + +// "{" +protected class ComposedStructureAssembly_LeftCurlyBracketKeyword_6_1 extends KeywordToken { + + public ComposedStructureAssembly_LeftCurlyBracketKeyword_6_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_6_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_RequiredDelegationConnectorsKeyword_6_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// requiredDelegationConnectors+=RequiredDelegationConnector +protected class ComposedStructureAssembly_RequiredDelegationConnectorsAssignment_6_2 extends AssignmentToken { + + public ComposedStructureAssembly_RequiredDelegationConnectorsAssignment_6_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsAssignment_6_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredDelegationConnectors",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredDelegationConnectors"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredDelegationConnectorRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_2_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new ComposedStructureAssembly_LeftCurlyBracketKeyword_6_1(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + +// ("," requiredDelegationConnectors+=RequiredDelegationConnector)* +protected class ComposedStructureAssembly_Group_6_3 extends GroupToken { + + public ComposedStructureAssembly_Group_6_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getGroup_6_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_RequiredDelegationConnectorsAssignment_6_3_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "," +protected class ComposedStructureAssembly_CommaKeyword_6_3_0 extends KeywordToken { + + public ComposedStructureAssembly_CommaKeyword_6_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_6_3_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_6_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_RequiredDelegationConnectorsAssignment_6_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + +// requiredDelegationConnectors+=RequiredDelegationConnector +protected class ComposedStructureAssembly_RequiredDelegationConnectorsAssignment_6_3_1 extends AssignmentToken { + + public ComposedStructureAssembly_RequiredDelegationConnectorsAssignment_6_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsAssignment_6_3_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_Group(this, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredDelegationConnectors",false)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredDelegationConnectors"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredDelegationConnectorRule().getType().getClassifier())) { + type = AssignmentType.PARSER_RULE_CALL; + element = grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_3_1_0(); + consumed = obj; + return param; + } + } + return null; + } + + @Override + public AbstractToken createFollowerAfterReturn(AbstractToken next, int actIndex, int index, IEObjectConsumer inst) { + if(value == inst.getEObject() && !inst.isConsumed()) return null; + switch(index) { + case 0: return new ComposedStructureAssembly_CommaKeyword_6_3_0(lastRuleCallOrigin, next, actIndex, consumed); + default: return null; + } + } +} + + +// "}" +protected class ComposedStructureAssembly_RightCurlyBracketKeyword_6_4 extends KeywordToken { + + public ComposedStructureAssembly_RightCurlyBracketKeyword_6_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_6_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_6_3(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_RequiredDelegationConnectorsAssignment_6_2(lastRuleCallOrigin, this, 1, inst); + default: return null; + } + } + +} + + +// "}" +protected class ComposedStructureAssembly_RightCurlyBracketKeyword_7 extends KeywordToken { + + public ComposedStructureAssembly_RightCurlyBracketKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_7(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ComposedStructureAssembly_Group_6(lastRuleCallOrigin, this, 0, inst); + case 1: return new ComposedStructureAssembly_Group_5(lastRuleCallOrigin, this, 1, inst); + case 2: return new ComposedStructureAssembly_Group_4(lastRuleCallOrigin, this, 2, inst); + case 3: return new ComposedStructureAssembly_Group_3(lastRuleCallOrigin, this, 3, inst); + case 4: return new ComposedStructureAssembly_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 4, inst); + default: return null; + } + } + +} + + +/************ end Rule ComposedStructureAssembly ****************/ + + +/************ begin Rule AssemblyContext **************** + * + * AssemblyContext returns repository_composites::AssemblyContext: + * "AssemblyContext" name=EString "{" "encapsulatedComponent" + * encapsulatedComponent=[repository::RepositoryComponent|EString] "}"; + * + **/ + +// "AssemblyContext" name=EString "{" "encapsulatedComponent" +// encapsulatedComponent=[repository::RepositoryComponent|EString] "}" +protected class AssemblyContext_Group extends GroupToken { + + public AssemblyContext_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getAssemblyContextAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyContext_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getAssemblyContextRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "AssemblyContext" +protected class AssemblyContext_AssemblyContextKeyword_0 extends KeywordToken { + + public AssemblyContext_AssemblyContextKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyContextAccess().getAssemblyContextKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class AssemblyContext_NameAssignment_1 extends AssignmentToken { + + public AssemblyContext_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getAssemblyContextAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyContext_AssemblyContextKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAssemblyContextAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getAssemblyContextAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class AssemblyContext_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public AssemblyContext_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyContextAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyContext_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "encapsulatedComponent" +protected class AssemblyContext_EncapsulatedComponentKeyword_3 extends KeywordToken { + + public AssemblyContext_EncapsulatedComponentKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyContextAccess().getEncapsulatedComponentKeyword_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyContext_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// encapsulatedComponent=[repository::RepositoryComponent|EString] +protected class AssemblyContext_EncapsulatedComponentAssignment_4 extends AssignmentToken { + + public AssemblyContext_EncapsulatedComponentAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getAssemblyContextAccess().getEncapsulatedComponentAssignment_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyContext_EncapsulatedComponentKeyword_3(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("encapsulatedComponent",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("encapsulatedComponent"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getAssemblyContextAccess().getEncapsulatedComponentRepositoryComponentCrossReference_4_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getAssemblyContextAccess().getEncapsulatedComponentRepositoryComponentCrossReference_4_0(); + return obj; + } + } + return null; + } + +} + +// "}" +protected class AssemblyContext_RightCurlyBracketKeyword_5 extends KeywordToken { + + public AssemblyContext_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyContextAccess().getRightCurlyBracketKeyword_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyContext_EncapsulatedComponentAssignment_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + + +/************ end Rule AssemblyContext ****************/ + + +/************ begin Rule AssemblyConnector **************** + * + * AssemblyConnector returns repository_composites::AssemblyConnector: + * "AssemblyConnector" name=EString "{" "requiredRole" requiredRole=[repository::RequiredRole|EString] "providedRole" + * providedRole=[repository::ProvidedRole|EString] "providingAssemblyContext" + * providingAssemblyContext=[repository_composites::AssemblyContext|EString] "requiringAssemblyContext" + * requiringAssemblyContext=[repository_composites::AssemblyContext|EString] "}"; + * + **/ + +// "AssemblyConnector" name=EString "{" "requiredRole" requiredRole=[repository::RequiredRole|EString] "providedRole" +// providedRole=[repository::ProvidedRole|EString] "providingAssemblyContext" +// providingAssemblyContext=[repository_composites::AssemblyContext|EString] "requiringAssemblyContext" +// requiringAssemblyContext=[repository_composites::AssemblyContext|EString] "}" +protected class AssemblyConnector_Group extends GroupToken { + + public AssemblyConnector_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_RightCurlyBracketKeyword_11(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getAssemblyConnectorRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "AssemblyConnector" +protected class AssemblyConnector_AssemblyConnectorKeyword_0 extends KeywordToken { + + public AssemblyConnector_AssemblyConnectorKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getAssemblyConnectorKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class AssemblyConnector_NameAssignment_1 extends AssignmentToken { + + public AssemblyConnector_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_AssemblyConnectorKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAssemblyConnectorAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getAssemblyConnectorAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class AssemblyConnector_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public AssemblyConnector_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "requiredRole" +protected class AssemblyConnector_RequiredRoleKeyword_3 extends KeywordToken { + + public AssemblyConnector_RequiredRoleKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getRequiredRoleKeyword_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// requiredRole=[repository::RequiredRole|EString] +protected class AssemblyConnector_RequiredRoleAssignment_4 extends AssignmentToken { + + public AssemblyConnector_RequiredRoleAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getRequiredRoleAssignment_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_RequiredRoleKeyword_3(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiredRole",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiredRole"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getAssemblyConnectorAccess().getRequiredRoleRequiredRoleCrossReference_4_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getAssemblyConnectorAccess().getRequiredRoleRequiredRoleCrossReference_4_0(); + return obj; + } + } + return null; + } + +} + +// "providedRole" +protected class AssemblyConnector_ProvidedRoleKeyword_5 extends KeywordToken { + + public AssemblyConnector_ProvidedRoleKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getProvidedRoleKeyword_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_RequiredRoleAssignment_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// providedRole=[repository::ProvidedRole|EString] +protected class AssemblyConnector_ProvidedRoleAssignment_6 extends AssignmentToken { + + public AssemblyConnector_ProvidedRoleAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getProvidedRoleAssignment_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_ProvidedRoleKeyword_5(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providedRole",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providedRole"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getAssemblyConnectorAccess().getProvidedRoleProvidedRoleCrossReference_6_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getAssemblyConnectorAccess().getProvidedRoleProvidedRoleCrossReference_6_0(); + return obj; + } + } + return null; + } + +} + +// "providingAssemblyContext" +protected class AssemblyConnector_ProvidingAssemblyContextKeyword_7 extends KeywordToken { + + public AssemblyConnector_ProvidingAssemblyContextKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getProvidingAssemblyContextKeyword_7(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_ProvidedRoleAssignment_6(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// providingAssemblyContext=[repository_composites::AssemblyContext|EString] +protected class AssemblyConnector_ProvidingAssemblyContextAssignment_8 extends AssignmentToken { + + public AssemblyConnector_ProvidingAssemblyContextAssignment_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getProvidingAssemblyContextAssignment_8(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_ProvidingAssemblyContextKeyword_7(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("providingAssemblyContext",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("providingAssemblyContext"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getAssemblyConnectorAccess().getProvidingAssemblyContextAssemblyContextCrossReference_8_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getAssemblyConnectorAccess().getProvidingAssemblyContextAssemblyContextCrossReference_8_0(); + return obj; + } + } + return null; + } + +} + +// "requiringAssemblyContext" +protected class AssemblyConnector_RequiringAssemblyContextKeyword_9 extends KeywordToken { + + public AssemblyConnector_RequiringAssemblyContextKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getRequiringAssemblyContextKeyword_9(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_ProvidingAssemblyContextAssignment_8(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// requiringAssemblyContext=[repository_composites::AssemblyContext|EString] +protected class AssemblyConnector_RequiringAssemblyContextAssignment_10 extends AssignmentToken { + + public AssemblyConnector_RequiringAssemblyContextAssignment_10(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getRequiringAssemblyContextAssignment_10(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_RequiringAssemblyContextKeyword_9(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("requiringAssemblyContext",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("requiringAssemblyContext"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getAssemblyConnectorAccess().getRequiringAssemblyContextAssemblyContextCrossReference_10_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getAssemblyConnectorAccess().getRequiringAssemblyContextAssemblyContextCrossReference_10_0(); + return obj; + } + } + return null; + } + +} + +// "}" +protected class AssemblyConnector_RightCurlyBracketKeyword_11 extends KeywordToken { + + public AssemblyConnector_RightCurlyBracketKeyword_11(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getAssemblyConnectorAccess().getRightCurlyBracketKeyword_11(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new AssemblyConnector_RequiringAssemblyContextAssignment_10(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + + +/************ end Rule AssemblyConnector ****************/ + + +/************ begin Rule ProvidedDelegationConnector **************** + * + * ProvidedDelegationConnector returns repository_composites::ProvidedDelegationConnector: + * "ProvidedDelegationConnector" name=EString "{" "assemblyContext" + * assemblyContext=[repository_composites::AssemblyContext|EString] "innerProvidedRole" + * innerProvidedRole=[repository::ProvidedRole|EString] "outerProvidedRole" + * outerProvidedRole=[repository::ProvidedRole|EString] "}"; + * + **/ + +// "ProvidedDelegationConnector" name=EString "{" "assemblyContext" +// assemblyContext=[repository_composites::AssemblyContext|EString] "innerProvidedRole" +// innerProvidedRole=[repository::ProvidedRole|EString] "outerProvidedRole" +// outerProvidedRole=[repository::ProvidedRole|EString] "}" +protected class ProvidedDelegationConnector_Group extends GroupToken { + + public ProvidedDelegationConnector_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getProvidedDelegationConnectorRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "ProvidedDelegationConnector" +protected class ProvidedDelegationConnector_ProvidedDelegationConnectorKeyword_0 extends KeywordToken { + + public ProvidedDelegationConnector_ProvidedDelegationConnectorKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getProvidedDelegationConnectorKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class ProvidedDelegationConnector_NameAssignment_1 extends AssignmentToken { + + public ProvidedDelegationConnector_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_ProvidedDelegationConnectorKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getProvidedDelegationConnectorAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getProvidedDelegationConnectorAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class ProvidedDelegationConnector_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public ProvidedDelegationConnector_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "assemblyContext" +protected class ProvidedDelegationConnector_AssemblyContextKeyword_3 extends KeywordToken { + + public ProvidedDelegationConnector_AssemblyContextKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getAssemblyContextKeyword_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// assemblyContext=[repository_composites::AssemblyContext|EString] +protected class ProvidedDelegationConnector_AssemblyContextAssignment_4 extends AssignmentToken { + + public ProvidedDelegationConnector_AssemblyContextAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getAssemblyContextAssignment_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_AssemblyContextKeyword_3(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("assemblyContext",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assemblyContext"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedDelegationConnectorAccess().getAssemblyContextAssemblyContextCrossReference_4_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getProvidedDelegationConnectorAccess().getAssemblyContextAssemblyContextCrossReference_4_0(); + return obj; + } + } + return null; + } + +} + +// "innerProvidedRole" +protected class ProvidedDelegationConnector_InnerProvidedRoleKeyword_5 extends KeywordToken { + + public ProvidedDelegationConnector_InnerProvidedRoleKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getInnerProvidedRoleKeyword_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_AssemblyContextAssignment_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// innerProvidedRole=[repository::ProvidedRole|EString] +protected class ProvidedDelegationConnector_InnerProvidedRoleAssignment_6 extends AssignmentToken { + + public ProvidedDelegationConnector_InnerProvidedRoleAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getInnerProvidedRoleAssignment_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_InnerProvidedRoleKeyword_5(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("innerProvidedRole",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("innerProvidedRole"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedDelegationConnectorAccess().getInnerProvidedRoleProvidedRoleCrossReference_6_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getProvidedDelegationConnectorAccess().getInnerProvidedRoleProvidedRoleCrossReference_6_0(); + return obj; + } + } + return null; + } + +} + +// "outerProvidedRole" +protected class ProvidedDelegationConnector_OuterProvidedRoleKeyword_7 extends KeywordToken { + + public ProvidedDelegationConnector_OuterProvidedRoleKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getOuterProvidedRoleKeyword_7(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_InnerProvidedRoleAssignment_6(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// outerProvidedRole=[repository::ProvidedRole|EString] +protected class ProvidedDelegationConnector_OuterProvidedRoleAssignment_8 extends AssignmentToken { + + public ProvidedDelegationConnector_OuterProvidedRoleAssignment_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getOuterProvidedRoleAssignment_8(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_OuterProvidedRoleKeyword_7(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("outerProvidedRole",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("outerProvidedRole"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getProvidedDelegationConnectorAccess().getOuterProvidedRoleProvidedRoleCrossReference_8_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getProvidedDelegationConnectorAccess().getOuterProvidedRoleProvidedRoleCrossReference_8_0(); + return obj; + } + } + return null; + } + +} + +// "}" +protected class ProvidedDelegationConnector_RightCurlyBracketKeyword_9 extends KeywordToken { + + public ProvidedDelegationConnector_RightCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getProvidedDelegationConnectorAccess().getRightCurlyBracketKeyword_9(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new ProvidedDelegationConnector_OuterProvidedRoleAssignment_8(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + + +/************ end Rule ProvidedDelegationConnector ****************/ + + +/************ begin Rule RequiredDelegationConnector **************** + * + * RequiredDelegationConnector returns repository_composites::RequiredDelegationConnector: + * "RequiredDelegationConnector" name=EString "{" "assemblyContext" + * assemblyContext=[repository_composites::AssemblyContext|EString] "innerRequiredRole" + * innerRequiredRole=[repository::RequiredRole|EString] "outerRequiredRole" + * outerRequiredRole=[repository::RequiredRole|EString] "}"; + * + **/ + +// "RequiredDelegationConnector" name=EString "{" "assemblyContext" +// assemblyContext=[repository_composites::AssemblyContext|EString] "innerRequiredRole" +// innerRequiredRole=[repository::RequiredRole|EString] "outerRequiredRole" +// outerRequiredRole=[repository::RequiredRole|EString] "}" +protected class RequiredDelegationConnector_Group extends GroupToken { + + public RequiredDelegationConnector_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Group getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getGroup(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if(getEObject().eClass() != grammarAccess.getRequiredDelegationConnectorRule().getType().getClassifier()) + return null; + return eObjectConsumer; + } + +} + +// "RequiredDelegationConnector" +protected class RequiredDelegationConnector_RequiredDelegationConnectorKeyword_0 extends KeywordToken { + + public RequiredDelegationConnector_RequiredDelegationConnectorKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getRequiredDelegationConnectorKeyword_0(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst); + } + } + +} + +// name=EString +protected class RequiredDelegationConnector_NameAssignment_1 extends AssignmentToken { + + public RequiredDelegationConnector_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getNameAssignment_1(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_RequiredDelegationConnectorKeyword_0(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("name",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name"); + if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getRequiredDelegationConnectorAccess().getNameEStringParserRuleCall_1_0(), value, null)) { + type = AssignmentType.DATATYPE_RULE_CALL; + element = grammarAccess.getRequiredDelegationConnectorAccess().getNameEStringParserRuleCall_1_0(); + return obj; + } + return null; + } + +} + +// "{" +protected class RequiredDelegationConnector_LeftCurlyBracketKeyword_2 extends KeywordToken { + + public RequiredDelegationConnector_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getLeftCurlyBracketKeyword_2(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_NameAssignment_1(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// "assemblyContext" +protected class RequiredDelegationConnector_AssemblyContextKeyword_3 extends KeywordToken { + + public RequiredDelegationConnector_AssemblyContextKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getAssemblyContextKeyword_3(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// assemblyContext=[repository_composites::AssemblyContext|EString] +protected class RequiredDelegationConnector_AssemblyContextAssignment_4 extends AssignmentToken { + + public RequiredDelegationConnector_AssemblyContextAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getAssemblyContextAssignment_4(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_AssemblyContextKeyword_3(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("assemblyContext",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("assemblyContext"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredDelegationConnectorAccess().getAssemblyContextAssemblyContextCrossReference_4_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getRequiredDelegationConnectorAccess().getAssemblyContextAssemblyContextCrossReference_4_0(); + return obj; + } + } + return null; + } + +} + +// "innerRequiredRole" +protected class RequiredDelegationConnector_InnerRequiredRoleKeyword_5 extends KeywordToken { + + public RequiredDelegationConnector_InnerRequiredRoleKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getInnerRequiredRoleKeyword_5(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_AssemblyContextAssignment_4(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// innerRequiredRole=[repository::RequiredRole|EString] +protected class RequiredDelegationConnector_InnerRequiredRoleAssignment_6 extends AssignmentToken { + + public RequiredDelegationConnector_InnerRequiredRoleAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getInnerRequiredRoleAssignment_6(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_InnerRequiredRoleKeyword_5(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("innerRequiredRole",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("innerRequiredRole"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredDelegationConnectorAccess().getInnerRequiredRoleRequiredRoleCrossReference_6_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getRequiredDelegationConnectorAccess().getInnerRequiredRoleRequiredRoleCrossReference_6_0(); + return obj; + } + } + return null; + } + +} + +// "outerRequiredRole" +protected class RequiredDelegationConnector_OuterRequiredRoleKeyword_7 extends KeywordToken { + + public RequiredDelegationConnector_OuterRequiredRoleKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getOuterRequiredRoleKeyword_7(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_InnerRequiredRoleAssignment_6(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + +// outerRequiredRole=[repository::RequiredRole|EString] +protected class RequiredDelegationConnector_OuterRequiredRoleAssignment_8 extends AssignmentToken { + + public RequiredDelegationConnector_OuterRequiredRoleAssignment_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Assignment getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getOuterRequiredRoleAssignment_8(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_OuterRequiredRoleKeyword_7(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + + @Override + public IEObjectConsumer tryConsume() { + if((value = eObjectConsumer.getConsumable("outerRequiredRole",true)) == null) return null; + IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("outerRequiredRole"); + if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl + IEObjectConsumer param = createEObjectConsumer((EObject)value); + if(param.isInstanceOf(grammarAccess.getRequiredDelegationConnectorAccess().getOuterRequiredRoleRequiredRoleCrossReference_8_0().getType().getClassifier())) { + type = AssignmentType.CROSS_REFERENCE; + element = grammarAccess.getRequiredDelegationConnectorAccess().getOuterRequiredRoleRequiredRoleCrossReference_8_0(); + return obj; + } + } + return null; + } + +} + +// "}" +protected class RequiredDelegationConnector_RightCurlyBracketKeyword_9 extends KeywordToken { + + public RequiredDelegationConnector_RightCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) { + super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer); + } + + @Override + public Keyword getGrammarElement() { + return grammarAccess.getRequiredDelegationConnectorAccess().getRightCurlyBracketKeyword_9(); + } + + @Override + public AbstractToken createFollower(int index, IEObjectConsumer inst) { + switch(index) { + case 0: return new RequiredDelegationConnector_OuterRequiredRoleAssignment_8(lastRuleCallOrigin, this, 0, inst); + default: return null; + } + } + +} + + +/************ end Rule RequiredDelegationConnector ****************/ + +} diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/MyDslTestAntlrTokenFileProvider.java b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/MyDslTestAntlrTokenFileProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..a59a10eed96f01761f39a0c66f82efe76609fe7f --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/MyDslTestAntlrTokenFileProvider.java @@ -0,0 +1,15 @@ +/* +* generated by Xtext +*/ +package org.xtext.example.mydsl.parser.antlr; + +import java.io.InputStream; +import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider; + +public class MyDslTestAntlrTokenFileProvider implements IAntlrTokenFileProvider { + + public InputStream getAntlrTokenFile() { + ClassLoader classLoader = getClass().getClassLoader(); + return classLoader.getResourceAsStream("org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.tokens"); + } +} diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/MyDslTestParser.java b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/MyDslTestParser.java new file mode 100644 index 0000000000000000000000000000000000000000..1cb8e6619dc9f00e92683b4e315cbb927980a913 --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/MyDslTestParser.java @@ -0,0 +1,39 @@ +/* +* generated by Xtext +*/ +package org.xtext.example.mydsl.parser.antlr; + +import com.google.inject.Inject; + +import org.eclipse.xtext.parser.antlr.XtextTokenStream; +import org.xtext.example.mydsl.services.MyDslTestGrammarAccess; + +public class MyDslTestParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser { + + @Inject + private MyDslTestGrammarAccess grammarAccess; + + @Override + protected void setInitialHiddenTokens(XtextTokenStream tokenStream) { + tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT"); + } + + @Override + protected org.xtext.example.mydsl.parser.antlr.internal.InternalMyDslTestParser createParser(XtextTokenStream stream) { + return new org.xtext.example.mydsl.parser.antlr.internal.InternalMyDslTestParser(stream, getGrammarAccess()); + } + + @Override + protected String getDefaultRuleName() { + return "Repository"; + } + + public MyDslTestGrammarAccess getGrammarAccess() { + return this.grammarAccess; + } + + public void setGrammarAccess(MyDslTestGrammarAccess grammarAccess) { + this.grammarAccess = grammarAccess; + } + +} diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g new file mode 100644 index 0000000000000000000000000000000000000000..88356f220e08bc76039adfd1519042c6bdecefac --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g @@ -0,0 +1,2719 @@ +/* +* generated by Xtext +*/ +grammar InternalMyDslTest; + +options { + superClass=AbstractInternalAntlrParser; + +} + +@lexer::header { +package org.xtext.example.mydsl.parser.antlr.internal; + +// Hack: Use our own Lexer superclass by means of import. +// Currently there is no other way to specify the superclass for the lexer. +import org.eclipse.xtext.parser.antlr.Lexer; +} + +@parser::header { +package org.xtext.example.mydsl.parser.antlr.internal; + +import org.eclipse.xtext.*; +import org.eclipse.xtext.parser.*; +import org.eclipse.xtext.parser.impl.*; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.common.util.Enumerator; +import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; +import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; +import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; +import org.xtext.example.mydsl.services.MyDslTestGrammarAccess; + +} + +@parser::members { + + private MyDslTestGrammarAccess grammarAccess; + + public InternalMyDslTestParser(TokenStream input, MyDslTestGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "Repository"; + } + + @Override + protected MyDslTestGrammarAccess getGrammarAccess() { + return grammarAccess; + } +} + +@rulecatch { + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } +} + + + + +// Entry rule entryRuleRepository +entryRuleRepository returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getRepositoryRule()); } + iv_ruleRepository=ruleRepository + { $current=$iv_ruleRepository.current; } + EOF +; + +// Rule Repository +ruleRepository returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='Repository' + { + newLeafNode(otherlv_0, grammarAccess.getRepositoryAccess().getRepositoryKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_2()); + } +( otherlv_3='datatypes' + { + newLeafNode(otherlv_3, grammarAccess.getRepositoryAccess().getDatatypesKeyword_3_0()); + } + otherlv_4='{' + { + newLeafNode(otherlv_4, grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_3_1()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryAccess().getDatatypesDataTypeParserRuleCall_3_2_0()); + } + lv_datatypes_5_0=ruleDataType { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + $current, + "datatypes", + lv_datatypes_5_0, + "DataType"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_6=',' + { + newLeafNode(otherlv_6, grammarAccess.getRepositoryAccess().getCommaKeyword_3_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryAccess().getDatatypesDataTypeParserRuleCall_3_3_1_0()); + } + lv_datatypes_7_0=ruleDataType { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + $current, + "datatypes", + lv_datatypes_7_0, + "DataType"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_8='}' + { + newLeafNode(otherlv_8, grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_3_4()); + } +)?( otherlv_9='interfaces' + { + newLeafNode(otherlv_9, grammarAccess.getRepositoryAccess().getInterfacesKeyword_4_0()); + } + otherlv_10='{' + { + newLeafNode(otherlv_10, grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_4_1()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryAccess().getInterfacesInterfaceParserRuleCall_4_2_0()); + } + lv_interfaces_11_0=ruleInterface { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + $current, + "interfaces", + lv_interfaces_11_0, + "Interface"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_12=',' + { + newLeafNode(otherlv_12, grammarAccess.getRepositoryAccess().getCommaKeyword_4_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryAccess().getInterfacesInterfaceParserRuleCall_4_3_1_0()); + } + lv_interfaces_13_0=ruleInterface { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + $current, + "interfaces", + lv_interfaces_13_0, + "Interface"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_14='}' + { + newLeafNode(otherlv_14, grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_4_4()); + } +)?( otherlv_15='components' + { + newLeafNode(otherlv_15, grammarAccess.getRepositoryAccess().getComponentsKeyword_5_0()); + } + otherlv_16='{' + { + newLeafNode(otherlv_16, grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_5_1()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryAccess().getComponentsRepositoryComponentParserRuleCall_5_2_0()); + } + lv_components_17_0=ruleRepositoryComponent { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + $current, + "components", + lv_components_17_0, + "RepositoryComponent"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_18=',' + { + newLeafNode(otherlv_18, grammarAccess.getRepositoryAccess().getCommaKeyword_5_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryAccess().getComponentsRepositoryComponentParserRuleCall_5_3_1_0()); + } + lv_components_19_0=ruleRepositoryComponent { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + $current, + "components", + lv_components_19_0, + "RepositoryComponent"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_20='}' + { + newLeafNode(otherlv_20, grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_5_4()); + } +)? otherlv_21='}' + { + newLeafNode(otherlv_21, grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_6()); + } +) +; + + + + + +// Entry rule entryRuleDataType +entryRuleDataType returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getDataTypeRule()); } + iv_ruleDataType=ruleDataType + { $current=$iv_ruleDataType.current; } + EOF +; + +// Rule DataType +ruleDataType returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getDataTypeAccess().getCollectionDataTypeParserRuleCall_0()); + } + this_CollectionDataType_0=ruleCollectionDataType + { + $current = $this_CollectionDataType_0.current; + afterParserOrEnumRuleCall(); + } + + | + { + newCompositeNode(grammarAccess.getDataTypeAccess().getCompositeDataTypeParserRuleCall_1()); + } + this_CompositeDataType_1=ruleCompositeDataType + { + $current = $this_CompositeDataType_1.current; + afterParserOrEnumRuleCall(); + } + + | + { + newCompositeNode(grammarAccess.getDataTypeAccess().getPrimitiveDataTypeParserRuleCall_2()); + } + this_PrimitiveDataType_2=rulePrimitiveDataType + { + $current = $this_PrimitiveDataType_2.current; + afterParserOrEnumRuleCall(); + } +) +; + + + + + +// Entry rule entryRuleRepositoryComponent +entryRuleRepositoryComponent returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getRepositoryComponentRule()); } + iv_ruleRepositoryComponent=ruleRepositoryComponent + { $current=$iv_ruleRepositoryComponent.current; } + EOF +; + +// Rule RepositoryComponent +ruleRepositoryComponent returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( + { + newCompositeNode(grammarAccess.getRepositoryComponentAccess().getRepositoryComponent_ImplParserRuleCall_0()); + } + this_RepositoryComponent_Impl_0=ruleRepositoryComponent_Impl + { + $current = $this_RepositoryComponent_Impl_0.current; + afterParserOrEnumRuleCall(); + } + + | + { + newCompositeNode(grammarAccess.getRepositoryComponentAccess().getBasicComponentParserRuleCall_1()); + } + this_BasicComponent_1=ruleBasicComponent + { + $current = $this_BasicComponent_1.current; + afterParserOrEnumRuleCall(); + } + + | + { + newCompositeNode(grammarAccess.getRepositoryComponentAccess().getCompositeComponentParserRuleCall_2()); + } + this_CompositeComponent_2=ruleCompositeComponent + { + $current = $this_CompositeComponent_2.current; + afterParserOrEnumRuleCall(); + } + + | + { + newCompositeNode(grammarAccess.getRepositoryComponentAccess().getSubSystemParserRuleCall_3()); + } + this_SubSystem_3=ruleSubSystem + { + $current = $this_SubSystem_3.current; + afterParserOrEnumRuleCall(); + } +) +; + + + + + +// Entry rule entryRuleEString +entryRuleEString returns [String current=null] + : + { newCompositeNode(grammarAccess.getEStringRule()); } + iv_ruleEString=ruleEString + { $current=$iv_ruleEString.current.getText(); } + EOF +; + +// Rule EString +ruleEString returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] + @init { enterRule(); + } + @after { leaveRule(); }: +( this_STRING_0=RULE_STRING { + $current.merge(this_STRING_0); + } + + { + newLeafNode(this_STRING_0, grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); + } + + | this_ID_1=RULE_ID { + $current.merge(this_ID_1); + } + + { + newLeafNode(this_ID_1, grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); + } +) + ; + + + + + +// Entry rule entryRuleInterface +entryRuleInterface returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getInterfaceRule()); } + iv_ruleInterface=ruleInterface + { $current=$iv_ruleInterface.current; } + EOF +; + +// Rule Interface +ruleInterface returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='Interface' + { + newLeafNode(otherlv_0, grammarAccess.getInterfaceAccess().getInterfaceKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getInterfaceAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getInterfaceRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_2()); + } +( otherlv_3='parentInterfaces' + { + newLeafNode(otherlv_3, grammarAccess.getInterfaceAccess().getParentInterfacesKeyword_3_0()); + } + otherlv_4='(' + { + newLeafNode(otherlv_4, grammarAccess.getInterfaceAccess().getLeftParenthesisKeyword_3_1()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getInterfaceRule()); + } + } + { + newCompositeNode(grammarAccess.getInterfaceAccess().getParentInterfacesInterfaceCrossReference_3_2_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_6=',' + { + newLeafNode(otherlv_6, grammarAccess.getInterfaceAccess().getCommaKeyword_3_3_0()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getInterfaceRule()); + } + } + { + newCompositeNode(grammarAccess.getInterfaceAccess().getParentInterfacesInterfaceCrossReference_3_3_1_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_8=')' + { + newLeafNode(otherlv_8, grammarAccess.getInterfaceAccess().getRightParenthesisKeyword_3_4()); + } +)?( otherlv_9='signatures' + { + newLeafNode(otherlv_9, grammarAccess.getInterfaceAccess().getSignaturesKeyword_4_0()); + } + otherlv_10='{' + { + newLeafNode(otherlv_10, grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_4_1()); + } +( +( + { + newCompositeNode(grammarAccess.getInterfaceAccess().getSignaturesSignatureParserRuleCall_4_2_0()); + } + lv_signatures_11_0=ruleSignature { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getInterfaceRule()); + } + add( + $current, + "signatures", + lv_signatures_11_0, + "Signature"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_12=',' + { + newLeafNode(otherlv_12, grammarAccess.getInterfaceAccess().getCommaKeyword_4_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getInterfaceAccess().getSignaturesSignatureParserRuleCall_4_3_1_0()); + } + lv_signatures_13_0=ruleSignature { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getInterfaceRule()); + } + add( + $current, + "signatures", + lv_signatures_13_0, + "Signature"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_14='}' + { + newLeafNode(otherlv_14, grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_4_4()); + } +)? otherlv_15='}' + { + newLeafNode(otherlv_15, grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_5()); + } +) +; + + + + + +// Entry rule entryRuleRepositoryComponent_Impl +entryRuleRepositoryComponent_Impl returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getRepositoryComponent_ImplRule()); } + iv_ruleRepositoryComponent_Impl=ruleRepositoryComponent_Impl + { $current=$iv_ruleRepositoryComponent_Impl.current; } + EOF +; + +// Rule RepositoryComponent_Impl +ruleRepositoryComponent_Impl returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='RepositoryComponent' + { + newLeafNode(otherlv_0, grammarAccess.getRepositoryComponent_ImplAccess().getRepositoryComponentKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getRepositoryComponent_ImplAccess().getLeftCurlyBracketKeyword_2()); + } +( otherlv_3='relationship' + { + newLeafNode(otherlv_3, grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipKeyword_3_0()); + } + otherlv_4='(' + { + newLeafNode(otherlv_4, grammarAccess.getRepositoryComponent_ImplAccess().getLeftParenthesisKeyword_3_1()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRepositoryComponent_ImplRule()); + } + } + { + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipRelationshipCrossReference_3_2_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_6=',' + { + newLeafNode(otherlv_6, grammarAccess.getRepositoryComponent_ImplAccess().getCommaKeyword_3_3_0()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRepositoryComponent_ImplRule()); + } + } + { + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipRelationshipCrossReference_3_3_1_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_8=')' + { + newLeafNode(otherlv_8, grammarAccess.getRepositoryComponent_ImplAccess().getRightParenthesisKeyword_3_4()); + } +)?( otherlv_9='providedRoles' + { + newLeafNode(otherlv_9, grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesKeyword_4_0()); + } + otherlv_10='{' + { + newLeafNode(otherlv_10, grammarAccess.getRepositoryComponent_ImplAccess().getLeftCurlyBracketKeyword_4_1()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesProvidedRoleParserRuleCall_4_2_0()); + } + lv_providedRoles_11_0=ruleProvidedRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + add( + $current, + "providedRoles", + lv_providedRoles_11_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_12=',' + { + newLeafNode(otherlv_12, grammarAccess.getRepositoryComponent_ImplAccess().getCommaKeyword_4_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesProvidedRoleParserRuleCall_4_3_1_0()); + } + lv_providedRoles_13_0=ruleProvidedRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + add( + $current, + "providedRoles", + lv_providedRoles_13_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_14='}' + { + newLeafNode(otherlv_14, grammarAccess.getRepositoryComponent_ImplAccess().getRightCurlyBracketKeyword_4_4()); + } +)?( otherlv_15='requiredRoles' + { + newLeafNode(otherlv_15, grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesKeyword_5_0()); + } + otherlv_16='{' + { + newLeafNode(otherlv_16, grammarAccess.getRepositoryComponent_ImplAccess().getLeftCurlyBracketKeyword_5_1()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesRequiredRoleParserRuleCall_5_2_0()); + } + lv_requiredRoles_17_0=ruleRequiredRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + add( + $current, + "requiredRoles", + lv_requiredRoles_17_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_18=',' + { + newLeafNode(otherlv_18, grammarAccess.getRepositoryComponent_ImplAccess().getCommaKeyword_5_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesRequiredRoleParserRuleCall_5_3_1_0()); + } + lv_requiredRoles_19_0=ruleRequiredRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + add( + $current, + "requiredRoles", + lv_requiredRoles_19_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_20='}' + { + newLeafNode(otherlv_20, grammarAccess.getRepositoryComponent_ImplAccess().getRightCurlyBracketKeyword_5_4()); + } +)? otherlv_21='}' + { + newLeafNode(otherlv_21, grammarAccess.getRepositoryComponent_ImplAccess().getRightCurlyBracketKeyword_6()); + } +) +; + + + + + +// Entry rule entryRuleCollectionDataType +entryRuleCollectionDataType returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getCollectionDataTypeRule()); } + iv_ruleCollectionDataType=ruleCollectionDataType + { $current=$iv_ruleCollectionDataType.current; } + EOF +; + +// Rule CollectionDataType +ruleCollectionDataType returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='CollectionDataType' + { + newLeafNode(otherlv_0, grammarAccess.getCollectionDataTypeAccess().getCollectionDataTypeKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getCollectionDataTypeAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCollectionDataTypeRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getCollectionDataTypeAccess().getLeftCurlyBracketKeyword_2()); + } + otherlv_3='innerType' + { + newLeafNode(otherlv_3, grammarAccess.getCollectionDataTypeAccess().getInnerTypeKeyword_3()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getCollectionDataTypeRule()); + } + } + { + newCompositeNode(grammarAccess.getCollectionDataTypeAccess().getInnerTypeDataTypeCrossReference_4_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_5='}' + { + newLeafNode(otherlv_5, grammarAccess.getCollectionDataTypeAccess().getRightCurlyBracketKeyword_5()); + } +) +; + + + + + +// Entry rule entryRuleCompositeDataType +entryRuleCompositeDataType returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getCompositeDataTypeRule()); } + iv_ruleCompositeDataType=ruleCompositeDataType + { $current=$iv_ruleCompositeDataType.current; } + EOF +; + +// Rule CompositeDataType +ruleCompositeDataType returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='CompositeDataType' + { + newLeafNode(otherlv_0, grammarAccess.getCompositeDataTypeAccess().getCompositeDataTypeKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeDataTypeRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getCompositeDataTypeAccess().getLeftCurlyBracketKeyword_2()); + } +( otherlv_3='parentTypes' + { + newLeafNode(otherlv_3, grammarAccess.getCompositeDataTypeAccess().getParentTypesKeyword_3_0()); + } + otherlv_4='(' + { + newLeafNode(otherlv_4, grammarAccess.getCompositeDataTypeAccess().getLeftParenthesisKeyword_3_1()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getCompositeDataTypeRule()); + } + } + { + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getParentTypesCompositeDataTypeCrossReference_3_2_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_6=',' + { + newLeafNode(otherlv_6, grammarAccess.getCompositeDataTypeAccess().getCommaKeyword_3_3_0()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getCompositeDataTypeRule()); + } + } + { + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getParentTypesCompositeDataTypeCrossReference_3_3_1_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_8=')' + { + newLeafNode(otherlv_8, grammarAccess.getCompositeDataTypeAccess().getRightParenthesisKeyword_3_4()); + } +)?( otherlv_9='innerDeclarations' + { + newLeafNode(otherlv_9, grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsKeyword_4_0()); + } + otherlv_10='{' + { + newLeafNode(otherlv_10, grammarAccess.getCompositeDataTypeAccess().getLeftCurlyBracketKeyword_4_1()); + } +( +( + { + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsInnerDeclarationParserRuleCall_4_2_0()); + } + lv_innerDeclarations_11_0=ruleInnerDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeDataTypeRule()); + } + add( + $current, + "innerDeclarations", + lv_innerDeclarations_11_0, + "InnerDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_12=',' + { + newLeafNode(otherlv_12, grammarAccess.getCompositeDataTypeAccess().getCommaKeyword_4_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsInnerDeclarationParserRuleCall_4_3_1_0()); + } + lv_innerDeclarations_13_0=ruleInnerDeclaration { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeDataTypeRule()); + } + add( + $current, + "innerDeclarations", + lv_innerDeclarations_13_0, + "InnerDeclaration"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_14='}' + { + newLeafNode(otherlv_14, grammarAccess.getCompositeDataTypeAccess().getRightCurlyBracketKeyword_4_4()); + } +)? otherlv_15='}' + { + newLeafNode(otherlv_15, grammarAccess.getCompositeDataTypeAccess().getRightCurlyBracketKeyword_5()); + } +) +; + + + + + +// Entry rule entryRulePrimitiveDataType +entryRulePrimitiveDataType returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getPrimitiveDataTypeRule()); } + iv_rulePrimitiveDataType=rulePrimitiveDataType + { $current=$iv_rulePrimitiveDataType.current; } + EOF +; + +// Rule PrimitiveDataType +rulePrimitiveDataType returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='PrimitiveDataType' + { + newLeafNode(otherlv_0, grammarAccess.getPrimitiveDataTypeAccess().getPrimitiveDataTypeKeyword_0()); + } + otherlv_1='{' + { + newLeafNode(otherlv_1, grammarAccess.getPrimitiveDataTypeAccess().getLeftCurlyBracketKeyword_1()); + } + otherlv_2='type' + { + newLeafNode(otherlv_2, grammarAccess.getPrimitiveDataTypeAccess().getTypeKeyword_2()); + } +( +( + { + newCompositeNode(grammarAccess.getPrimitiveDataTypeAccess().getTypePrimitiveTypeEnumEnumRuleCall_3_0()); + } + lv_type_3_0=rulePrimitiveTypeEnum { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPrimitiveDataTypeRule()); + } + set( + $current, + "type", + lv_type_3_0, + "PrimitiveTypeEnum"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_4='ref' + { + newLeafNode(otherlv_4, grammarAccess.getPrimitiveDataTypeAccess().getRefKeyword_4()); + } +( +( + { + newCompositeNode(grammarAccess.getPrimitiveDataTypeAccess().getNameEStringParserRuleCall_5_0()); + } + lv_name_5_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPrimitiveDataTypeRule()); + } + set( + $current, + "name", + lv_name_5_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_6='}' + { + newLeafNode(otherlv_6, grammarAccess.getPrimitiveDataTypeAccess().getRightCurlyBracketKeyword_6()); + } +) +; + + + + + +// Entry rule entryRuleInnerDeclaration +entryRuleInnerDeclaration returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getInnerDeclarationRule()); } + iv_ruleInnerDeclaration=ruleInnerDeclaration + { $current=$iv_ruleInnerDeclaration.current; } + EOF +; + +// Rule InnerDeclaration +ruleInnerDeclaration returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='InnerDeclaration' + { + newLeafNode(otherlv_0, grammarAccess.getInnerDeclarationAccess().getInnerDeclarationKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getInnerDeclarationAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getInnerDeclarationRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getInnerDeclarationAccess().getLeftCurlyBracketKeyword_2()); + } + otherlv_3='dataType' + { + newLeafNode(otherlv_3, grammarAccess.getInnerDeclarationAccess().getDataTypeKeyword_3()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getInnerDeclarationRule()); + } + } + { + newCompositeNode(grammarAccess.getInnerDeclarationAccess().getDataTypeDataTypeCrossReference_4_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_5='}' + { + newLeafNode(otherlv_5, grammarAccess.getInnerDeclarationAccess().getRightCurlyBracketKeyword_5()); + } +) +; + + + + + +// Entry rule entryRuleSignature +entryRuleSignature returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getSignatureRule()); } + iv_ruleSignature=ruleSignature + { $current=$iv_ruleSignature.current; } + EOF +; + +// Rule Signature +ruleSignature returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +((( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getSignatureRule()); + } + } + { + newCompositeNode(grammarAccess.getSignatureAccess().getReturnTypeDataTypeCrossReference_0_0_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) + | otherlv_1='void' + { + newLeafNode(otherlv_1, grammarAccess.getSignatureAccess().getVoidKeyword_0_1()); + } +)( +( + { + newCompositeNode(grammarAccess.getSignatureAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_2_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSignatureRule()); + } + set( + $current, + "name", + lv_name_2_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_3='(' + { + newLeafNode(otherlv_3, grammarAccess.getSignatureAccess().getLeftParenthesisKeyword_2()); + } +(( +( + { + newCompositeNode(grammarAccess.getSignatureAccess().getParametersParameterParserRuleCall_3_0_0()); + } + lv_parameters_4_0=ruleParameter { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSignatureRule()); + } + add( + $current, + "parameters", + lv_parameters_4_0, + "Parameter"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_5=',' + { + newLeafNode(otherlv_5, grammarAccess.getSignatureAccess().getCommaKeyword_3_1_0()); + } +( +( + { + newCompositeNode(grammarAccess.getSignatureAccess().getParametersParameterParserRuleCall_3_1_1_0()); + } + lv_parameters_6_0=ruleParameter { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSignatureRule()); + } + add( + $current, + "parameters", + lv_parameters_6_0, + "Parameter"); + afterParserOrEnumRuleCall(); + } + +) +))*)? otherlv_7=')' + { + newLeafNode(otherlv_7, grammarAccess.getSignatureAccess().getRightParenthesisKeyword_4()); + } +) +; + + + + + +// Entry rule entryRuleParameter +entryRuleParameter returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getParameterRule()); } + iv_ruleParameter=ruleParameter + { $current=$iv_ruleParameter.current; } + EOF +; + +// Rule Parameter +ruleParameter returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getParameterRule()); + } + } + { + newCompositeNode(grammarAccess.getParameterAccess().getDataTypeDataTypeCrossReference_0_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +)( +( + { + newCompositeNode(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getParameterRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +)) +; + + + + + +// Entry rule entryRuleProvidedRole +entryRuleProvidedRole returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getProvidedRoleRule()); } + iv_ruleProvidedRole=ruleProvidedRole + { $current=$iv_ruleProvidedRole.current; } + EOF +; + +// Rule ProvidedRole +ruleProvidedRole returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( + { + $current = forceCreateModelElement( + grammarAccess.getProvidedRoleAccess().getProvidedRoleAction_0(), + $current); + } +) otherlv_1='provides' + { + newLeafNode(otherlv_1, grammarAccess.getProvidedRoleAccess().getProvidesKeyword_1()); + } +(( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getProvidedRoleRule()); + } + } + { + newCompositeNode(grammarAccess.getProvidedRoleAccess().getInterfaceInterfaceCrossReference_2_0_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getProvidedRoleAccess().getCommaKeyword_2_1()); + } +)?)*) +; + + + + + +// Entry rule entryRuleRequiredRole +entryRuleRequiredRole returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getRequiredRoleRule()); } + iv_ruleRequiredRole=ruleRequiredRole + { $current=$iv_ruleRequiredRole.current; } + EOF +; + +// Rule RequiredRole +ruleRequiredRole returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( + { + $current = forceCreateModelElement( + grammarAccess.getRequiredRoleAccess().getRequiredRoleAction_0(), + $current); + } +) otherlv_1='requires' + { + newLeafNode(otherlv_1, grammarAccess.getRequiredRoleAccess().getRequiresKeyword_1()); + } +(( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRequiredRoleRule()); + } + } + { + newCompositeNode(grammarAccess.getRequiredRoleAccess().getInterfaceInterfaceCrossReference_2_0_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getRequiredRoleAccess().getCommaKeyword_2_1()); + } +)?)*) +; + + + + + +// Entry rule entryRuleBasicComponent +entryRuleBasicComponent returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getBasicComponentRule()); } + iv_ruleBasicComponent=ruleBasicComponent + { $current=$iv_ruleBasicComponent.current; } + EOF +; + +// Rule BasicComponent +ruleBasicComponent returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='BasicComponent' + { + newLeafNode(otherlv_0, grammarAccess.getBasicComponentAccess().getBasicComponentKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getBasicComponentAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +)(( +( + { + newCompositeNode(grammarAccess.getBasicComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_0_0()); + } + lv_providedRoles_2_0=ruleProvidedRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + add( + $current, + "providedRoles", + lv_providedRoles_2_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getBasicComponentAccess().getCommaKeyword_2_1_0()); + } +( +( + { + newCompositeNode(grammarAccess.getBasicComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_1_1_0()); + } + lv_providedRoles_4_0=ruleProvidedRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + add( + $current, + "providedRoles", + lv_providedRoles_4_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + } + +) +))*)?(( +( + { + newCompositeNode(grammarAccess.getBasicComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_0_0()); + } + lv_requiredRoles_5_0=ruleRequiredRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + add( + $current, + "requiredRoles", + lv_requiredRoles_5_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_6=',' + { + newLeafNode(otherlv_6, grammarAccess.getBasicComponentAccess().getCommaKeyword_3_1_0()); + } +( +( + { + newCompositeNode(grammarAccess.getBasicComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_1_1_0()); + } + lv_requiredRoles_7_0=ruleRequiredRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + add( + $current, + "requiredRoles", + lv_requiredRoles_7_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + } + +) +))*)? otherlv_8='{' + { + newLeafNode(otherlv_8, grammarAccess.getBasicComponentAccess().getLeftCurlyBracketKeyword_4()); + } +( otherlv_9='relationship' + { + newLeafNode(otherlv_9, grammarAccess.getBasicComponentAccess().getRelationshipKeyword_5_0()); + } + otherlv_10='(' + { + newLeafNode(otherlv_10, grammarAccess.getBasicComponentAccess().getLeftParenthesisKeyword_5_1()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getBasicComponentRule()); + } + } + { + newCompositeNode(grammarAccess.getBasicComponentAccess().getRelationshipRelationshipCrossReference_5_2_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_12=',' + { + newLeafNode(otherlv_12, grammarAccess.getBasicComponentAccess().getCommaKeyword_5_3_0()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getBasicComponentRule()); + } + } + { + newCompositeNode(grammarAccess.getBasicComponentAccess().getRelationshipRelationshipCrossReference_5_3_1_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_14=')' + { + newLeafNode(otherlv_14, grammarAccess.getBasicComponentAccess().getRightParenthesisKeyword_5_4()); + } +)? otherlv_15='}' + { + newLeafNode(otherlv_15, grammarAccess.getBasicComponentAccess().getRightCurlyBracketKeyword_6()); + } +) +; + + + + + +// Entry rule entryRuleCompositeComponent +entryRuleCompositeComponent returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getCompositeComponentRule()); } + iv_ruleCompositeComponent=ruleCompositeComponent + { $current=$iv_ruleCompositeComponent.current; } + EOF +; + +// Rule CompositeComponent +ruleCompositeComponent returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='CompositeComponent' + { + newLeafNode(otherlv_0, grammarAccess.getCompositeComponentAccess().getCompositeComponentKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getCompositeComponentAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +)(( +( + { + newCompositeNode(grammarAccess.getCompositeComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_0_0()); + } + lv_providedRoles_2_0=ruleProvidedRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + add( + $current, + "providedRoles", + lv_providedRoles_2_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_3=',' + { + newLeafNode(otherlv_3, grammarAccess.getCompositeComponentAccess().getCommaKeyword_2_1_0()); + } +( +( + { + newCompositeNode(grammarAccess.getCompositeComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_1_1_0()); + } + lv_providedRoles_4_0=ruleProvidedRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + add( + $current, + "providedRoles", + lv_providedRoles_4_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + } + +) +))*)?(( +( + { + newCompositeNode(grammarAccess.getCompositeComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_0_0()); + } + lv_requiredRoles_5_0=ruleRequiredRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + add( + $current, + "requiredRoles", + lv_requiredRoles_5_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_6=',' + { + newLeafNode(otherlv_6, grammarAccess.getCompositeComponentAccess().getCommaKeyword_3_1_0()); + } +( +( + { + newCompositeNode(grammarAccess.getCompositeComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_1_1_0()); + } + lv_requiredRoles_7_0=ruleRequiredRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + add( + $current, + "requiredRoles", + lv_requiredRoles_7_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + } + +) +))*)? otherlv_8='{' + { + newLeafNode(otherlv_8, grammarAccess.getCompositeComponentAccess().getLeftCurlyBracketKeyword_4()); + } +( otherlv_9='relationship' + { + newLeafNode(otherlv_9, grammarAccess.getCompositeComponentAccess().getRelationshipKeyword_5_0()); + } + otherlv_10='(' + { + newLeafNode(otherlv_10, grammarAccess.getCompositeComponentAccess().getLeftParenthesisKeyword_5_1()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getCompositeComponentRule()); + } + } + { + newCompositeNode(grammarAccess.getCompositeComponentAccess().getRelationshipRelationshipCrossReference_5_2_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_12=',' + { + newLeafNode(otherlv_12, grammarAccess.getCompositeComponentAccess().getCommaKeyword_5_3_0()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getCompositeComponentRule()); + } + } + { + newCompositeNode(grammarAccess.getCompositeComponentAccess().getRelationshipRelationshipCrossReference_5_3_1_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_14=')' + { + newLeafNode(otherlv_14, grammarAccess.getCompositeComponentAccess().getRightParenthesisKeyword_5_4()); + } +)?( otherlv_15='assembly' + { + newLeafNode(otherlv_15, grammarAccess.getCompositeComponentAccess().getAssemblyKeyword_6_0()); + } +( +( + { + newCompositeNode(grammarAccess.getCompositeComponentAccess().getAssemblyComposedStructureAssemblyParserRuleCall_6_1_0()); + } + lv_assembly_16_0=ruleComposedStructureAssembly { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + set( + $current, + "assembly", + lv_assembly_16_0, + "ComposedStructureAssembly"); + afterParserOrEnumRuleCall(); + } + +) +))? otherlv_17='}' + { + newLeafNode(otherlv_17, grammarAccess.getCompositeComponentAccess().getRightCurlyBracketKeyword_7()); + } +) +; + + + + + +// Entry rule entryRuleSubSystem +entryRuleSubSystem returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getSubSystemRule()); } + iv_ruleSubSystem=ruleSubSystem + { $current=$iv_ruleSubSystem.current; } + EOF +; + +// Rule SubSystem +ruleSubSystem returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='SubSystem' + { + newLeafNode(otherlv_0, grammarAccess.getSubSystemAccess().getSubSystemKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getSubSystemAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_2='providedRoles' + { + newLeafNode(otherlv_2, grammarAccess.getSubSystemAccess().getProvidedRolesKeyword_2_0()); + } + otherlv_3='{' + { + newLeafNode(otherlv_3, grammarAccess.getSubSystemAccess().getLeftCurlyBracketKeyword_2_1()); + } +( +( + { + newCompositeNode(grammarAccess.getSubSystemAccess().getProvidedRolesProvidedRoleParserRuleCall_2_2_0()); + } + lv_providedRoles_4_0=ruleProvidedRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + add( + $current, + "providedRoles", + lv_providedRoles_4_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_5=',' + { + newLeafNode(otherlv_5, grammarAccess.getSubSystemAccess().getCommaKeyword_2_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getSubSystemAccess().getProvidedRolesProvidedRoleParserRuleCall_2_3_1_0()); + } + lv_providedRoles_6_0=ruleProvidedRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + add( + $current, + "providedRoles", + lv_providedRoles_6_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_7='}' + { + newLeafNode(otherlv_7, grammarAccess.getSubSystemAccess().getRightCurlyBracketKeyword_2_4()); + } +)?( otherlv_8='requiredRoles' + { + newLeafNode(otherlv_8, grammarAccess.getSubSystemAccess().getRequiredRolesKeyword_3_0()); + } + otherlv_9='{' + { + newLeafNode(otherlv_9, grammarAccess.getSubSystemAccess().getLeftCurlyBracketKeyword_3_1()); + } +( +( + { + newCompositeNode(grammarAccess.getSubSystemAccess().getRequiredRolesRequiredRoleParserRuleCall_3_2_0()); + } + lv_requiredRoles_10_0=ruleRequiredRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + add( + $current, + "requiredRoles", + lv_requiredRoles_10_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_11=',' + { + newLeafNode(otherlv_11, grammarAccess.getSubSystemAccess().getCommaKeyword_3_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getSubSystemAccess().getRequiredRolesRequiredRoleParserRuleCall_3_3_1_0()); + } + lv_requiredRoles_12_0=ruleRequiredRole { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + add( + $current, + "requiredRoles", + lv_requiredRoles_12_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_13='}' + { + newLeafNode(otherlv_13, grammarAccess.getSubSystemAccess().getRightCurlyBracketKeyword_3_4()); + } +)? otherlv_14='{' + { + newLeafNode(otherlv_14, grammarAccess.getSubSystemAccess().getLeftCurlyBracketKeyword_4()); + } +( otherlv_15='relationship' + { + newLeafNode(otherlv_15, grammarAccess.getSubSystemAccess().getRelationshipKeyword_5_0()); + } + otherlv_16='(' + { + newLeafNode(otherlv_16, grammarAccess.getSubSystemAccess().getLeftParenthesisKeyword_5_1()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getSubSystemRule()); + } + } + { + newCompositeNode(grammarAccess.getSubSystemAccess().getRelationshipRelationshipCrossReference_5_2_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_18=',' + { + newLeafNode(otherlv_18, grammarAccess.getSubSystemAccess().getCommaKeyword_5_3_0()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getSubSystemRule()); + } + } + { + newCompositeNode(grammarAccess.getSubSystemAccess().getRelationshipRelationshipCrossReference_5_3_1_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_20=')' + { + newLeafNode(otherlv_20, grammarAccess.getSubSystemAccess().getRightParenthesisKeyword_5_4()); + } +)?( otherlv_21='assembly' + { + newLeafNode(otherlv_21, grammarAccess.getSubSystemAccess().getAssemblyKeyword_6_0()); + } +( +( + { + newCompositeNode(grammarAccess.getSubSystemAccess().getAssemblyComposedStructureAssemblyParserRuleCall_6_1_0()); + } + lv_assembly_22_0=ruleComposedStructureAssembly { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + set( + $current, + "assembly", + lv_assembly_22_0, + "ComposedStructureAssembly"); + afterParserOrEnumRuleCall(); + } + +) +))? otherlv_23='}' + { + newLeafNode(otherlv_23, grammarAccess.getSubSystemAccess().getRightCurlyBracketKeyword_7()); + } +) +; + + + + + +// Entry rule entryRuleComposedStructureAssembly +entryRuleComposedStructureAssembly returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getComposedStructureAssemblyRule()); } + iv_ruleComposedStructureAssembly=ruleComposedStructureAssembly + { $current=$iv_ruleComposedStructureAssembly.current; } + EOF +; + +// Rule ComposedStructureAssembly +ruleComposedStructureAssembly returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +(( + { + $current = forceCreateModelElement( + grammarAccess.getComposedStructureAssemblyAccess().getComposedStructureAssemblyAction_0(), + $current); + } +) otherlv_1='ComposedStructureAssembly' + { + newLeafNode(otherlv_1, grammarAccess.getComposedStructureAssemblyAccess().getComposedStructureAssemblyKeyword_1()); + } + otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_2()); + } +( otherlv_3='assemblyContexts' + { + newLeafNode(otherlv_3, grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsKeyword_3_0()); + } + otherlv_4='{' + { + newLeafNode(otherlv_4, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_3_1()); + } +( +( + { + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsAssemblyContextParserRuleCall_3_2_0()); + } + lv_assemblyContexts_5_0=ruleAssemblyContext { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + $current, + "assemblyContexts", + lv_assemblyContexts_5_0, + "AssemblyContext"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_6=',' + { + newLeafNode(otherlv_6, grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_3_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsAssemblyContextParserRuleCall_3_3_1_0()); + } + lv_assemblyContexts_7_0=ruleAssemblyContext { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + $current, + "assemblyContexts", + lv_assemblyContexts_7_0, + "AssemblyContext"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_8='}' + { + newLeafNode(otherlv_8, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_3_4()); + } +)?( otherlv_9='assemblyConnectors' + { + newLeafNode(otherlv_9, grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsKeyword_4_0()); + } + otherlv_10='{' + { + newLeafNode(otherlv_10, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_4_1()); + } +( +( + { + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsAssemblyConnectorParserRuleCall_4_2_0()); + } + lv_assemblyConnectors_11_0=ruleAssemblyConnector { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + $current, + "assemblyConnectors", + lv_assemblyConnectors_11_0, + "AssemblyConnector"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_12=',' + { + newLeafNode(otherlv_12, grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_4_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsAssemblyConnectorParserRuleCall_4_3_1_0()); + } + lv_assemblyConnectors_13_0=ruleAssemblyConnector { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + $current, + "assemblyConnectors", + lv_assemblyConnectors_13_0, + "AssemblyConnector"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_14='}' + { + newLeafNode(otherlv_14, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_4_4()); + } +)?( otherlv_15='providedDelegationConnectors' + { + newLeafNode(otherlv_15, grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsKeyword_5_0()); + } + otherlv_16='{' + { + newLeafNode(otherlv_16, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_5_1()); + } +( +( + { + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_2_0()); + } + lv_providedDelegationConnectors_17_0=ruleProvidedDelegationConnector { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + $current, + "providedDelegationConnectors", + lv_providedDelegationConnectors_17_0, + "ProvidedDelegationConnector"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_18=',' + { + newLeafNode(otherlv_18, grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_5_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_3_1_0()); + } + lv_providedDelegationConnectors_19_0=ruleProvidedDelegationConnector { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + $current, + "providedDelegationConnectors", + lv_providedDelegationConnectors_19_0, + "ProvidedDelegationConnector"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_20='}' + { + newLeafNode(otherlv_20, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_5_4()); + } +)?( otherlv_21='requiredDelegationConnectors' + { + newLeafNode(otherlv_21, grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsKeyword_6_0()); + } + otherlv_22='{' + { + newLeafNode(otherlv_22, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_6_1()); + } +( +( + { + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_2_0()); + } + lv_requiredDelegationConnectors_23_0=ruleRequiredDelegationConnector { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + $current, + "requiredDelegationConnectors", + lv_requiredDelegationConnectors_23_0, + "RequiredDelegationConnector"); + afterParserOrEnumRuleCall(); + } + +) +)( otherlv_24=',' + { + newLeafNode(otherlv_24, grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_6_3_0()); + } +( +( + { + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_3_1_0()); + } + lv_requiredDelegationConnectors_25_0=ruleRequiredDelegationConnector { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + $current, + "requiredDelegationConnectors", + lv_requiredDelegationConnectors_25_0, + "RequiredDelegationConnector"); + afterParserOrEnumRuleCall(); + } + +) +))* otherlv_26='}' + { + newLeafNode(otherlv_26, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_6_4()); + } +)? otherlv_27='}' + { + newLeafNode(otherlv_27, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_7()); + } +) +; + + + + + +// Entry rule entryRuleAssemblyContext +entryRuleAssemblyContext returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getAssemblyContextRule()); } + iv_ruleAssemblyContext=ruleAssemblyContext + { $current=$iv_ruleAssemblyContext.current; } + EOF +; + +// Rule AssemblyContext +ruleAssemblyContext returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='AssemblyContext' + { + newLeafNode(otherlv_0, grammarAccess.getAssemblyContextAccess().getAssemblyContextKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getAssemblyContextAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAssemblyContextRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getAssemblyContextAccess().getLeftCurlyBracketKeyword_2()); + } + otherlv_3='encapsulatedComponent' + { + newLeafNode(otherlv_3, grammarAccess.getAssemblyContextAccess().getEncapsulatedComponentKeyword_3()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getAssemblyContextRule()); + } + } + { + newCompositeNode(grammarAccess.getAssemblyContextAccess().getEncapsulatedComponentRepositoryComponentCrossReference_4_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_5='}' + { + newLeafNode(otherlv_5, grammarAccess.getAssemblyContextAccess().getRightCurlyBracketKeyword_5()); + } +) +; + + + + + +// Entry rule entryRuleAssemblyConnector +entryRuleAssemblyConnector returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getAssemblyConnectorRule()); } + iv_ruleAssemblyConnector=ruleAssemblyConnector + { $current=$iv_ruleAssemblyConnector.current; } + EOF +; + +// Rule AssemblyConnector +ruleAssemblyConnector returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='AssemblyConnector' + { + newLeafNode(otherlv_0, grammarAccess.getAssemblyConnectorAccess().getAssemblyConnectorKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAssemblyConnectorRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getAssemblyConnectorAccess().getLeftCurlyBracketKeyword_2()); + } + otherlv_3='requiredRole' + { + newLeafNode(otherlv_3, grammarAccess.getAssemblyConnectorAccess().getRequiredRoleKeyword_3()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getAssemblyConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getRequiredRoleRequiredRoleCrossReference_4_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_5='providedRole' + { + newLeafNode(otherlv_5, grammarAccess.getAssemblyConnectorAccess().getProvidedRoleKeyword_5()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getAssemblyConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getProvidedRoleProvidedRoleCrossReference_6_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_7='providingAssemblyContext' + { + newLeafNode(otherlv_7, grammarAccess.getAssemblyConnectorAccess().getProvidingAssemblyContextKeyword_7()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getAssemblyConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getProvidingAssemblyContextAssemblyContextCrossReference_8_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_9='requiringAssemblyContext' + { + newLeafNode(otherlv_9, grammarAccess.getAssemblyConnectorAccess().getRequiringAssemblyContextKeyword_9()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getAssemblyConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getRequiringAssemblyContextAssemblyContextCrossReference_10_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_11='}' + { + newLeafNode(otherlv_11, grammarAccess.getAssemblyConnectorAccess().getRightCurlyBracketKeyword_11()); + } +) +; + + + + + +// Entry rule entryRuleProvidedDelegationConnector +entryRuleProvidedDelegationConnector returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getProvidedDelegationConnectorRule()); } + iv_ruleProvidedDelegationConnector=ruleProvidedDelegationConnector + { $current=$iv_ruleProvidedDelegationConnector.current; } + EOF +; + +// Rule ProvidedDelegationConnector +ruleProvidedDelegationConnector returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='ProvidedDelegationConnector' + { + newLeafNode(otherlv_0, grammarAccess.getProvidedDelegationConnectorAccess().getProvidedDelegationConnectorKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getProvidedDelegationConnectorAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getProvidedDelegationConnectorRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getProvidedDelegationConnectorAccess().getLeftCurlyBracketKeyword_2()); + } + otherlv_3='assemblyContext' + { + newLeafNode(otherlv_3, grammarAccess.getProvidedDelegationConnectorAccess().getAssemblyContextKeyword_3()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getProvidedDelegationConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getProvidedDelegationConnectorAccess().getAssemblyContextAssemblyContextCrossReference_4_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_5='innerProvidedRole' + { + newLeafNode(otherlv_5, grammarAccess.getProvidedDelegationConnectorAccess().getInnerProvidedRoleKeyword_5()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getProvidedDelegationConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getProvidedDelegationConnectorAccess().getInnerProvidedRoleProvidedRoleCrossReference_6_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_7='outerProvidedRole' + { + newLeafNode(otherlv_7, grammarAccess.getProvidedDelegationConnectorAccess().getOuterProvidedRoleKeyword_7()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getProvidedDelegationConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getProvidedDelegationConnectorAccess().getOuterProvidedRoleProvidedRoleCrossReference_8_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_9='}' + { + newLeafNode(otherlv_9, grammarAccess.getProvidedDelegationConnectorAccess().getRightCurlyBracketKeyword_9()); + } +) +; + + + + + +// Entry rule entryRuleRequiredDelegationConnector +entryRuleRequiredDelegationConnector returns [EObject current=null] + : + { newCompositeNode(grammarAccess.getRequiredDelegationConnectorRule()); } + iv_ruleRequiredDelegationConnector=ruleRequiredDelegationConnector + { $current=$iv_ruleRequiredDelegationConnector.current; } + EOF +; + +// Rule RequiredDelegationConnector +ruleRequiredDelegationConnector returns [EObject current=null] + @init { enterRule(); + } + @after { leaveRule(); }: +( otherlv_0='RequiredDelegationConnector' + { + newLeafNode(otherlv_0, grammarAccess.getRequiredDelegationConnectorAccess().getRequiredDelegationConnectorKeyword_0()); + } +( +( + { + newCompositeNode(grammarAccess.getRequiredDelegationConnectorAccess().getNameEStringParserRuleCall_1_0()); + } + lv_name_1_0=ruleEString { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getRequiredDelegationConnectorRule()); + } + set( + $current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + } + +) +) otherlv_2='{' + { + newLeafNode(otherlv_2, grammarAccess.getRequiredDelegationConnectorAccess().getLeftCurlyBracketKeyword_2()); + } + otherlv_3='assemblyContext' + { + newLeafNode(otherlv_3, grammarAccess.getRequiredDelegationConnectorAccess().getAssemblyContextKeyword_3()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRequiredDelegationConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getRequiredDelegationConnectorAccess().getAssemblyContextAssemblyContextCrossReference_4_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_5='innerRequiredRole' + { + newLeafNode(otherlv_5, grammarAccess.getRequiredDelegationConnectorAccess().getInnerRequiredRoleKeyword_5()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRequiredDelegationConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getRequiredDelegationConnectorAccess().getInnerRequiredRoleRequiredRoleCrossReference_6_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_7='outerRequiredRole' + { + newLeafNode(otherlv_7, grammarAccess.getRequiredDelegationConnectorAccess().getOuterRequiredRoleKeyword_7()); + } +( +( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getRequiredDelegationConnectorRule()); + } + } + { + newCompositeNode(grammarAccess.getRequiredDelegationConnectorAccess().getOuterRequiredRoleRequiredRoleCrossReference_8_0()); + } + ruleEString { + afterParserOrEnumRuleCall(); + } + +) +) otherlv_9='}' + { + newLeafNode(otherlv_9, grammarAccess.getRequiredDelegationConnectorAccess().getRightCurlyBracketKeyword_9()); + } +) +; + + + + + +// Rule PrimitiveTypeEnum +rulePrimitiveTypeEnum returns [Enumerator current=null] + @init { enterRule(); } + @after { leaveRule(); }: +(( enumLiteral_0='INT' + { + $current = grammarAccess.getPrimitiveTypeEnumAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getPrimitiveTypeEnumAccess().getINTEnumLiteralDeclaration_0()); + } +) + |( enumLiteral_1='STRING' + { + $current = grammarAccess.getPrimitiveTypeEnumAccess().getSTRINGEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getPrimitiveTypeEnumAccess().getSTRINGEnumLiteralDeclaration_1()); + } +) + |( enumLiteral_2='BOOL' + { + $current = grammarAccess.getPrimitiveTypeEnumAccess().getBOOLEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getPrimitiveTypeEnumAccess().getBOOLEnumLiteralDeclaration_2()); + } +) + |( enumLiteral_3='DOUBLE' + { + $current = grammarAccess.getPrimitiveTypeEnumAccess().getDOUBLEEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getPrimitiveTypeEnumAccess().getDOUBLEEnumLiteralDeclaration_3()); + } +) + |( enumLiteral_4='CHAR' + { + $current = grammarAccess.getPrimitiveTypeEnumAccess().getCHAREnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getPrimitiveTypeEnumAccess().getCHAREnumLiteralDeclaration_4()); + } +) + |( enumLiteral_5='BYTE' + { + $current = grammarAccess.getPrimitiveTypeEnumAccess().getBYTEEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getPrimitiveTypeEnumAccess().getBYTEEnumLiteralDeclaration_5()); + } +) + |( enumLiteral_6='LONG' + { + $current = grammarAccess.getPrimitiveTypeEnumAccess().getLONGEnumLiteralDeclaration_6().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_6, grammarAccess.getPrimitiveTypeEnumAccess().getLONGEnumLiteralDeclaration_6()); + } +)); + + + +RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; + +RULE_INT : ('0'..'9')+; + +RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\''); + +RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; + +RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?; + +RULE_WS : (' '|'\t'|'\r'|'\n')+; + +RULE_ANY_OTHER : .; + + diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.tokens b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.tokens new file mode 100644 index 0000000000000000000000000000000000000000..fbac6981da0a14341e8d8ce818c441c761e8e35b --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.tokens @@ -0,0 +1,125 @@ +T__68=68 +T__69=69 +RULE_ID=5 +T__66=66 +T__67=67 +T__64=64 +T__29=29 +T__65=65 +T__28=28 +T__62=62 +T__27=27 +T__63=63 +T__26=26 +T__25=25 +T__24=24 +T__23=23 +T__22=22 +RULE_ANY_OTHER=10 +T__21=21 +T__20=20 +T__61=61 +T__60=60 +T__55=55 +T__56=56 +T__19=19 +T__57=57 +T__58=58 +T__51=51 +T__16=16 +T__52=52 +T__15=15 +T__53=53 +T__18=18 +T__54=54 +T__17=17 +T__12=12 +T__11=11 +T__14=14 +T__13=13 +T__59=59 +RULE_INT=6 +T__50=50 +T__42=42 +T__43=43 +T__40=40 +T__41=41 +T__46=46 +T__47=47 +T__44=44 +T__45=45 +T__48=48 +T__49=49 +RULE_SL_COMMENT=8 +RULE_ML_COMMENT=7 +T__30=30 +T__31=31 +RULE_STRING=4 +T__32=32 +T__33=33 +T__34=34 +T__35=35 +T__36=36 +T__37=37 +T__38=38 +T__39=39 +RULE_WS=9 +'requiredRole'=52 +'type'=33 +'DOUBLE'=66 +'providedRoles'=25 +'requiringAssemblyContext'=55 +'outerProvidedRole'=59 +'BasicComponent'=40 +'innerType'=28 +'CompositeComponent'=41 +'InnerDeclaration'=35 +'CompositeDataType'=29 +'components'=17 +'innerRequiredRole'=61 +'assembly'=42 +'encapsulatedComponent'=50 +'RequiredDelegationConnector'=60 +'{'=12 +'assemblyConnectors'=46 +'Interface'=18 +'void'=37 +'parentInterfaces'=19 +'ref'=34 +'('=20 +'innerProvidedRole'=58 +','=14 +'SubSystem'=43 +'BOOL'=65 +'INT'=63 +'ComposedStructureAssembly'=44 +'providedRole'=53 +'providingAssemblyContext'=54 +'PrimitiveDataType'=32 +'relationship'=24 +'assemblyContexts'=45 +'dataType'=36 +'requires'=39 +'requiredRoles'=26 +'Repository'=11 +'interfaces'=16 +'CHAR'=67 +')'=21 +'LONG'=69 +'outerRequiredRole'=62 +'parentTypes'=30 +'AssemblyContext'=49 +'innerDeclarations'=31 +'}'=15 +'datatypes'=13 +'AssemblyConnector'=51 +'CollectionDataType'=27 +'ProvidedDelegationConnector'=56 +'STRING'=64 +'RepositoryComponent'=23 +'signatures'=22 +'provides'=38 +'providedDelegationConnectors'=47 +'assemblyContext'=57 +'BYTE'=68 +'requiredDelegationConnectors'=48 diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTestLexer.java b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTestLexer.java new file mode 100644 index 0000000000000000000000000000000000000000..fb8b6b58ad8abee53b492eafeabe9c1acde4e6f9 --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTestLexer.java @@ -0,0 +1,3233 @@ +package org.xtext.example.mydsl.parser.antlr.internal; + +// Hack: Use our own Lexer superclass by means of import. +// Currently there is no other way to specify the superclass for the lexer. +import org.eclipse.xtext.parser.antlr.Lexer; + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings("all") +public class InternalMyDslTestLexer extends Lexer { + public static final int T__68=68; + public static final int T__69=69; + public static final int RULE_ID=5; + public static final int T__66=66; + public static final int T__67=67; + public static final int T__29=29; + public static final int T__64=64; + public static final int T__28=28; + public static final int T__65=65; + public static final int T__27=27; + public static final int T__62=62; + public static final int T__26=26; + public static final int T__63=63; + public static final int T__25=25; + public static final int T__24=24; + public static final int T__23=23; + public static final int T__22=22; + public static final int RULE_ANY_OTHER=10; + public static final int T__21=21; + public static final int T__20=20; + public static final int T__61=61; + public static final int EOF=-1; + public static final int T__60=60; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__19=19; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__51=51; + public static final int T__16=16; + public static final int T__52=52; + public static final int T__15=15; + public static final int T__53=53; + public static final int T__18=18; + public static final int T__54=54; + public static final int T__17=17; + public static final int T__12=12; + public static final int T__11=11; + public static final int T__14=14; + public static final int T__13=13; + public static final int T__59=59; + public static final int RULE_INT=6; + public static final int T__50=50; + public static final int T__42=42; + public static final int T__43=43; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__44=44; + public static final int T__45=45; + public static final int T__48=48; + public static final int T__49=49; + public static final int RULE_SL_COMMENT=8; + public static final int RULE_ML_COMMENT=7; + public static final int T__30=30; + public static final int T__31=31; + public static final int T__32=32; + public static final int RULE_STRING=4; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int RULE_WS=9; + + // delegates + // delegators + + public InternalMyDslTestLexer() {;} + public InternalMyDslTestLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public InternalMyDslTestLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g"; } + + // $ANTLR start "T__11" + public final void mT__11() throws RecognitionException { + try { + int _type = T__11; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:11:7: ( 'Repository' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:11:9: 'Repository' + { + match("Repository"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__11" + + // $ANTLR start "T__12" + public final void mT__12() throws RecognitionException { + try { + int _type = T__12; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:12:7: ( '{' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:12:9: '{' + { + match('{'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__12" + + // $ANTLR start "T__13" + public final void mT__13() throws RecognitionException { + try { + int _type = T__13; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:13:7: ( 'datatypes' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:13:9: 'datatypes' + { + match("datatypes"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__13" + + // $ANTLR start "T__14" + public final void mT__14() throws RecognitionException { + try { + int _type = T__14; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:14:7: ( ',' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:14:9: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__14" + + // $ANTLR start "T__15" + public final void mT__15() throws RecognitionException { + try { + int _type = T__15; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:15:7: ( '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:15:9: '}' + { + match('}'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__15" + + // $ANTLR start "T__16" + public final void mT__16() throws RecognitionException { + try { + int _type = T__16; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:16:7: ( 'interfaces' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:16:9: 'interfaces' + { + match("interfaces"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__16" + + // $ANTLR start "T__17" + public final void mT__17() throws RecognitionException { + try { + int _type = T__17; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:17:7: ( 'components' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:17:9: 'components' + { + match("components"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__17" + + // $ANTLR start "T__18" + public final void mT__18() throws RecognitionException { + try { + int _type = T__18; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:18:7: ( 'Interface' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:18:9: 'Interface' + { + match("Interface"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__18" + + // $ANTLR start "T__19" + public final void mT__19() throws RecognitionException { + try { + int _type = T__19; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:19:7: ( 'parentInterfaces' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:19:9: 'parentInterfaces' + { + match("parentInterfaces"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__19" + + // $ANTLR start "T__20" + public final void mT__20() throws RecognitionException { + try { + int _type = T__20; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:20:7: ( '(' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:20:9: '(' + { + match('('); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__20" + + // $ANTLR start "T__21" + public final void mT__21() throws RecognitionException { + try { + int _type = T__21; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:21:7: ( ')' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:21:9: ')' + { + match(')'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__21" + + // $ANTLR start "T__22" + public final void mT__22() throws RecognitionException { + try { + int _type = T__22; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:22:7: ( 'signatures' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:22:9: 'signatures' + { + match("signatures"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__22" + + // $ANTLR start "T__23" + public final void mT__23() throws RecognitionException { + try { + int _type = T__23; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:23:7: ( 'RepositoryComponent' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:23:9: 'RepositoryComponent' + { + match("RepositoryComponent"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__23" + + // $ANTLR start "T__24" + public final void mT__24() throws RecognitionException { + try { + int _type = T__24; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:24:7: ( 'relationship' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:24:9: 'relationship' + { + match("relationship"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__24" + + // $ANTLR start "T__25" + public final void mT__25() throws RecognitionException { + try { + int _type = T__25; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:25:7: ( 'providedRoles' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:25:9: 'providedRoles' + { + match("providedRoles"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__25" + + // $ANTLR start "T__26" + public final void mT__26() throws RecognitionException { + try { + int _type = T__26; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:26:7: ( 'requiredRoles' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:26:9: 'requiredRoles' + { + match("requiredRoles"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__26" + + // $ANTLR start "T__27" + public final void mT__27() throws RecognitionException { + try { + int _type = T__27; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:27:7: ( 'CollectionDataType' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:27:9: 'CollectionDataType' + { + match("CollectionDataType"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__27" + + // $ANTLR start "T__28" + public final void mT__28() throws RecognitionException { + try { + int _type = T__28; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:28:7: ( 'innerType' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:28:9: 'innerType' + { + match("innerType"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__28" + + // $ANTLR start "T__29" + public final void mT__29() throws RecognitionException { + try { + int _type = T__29; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:29:7: ( 'CompositeDataType' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:29:9: 'CompositeDataType' + { + match("CompositeDataType"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__29" + + // $ANTLR start "T__30" + public final void mT__30() throws RecognitionException { + try { + int _type = T__30; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:30:7: ( 'parentTypes' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:30:9: 'parentTypes' + { + match("parentTypes"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__30" + + // $ANTLR start "T__31" + public final void mT__31() throws RecognitionException { + try { + int _type = T__31; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:31:7: ( 'innerDeclarations' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:31:9: 'innerDeclarations' + { + match("innerDeclarations"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__31" + + // $ANTLR start "T__32" + public final void mT__32() throws RecognitionException { + try { + int _type = T__32; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:32:7: ( 'PrimitiveDataType' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:32:9: 'PrimitiveDataType' + { + match("PrimitiveDataType"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__32" + + // $ANTLR start "T__33" + public final void mT__33() throws RecognitionException { + try { + int _type = T__33; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:33:7: ( 'type' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:33:9: 'type' + { + match("type"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__33" + + // $ANTLR start "T__34" + public final void mT__34() throws RecognitionException { + try { + int _type = T__34; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:34:7: ( 'ref' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:34:9: 'ref' + { + match("ref"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__34" + + // $ANTLR start "T__35" + public final void mT__35() throws RecognitionException { + try { + int _type = T__35; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:35:7: ( 'InnerDeclaration' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:35:9: 'InnerDeclaration' + { + match("InnerDeclaration"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__35" + + // $ANTLR start "T__36" + public final void mT__36() throws RecognitionException { + try { + int _type = T__36; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:36:7: ( 'dataType' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:36:9: 'dataType' + { + match("dataType"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__36" + + // $ANTLR start "T__37" + public final void mT__37() throws RecognitionException { + try { + int _type = T__37; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:37:7: ( 'void' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:37:9: 'void' + { + match("void"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__37" + + // $ANTLR start "T__38" + public final void mT__38() throws RecognitionException { + try { + int _type = T__38; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:38:7: ( 'provides' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:38:9: 'provides' + { + match("provides"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__38" + + // $ANTLR start "T__39" + public final void mT__39() throws RecognitionException { + try { + int _type = T__39; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:39:7: ( 'requires' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:39:9: 'requires' + { + match("requires"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__39" + + // $ANTLR start "T__40" + public final void mT__40() throws RecognitionException { + try { + int _type = T__40; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:40:7: ( 'BasicComponent' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:40:9: 'BasicComponent' + { + match("BasicComponent"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__40" + + // $ANTLR start "T__41" + public final void mT__41() throws RecognitionException { + try { + int _type = T__41; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:41:7: ( 'CompositeComponent' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:41:9: 'CompositeComponent' + { + match("CompositeComponent"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__41" + + // $ANTLR start "T__42" + public final void mT__42() throws RecognitionException { + try { + int _type = T__42; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:42:7: ( 'assembly' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:42:9: 'assembly' + { + match("assembly"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__42" + + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { + try { + int _type = T__43; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:43:7: ( 'SubSystem' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:43:9: 'SubSystem' + { + match("SubSystem"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__43" + + // $ANTLR start "T__44" + public final void mT__44() throws RecognitionException { + try { + int _type = T__44; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:44:7: ( 'ComposedStructureAssembly' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:44:9: 'ComposedStructureAssembly' + { + match("ComposedStructureAssembly"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__44" + + // $ANTLR start "T__45" + public final void mT__45() throws RecognitionException { + try { + int _type = T__45; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:45:7: ( 'assemblyContexts' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:45:9: 'assemblyContexts' + { + match("assemblyContexts"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__45" + + // $ANTLR start "T__46" + public final void mT__46() throws RecognitionException { + try { + int _type = T__46; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:46:7: ( 'assemblyConnectors' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:46:9: 'assemblyConnectors' + { + match("assemblyConnectors"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__46" + + // $ANTLR start "T__47" + public final void mT__47() throws RecognitionException { + try { + int _type = T__47; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:47:7: ( 'providedDelegationConnectors' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:47:9: 'providedDelegationConnectors' + { + match("providedDelegationConnectors"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__47" + + // $ANTLR start "T__48" + public final void mT__48() throws RecognitionException { + try { + int _type = T__48; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:48:7: ( 'requiredDelegationConnectors' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:48:9: 'requiredDelegationConnectors' + { + match("requiredDelegationConnectors"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__48" + + // $ANTLR start "T__49" + public final void mT__49() throws RecognitionException { + try { + int _type = T__49; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:49:7: ( 'AssemblyContext' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:49:9: 'AssemblyContext' + { + match("AssemblyContext"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__49" + + // $ANTLR start "T__50" + public final void mT__50() throws RecognitionException { + try { + int _type = T__50; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:50:7: ( 'encapsulatedComponent' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:50:9: 'encapsulatedComponent' + { + match("encapsulatedComponent"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__50" + + // $ANTLR start "T__51" + public final void mT__51() throws RecognitionException { + try { + int _type = T__51; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:51:7: ( 'AssemblyConnector' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:51:9: 'AssemblyConnector' + { + match("AssemblyConnector"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__51" + + // $ANTLR start "T__52" + public final void mT__52() throws RecognitionException { + try { + int _type = T__52; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:52:7: ( 'requiredRole' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:52:9: 'requiredRole' + { + match("requiredRole"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__52" + + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { + try { + int _type = T__53; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:53:7: ( 'providedRole' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:53:9: 'providedRole' + { + match("providedRole"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__53" + + // $ANTLR start "T__54" + public final void mT__54() throws RecognitionException { + try { + int _type = T__54; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:54:7: ( 'providingAssemblyContext' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:54:9: 'providingAssemblyContext' + { + match("providingAssemblyContext"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__54" + + // $ANTLR start "T__55" + public final void mT__55() throws RecognitionException { + try { + int _type = T__55; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:55:7: ( 'requiringAssemblyContext' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:55:9: 'requiringAssemblyContext' + { + match("requiringAssemblyContext"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__55" + + // $ANTLR start "T__56" + public final void mT__56() throws RecognitionException { + try { + int _type = T__56; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:56:7: ( 'ProvidedDelegationConnector' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:56:9: 'ProvidedDelegationConnector' + { + match("ProvidedDelegationConnector"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__56" + + // $ANTLR start "T__57" + public final void mT__57() throws RecognitionException { + try { + int _type = T__57; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:57:7: ( 'assemblyContext' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:57:9: 'assemblyContext' + { + match("assemblyContext"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__57" + + // $ANTLR start "T__58" + public final void mT__58() throws RecognitionException { + try { + int _type = T__58; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:58:7: ( 'innerProvidedRole' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:58:9: 'innerProvidedRole' + { + match("innerProvidedRole"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__58" + + // $ANTLR start "T__59" + public final void mT__59() throws RecognitionException { + try { + int _type = T__59; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:59:7: ( 'outerProvidedRole' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:59:9: 'outerProvidedRole' + { + match("outerProvidedRole"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__59" + + // $ANTLR start "T__60" + public final void mT__60() throws RecognitionException { + try { + int _type = T__60; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:60:7: ( 'RequiredDelegationConnector' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:60:9: 'RequiredDelegationConnector' + { + match("RequiredDelegationConnector"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__60" + + // $ANTLR start "T__61" + public final void mT__61() throws RecognitionException { + try { + int _type = T__61; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:61:7: ( 'innerRequiredRole' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:61:9: 'innerRequiredRole' + { + match("innerRequiredRole"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__61" + + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { + try { + int _type = T__62; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:62:7: ( 'outerRequiredRole' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:62:9: 'outerRequiredRole' + { + match("outerRequiredRole"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__62" + + // $ANTLR start "T__63" + public final void mT__63() throws RecognitionException { + try { + int _type = T__63; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:63:7: ( 'INT' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:63:9: 'INT' + { + match("INT"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__63" + + // $ANTLR start "T__64" + public final void mT__64() throws RecognitionException { + try { + int _type = T__64; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:64:7: ( 'STRING' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:64:9: 'STRING' + { + match("STRING"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__64" + + // $ANTLR start "T__65" + public final void mT__65() throws RecognitionException { + try { + int _type = T__65; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:65:7: ( 'BOOL' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:65:9: 'BOOL' + { + match("BOOL"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__65" + + // $ANTLR start "T__66" + public final void mT__66() throws RecognitionException { + try { + int _type = T__66; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:66:7: ( 'DOUBLE' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:66:9: 'DOUBLE' + { + match("DOUBLE"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__66" + + // $ANTLR start "T__67" + public final void mT__67() throws RecognitionException { + try { + int _type = T__67; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:67:7: ( 'CHAR' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:67:9: 'CHAR' + { + match("CHAR"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__67" + + // $ANTLR start "T__68" + public final void mT__68() throws RecognitionException { + try { + int _type = T__68; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:68:7: ( 'BYTE' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:68:9: 'BYTE' + { + match("BYTE"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__68" + + // $ANTLR start "T__69" + public final void mT__69() throws RecognitionException { + try { + int _type = T__69; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:69:7: ( 'LONG' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:69:9: 'LONG' + { + match("LONG"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__69" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2705:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2705:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2705:11: ( '^' )? + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='^') ) { + alt1=1; + } + switch (alt1) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2705:11: '^' + { + match('^'); + + } + break; + + } + + if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2705:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop2; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ID" + + // $ANTLR start "RULE_INT" + public final void mRULE_INT() throws RecognitionException { + try { + int _type = RULE_INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2707:10: ( ( '0' .. '9' )+ ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2707:12: ( '0' .. '9' )+ + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2707:12: ( '0' .. '9' )+ + int cnt3=0; + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0>='0' && LA3_0<='9')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2707:13: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt3 >= 1 ) break loop3; + EarlyExitException eee = + new EarlyExitException(3, input); + throw eee; + } + cnt3++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_INT" + + // $ANTLR start "RULE_STRING" + public final void mRULE_STRING() throws RecognitionException { + try { + int _type = RULE_STRING; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0=='\"') ) { + alt6=1; + } + else if ( (LA6_0=='\'') ) { + alt6=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 6, 0, input); + + throw nvae; + } + switch (alt6) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* + loop4: + do { + int alt4=3; + int LA4_0 = input.LA(1); + + if ( (LA4_0=='\\') ) { + alt4=1; + } + else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) { + alt4=2; + } + + + switch (alt4) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:66: ~ ( ( '\\\\' | '\"' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop4; + } + } while (true); + + match('\"'); + + } + break; + case 2 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* + loop5: + do { + int alt5=3; + int LA5_0 = input.LA(1); + + if ( (LA5_0=='\\') ) { + alt5=1; + } + else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) { + alt5=2; + } + + + switch (alt5) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) + { + match('\\'); + if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + case 2 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2709:137: ~ ( ( '\\\\' | '\\'' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop5; + } + } while (true); + + match('\''); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STRING" + + // $ANTLR start "RULE_ML_COMMENT" + public final void mRULE_ML_COMMENT() throws RecognitionException { + try { + int _type = RULE_ML_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2711:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2711:19: '/*' ( options {greedy=false; } : . )* '*/' + { + match("/*"); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2711:24: ( options {greedy=false; } : . )* + loop7: + do { + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0=='*') ) { + int LA7_1 = input.LA(2); + + if ( (LA7_1=='/') ) { + alt7=2; + } + else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) { + alt7=1; + } + + + } + else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2711:52: . + { + matchAny(); + + } + break; + + default : + break loop7; + } + } while (true); + + match("*/"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ML_COMMENT" + + // $ANTLR start "RULE_SL_COMMENT" + public final void mRULE_SL_COMMENT() throws RecognitionException { + try { + int _type = RULE_SL_COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2713:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2713:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + { + match("//"); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2713:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2713:24: ~ ( ( '\\n' | '\\r' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop8; + } + } while (true); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2713:40: ( ( '\\r' )? '\\n' )? + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0=='\n'||LA10_0=='\r') ) { + alt10=1; + } + switch (alt10) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2713:41: ( '\\r' )? '\\n' + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2713:41: ( '\\r' )? + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0=='\r') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2713:41: '\\r' + { + match('\r'); + + } + break; + + } + + match('\n'); + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_SL_COMMENT" + + // $ANTLR start "RULE_WS" + public final void mRULE_WS() throws RecognitionException { + try { + int _type = RULE_WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2715:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2715:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2715:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt11=0; + loop11: + do { + int alt11=2; + int LA11_0 = input.LA(1); + + if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) { + alt11=1; + } + + + switch (alt11) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g: + { + if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + if ( cnt11 >= 1 ) break loop11; + EarlyExitException eee = + new EarlyExitException(11, input); + throw eee; + } + cnt11++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_WS" + + // $ANTLR start "RULE_ANY_OTHER" + public final void mRULE_ANY_OTHER() throws RecognitionException { + try { + int _type = RULE_ANY_OTHER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2717:16: ( . ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2717:18: . + { + matchAny(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + public void mTokens() throws RecognitionException { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt12=66; + alt12 = dfa12.predict(input); + switch (alt12) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:10: T__11 + { + mT__11(); + + } + break; + case 2 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:16: T__12 + { + mT__12(); + + } + break; + case 3 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:22: T__13 + { + mT__13(); + + } + break; + case 4 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:28: T__14 + { + mT__14(); + + } + break; + case 5 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:34: T__15 + { + mT__15(); + + } + break; + case 6 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:40: T__16 + { + mT__16(); + + } + break; + case 7 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:46: T__17 + { + mT__17(); + + } + break; + case 8 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:52: T__18 + { + mT__18(); + + } + break; + case 9 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:58: T__19 + { + mT__19(); + + } + break; + case 10 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:64: T__20 + { + mT__20(); + + } + break; + case 11 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:70: T__21 + { + mT__21(); + + } + break; + case 12 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:76: T__22 + { + mT__22(); + + } + break; + case 13 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:82: T__23 + { + mT__23(); + + } + break; + case 14 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:88: T__24 + { + mT__24(); + + } + break; + case 15 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:94: T__25 + { + mT__25(); + + } + break; + case 16 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:100: T__26 + { + mT__26(); + + } + break; + case 17 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:106: T__27 + { + mT__27(); + + } + break; + case 18 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:112: T__28 + { + mT__28(); + + } + break; + case 19 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:118: T__29 + { + mT__29(); + + } + break; + case 20 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:124: T__30 + { + mT__30(); + + } + break; + case 21 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:130: T__31 + { + mT__31(); + + } + break; + case 22 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:136: T__32 + { + mT__32(); + + } + break; + case 23 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:142: T__33 + { + mT__33(); + + } + break; + case 24 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:148: T__34 + { + mT__34(); + + } + break; + case 25 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:154: T__35 + { + mT__35(); + + } + break; + case 26 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:160: T__36 + { + mT__36(); + + } + break; + case 27 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:166: T__37 + { + mT__37(); + + } + break; + case 28 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:172: T__38 + { + mT__38(); + + } + break; + case 29 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:178: T__39 + { + mT__39(); + + } + break; + case 30 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:184: T__40 + { + mT__40(); + + } + break; + case 31 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:190: T__41 + { + mT__41(); + + } + break; + case 32 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:196: T__42 + { + mT__42(); + + } + break; + case 33 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:202: T__43 + { + mT__43(); + + } + break; + case 34 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:208: T__44 + { + mT__44(); + + } + break; + case 35 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:214: T__45 + { + mT__45(); + + } + break; + case 36 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:220: T__46 + { + mT__46(); + + } + break; + case 37 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:226: T__47 + { + mT__47(); + + } + break; + case 38 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:232: T__48 + { + mT__48(); + + } + break; + case 39 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:238: T__49 + { + mT__49(); + + } + break; + case 40 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:244: T__50 + { + mT__50(); + + } + break; + case 41 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:250: T__51 + { + mT__51(); + + } + break; + case 42 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:256: T__52 + { + mT__52(); + + } + break; + case 43 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:262: T__53 + { + mT__53(); + + } + break; + case 44 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:268: T__54 + { + mT__54(); + + } + break; + case 45 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:274: T__55 + { + mT__55(); + + } + break; + case 46 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:280: T__56 + { + mT__56(); + + } + break; + case 47 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:286: T__57 + { + mT__57(); + + } + break; + case 48 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:292: T__58 + { + mT__58(); + + } + break; + case 49 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:298: T__59 + { + mT__59(); + + } + break; + case 50 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:304: T__60 + { + mT__60(); + + } + break; + case 51 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:310: T__61 + { + mT__61(); + + } + break; + case 52 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:316: T__62 + { + mT__62(); + + } + break; + case 53 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:322: T__63 + { + mT__63(); + + } + break; + case 54 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:328: T__64 + { + mT__64(); + + } + break; + case 55 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:334: T__65 + { + mT__65(); + + } + break; + case 56 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:340: T__66 + { + mT__66(); + + } + break; + case 57 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:346: T__67 + { + mT__67(); + + } + break; + case 58 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:352: T__68 + { + mT__68(); + + } + break; + case 59 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:358: T__69 + { + mT__69(); + + } + break; + case 60 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:364: RULE_ID + { + mRULE_ID(); + + } + break; + case 61 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:372: RULE_INT + { + mRULE_INT(); + + } + break; + case 62 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:381: RULE_STRING + { + mRULE_STRING(); + + } + break; + case 63 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:393: RULE_ML_COMMENT + { + mRULE_ML_COMMENT(); + + } + break; + case 64 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:409: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 65 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:425: RULE_WS + { + mRULE_WS(); + + } + break; + case 66 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1:433: RULE_ANY_OTHER + { + mRULE_ANY_OTHER(); + + } + break; + + } + + } + + + protected DFA12 dfa12 = new DFA12(this); + static final String DFA12_eotS = + "\1\uffff\1\43\1\uffff\1\43\2\uffff\4\43\2\uffff\16\43\1\41\2\uffff"+ + "\3\41\2\uffff\1\43\2\uffff\1\43\2\uffff\6\43\2\uffff\22\43\5\uffff"+ + "\10\43\1\160\5\43\1\166\32\43\1\uffff\5\43\1\uffff\2\43\1\u0099"+ + "\2\43\1\u009c\1\u009d\1\43\1\u009f\1\u00a0\7\43\1\u00a8\20\43\1"+ + "\uffff\2\43\2\uffff\1\43\2\uffff\7\43\1\uffff\30\43\1\u00e3\4\43"+ + "\1\u00e8\34\43\1\uffff\4\43\1\uffff\3\43\1\u010e\13\43\1\u011b\4"+ + "\43\1\u0121\7\43\1\u012a\7\43\1\u0132\1\uffff\1\43\1\u0134\4\43"+ + "\1\u0139\5\43\1\uffff\5\43\1\uffff\10\43\1\uffff\1\u014d\4\43\1"+ + "\u0153\1\43\1\uffff\1\u0155\1\uffff\3\43\1\u0159\1\uffff\6\43\1"+ + "\u0160\14\43\1\uffff\5\43\1\uffff\1\43\1\uffff\3\43\1\uffff\2\43"+ + "\1\u0178\3\43\1\uffff\27\43\1\uffff\1\u0196\2\43\1\u0199\1\u019b"+ + "\27\43\1\u01b3\1\uffff\2\43\1\uffff\1\u01b6\1\uffff\27\43\1\uffff"+ + "\2\43\1\uffff\10\43\1\u01d8\30\43\1\uffff\1\u01f2\1\43\1\u01f4\11"+ + "\43\1\u01fe\1\u01ff\12\43\1\u020a\1\uffff\1\43\1\uffff\6\43\1\u0212"+ + "\1\u0213\1\u0214\2\uffff\5\43\1\u021a\2\43\1\u021d\1\43\1\uffff"+ + "\1\43\1\u0220\1\43\1\u0222\1\u0223\2\43\3\uffff\4\43\1\u022a\1\uffff"+ + "\1\u022b\1\43\1\uffff\1\43\1\u022e\1\uffff\1\43\2\uffff\1\u0230"+ + "\5\43\2\uffff\2\43\1\uffff\1\43\1\uffff\17\43\1\u0248\7\43\1\uffff"+ + "\11\43\1\u0259\1\43\1\u025b\4\43\1\uffff\1\43\1\uffff\1\u0261\4"+ + "\43\1\uffff\1\43\1\u0267\2\43\1\u026a\1\uffff\1\u026b\1\u026c\3"+ + "\uffff"; + static final String DFA12_eofS = + "\u026d\uffff"; + static final String DFA12_minS = + "\1\0\1\145\1\uffff\1\141\2\uffff\1\156\1\157\1\116\1\141\2\uffff"+ + "\1\151\1\145\1\110\1\162\1\171\1\157\1\117\1\163\1\124\1\163\1\156"+ + "\1\165\2\117\1\101\2\uffff\2\0\1\52\2\uffff\1\160\2\uffff\1\164"+ + "\2\uffff\1\156\1\155\1\156\1\124\1\162\1\157\2\uffff\1\147\1\146"+ + "\1\154\1\101\1\151\1\160\1\151\1\163\1\117\1\124\1\163\1\142\1\122"+ + "\1\163\1\143\1\164\1\125\1\116\5\uffff\1\157\1\165\1\141\2\145\1"+ + "\160\2\145\1\60\1\145\1\166\1\156\1\141\1\165\1\60\1\154\1\160\1"+ + "\122\1\155\1\166\1\145\1\144\1\151\1\114\1\105\1\145\1\123\1\111"+ + "\1\145\1\141\1\145\1\102\1\107\1\163\1\151\1\124\2\162\1\157\2\162"+ + "\1\uffff\1\156\1\151\1\141\1\164\1\151\1\uffff\1\145\1\157\1\60"+ + "\2\151\2\60\1\143\2\60\1\155\1\171\1\116\1\155\1\160\1\162\1\114"+ + "\1\60\1\151\1\162\2\171\1\146\1\104\1\156\1\146\1\104\1\164\1\144"+ + "\1\164\1\151\1\162\1\143\1\163\1\uffff\1\164\1\144\2\uffff\1\103"+ + "\2\uffff\1\142\1\163\1\107\1\142\1\163\1\120\1\105\1\uffff\1\164"+ + "\1\145\2\160\1\141\1\171\1\145\1\162\2\145\1\141\1\145\1\111\1\145"+ + "\1\165\1\157\1\145\1\164\1\145\1\151\1\145\1\157\1\154\1\164\1\60"+ + "\1\154\1\165\1\162\1\145\1\60\1\157\1\144\2\145\1\143\1\160\1\143"+ + "\1\157\1\161\1\156\2\143\1\156\1\171\1\144\1\156\1\162\1\156\1\144"+ + "\1\156\1\151\1\164\1\144\1\166\1\144\1\155\1\171\1\145\1\uffff\1"+ + "\171\1\154\1\157\1\161\1\uffff\1\162\1\104\1\163\1\60\2\145\1\154"+ + "\1\166\1\165\1\164\1\145\1\154\1\164\1\160\1\104\1\60\1\147\1\145"+ + "\1\163\1\104\1\60\1\147\1\157\1\145\1\123\1\145\1\104\1\160\1\60"+ + "\1\155\1\103\1\141\1\166\1\165\1\171\1\145\1\60\1\uffff\1\163\1"+ + "\60\1\141\2\151\1\163\1\60\1\141\2\145\1\157\1\145\1\uffff\1\101"+ + "\1\163\1\150\1\157\1\145\1\uffff\1\101\1\156\1\103\1\164\1\104\1"+ + "\145\2\157\1\uffff\1\60\1\157\1\164\2\151\1\60\1\154\1\uffff\1\60"+ + "\1\uffff\1\162\1\144\1\162\1\60\1\uffff\2\162\1\163\2\154\1\163"+ + "\1\60\1\151\2\154\1\163\1\104\1\141\1\157\1\162\1\141\1\154\2\156"+ + "\1\uffff\1\156\1\145\1\144\1\162\1\157\1\uffff\1\145\1\uffff\1\141"+ + "\2\145\1\uffff\1\141\1\146\1\60\2\145\1\163\1\uffff\1\160\2\145"+ + "\1\163\1\141\1\164\1\155\1\165\1\164\2\145\2\156\1\144\2\145\1\155"+ + "\1\147\1\164\2\144\1\164\1\141\1\uffff\1\60\1\147\1\145\2\60\1\147"+ + "\1\145\1\164\1\141\1\160\1\143\1\141\1\147\1\156\4\145\1\103\2\144"+ + "\1\160\1\141\1\151\2\122\1\151\1\143\1\60\1\uffff\1\141\1\155\1"+ + "\uffff\1\60\1\uffff\1\141\1\155\1\141\1\124\1\157\1\164\1\124\1"+ + "\141\1\164\1\170\1\143\1\170\1\143\1\157\2\122\1\157\1\164\4\157"+ + "\1\145\1\uffff\1\164\1\142\1\uffff\1\164\1\142\1\124\1\171\1\156"+ + "\1\165\1\171\1\164\1\60\4\164\1\155\2\157\1\156\1\151\1\156\2\154"+ + "\1\156\1\163\1\151\1\154\1\151\1\154\1\171\1\160\1\145\1\162\1\160"+ + "\1\151\1\uffff\1\60\1\157\1\60\1\157\1\160\2\154\1\145\1\157\1\163"+ + "\2\145\2\60\1\157\1\171\1\157\1\171\1\160\1\145\1\156\2\145\1\157"+ + "\1\60\1\uffff\1\162\1\uffff\1\162\1\157\2\145\2\156\3\60\2\uffff"+ + "\1\156\1\103\1\156\1\103\1\145\1\60\1\164\1\101\1\60\1\156\1\uffff"+ + "\1\163\1\60\1\156\2\60\1\164\1\103\3\uffff\1\103\1\157\1\103\1\157"+ + "\1\60\1\uffff\1\60\1\163\1\uffff\1\103\1\60\1\uffff\1\145\2\uffff"+ + "\1\60\2\157\1\156\1\157\1\156\2\uffff\1\163\1\157\1\uffff\1\156"+ + "\1\uffff\2\156\1\164\1\156\1\164\1\145\1\156\1\164\2\156\1\145\1"+ + "\156\1\145\1\155\1\156\1\60\2\145\1\170\1\145\1\170\1\142\1\145"+ + "\1\uffff\2\143\1\164\1\143\1\164\1\154\1\143\2\164\1\60\1\164\1"+ + "\60\1\171\1\164\2\157\1\uffff\1\157\1\uffff\1\60\1\157\3\162\1\uffff"+ + "\1\162\1\60\2\163\1\60\1\uffff\2\60\3\uffff"; + static final String DFA12_maxS = + "\1\uffff\1\145\1\uffff\1\141\2\uffff\1\156\1\157\1\156\1\162\2"+ + "\uffff\1\151\1\145\1\157\1\162\1\171\1\157\1\141\1\163\1\165\1\163"+ + "\1\156\1\165\2\117\1\172\2\uffff\2\uffff\1\57\2\uffff\1\161\2\uffff"+ + "\1\164\2\uffff\1\164\1\155\1\164\1\124\1\162\1\157\2\uffff\1\147"+ + "\1\161\1\155\1\101\1\157\1\160\1\151\1\163\1\117\1\124\1\163\1\142"+ + "\1\122\1\163\1\143\1\164\1\125\1\116\5\uffff\1\157\1\165\1\141\2"+ + "\145\1\160\2\145\1\172\1\145\1\166\1\156\1\141\1\165\1\172\1\154"+ + "\1\160\1\122\1\155\1\166\1\145\1\144\1\151\1\114\1\105\1\145\1\123"+ + "\1\111\1\145\1\141\1\145\1\102\1\107\1\163\1\151\1\164\2\162\1\157"+ + "\2\162\1\uffff\1\156\1\151\1\141\1\164\1\151\1\uffff\1\145\1\157"+ + "\1\172\2\151\2\172\1\143\2\172\1\155\1\171\1\116\1\155\1\160\1\162"+ + "\1\114\1\172\1\151\1\162\2\171\1\146\1\124\1\156\1\146\1\104\1\164"+ + "\1\144\1\164\1\151\1\162\1\143\1\163\1\uffff\1\164\1\144\2\uffff"+ + "\1\103\2\uffff\1\142\1\163\1\107\1\142\1\163\1\122\1\105\1\uffff"+ + "\1\164\1\145\2\160\1\141\1\171\1\145\1\162\2\145\1\141\1\145\1\124"+ + "\1\151\1\165\1\157\1\151\1\164\2\151\1\145\1\157\1\154\1\164\1\172"+ + "\1\154\1\165\1\162\1\145\1\172\1\157\1\144\2\145\1\143\1\160\1\143"+ + "\1\157\1\161\1\156\2\143\1\156\1\171\1\163\1\156\1\162\1\156\1\163"+ + "\1\156\1\151\1\164\1\144\1\166\1\144\1\155\1\171\1\145\1\uffff\1"+ + "\171\1\154\1\157\1\161\1\uffff\1\162\1\104\1\163\1\172\2\145\1\154"+ + "\1\166\1\165\1\164\1\145\1\154\1\164\1\160\1\122\1\172\1\147\1\145"+ + "\1\163\1\122\1\172\1\147\1\157\1\145\1\123\1\145\1\104\1\160\1\172"+ + "\1\155\1\103\1\141\1\166\1\165\1\171\1\145\1\172\1\uffff\1\163\1"+ + "\172\1\141\2\151\1\163\1\172\1\141\2\145\1\157\1\145\1\uffff\1\101"+ + "\1\163\1\150\1\157\1\145\1\uffff\1\101\1\156\1\104\1\164\1\104\1"+ + "\145\2\157\1\uffff\1\172\1\157\1\164\2\151\1\172\1\154\1\uffff\1"+ + "\172\1\uffff\1\162\1\144\1\162\1\172\1\uffff\2\162\1\163\2\154\1"+ + "\163\1\172\1\151\2\154\1\163\1\104\1\141\1\157\1\162\1\141\1\154"+ + "\2\156\1\uffff\1\156\1\145\1\144\1\162\1\157\1\uffff\1\145\1\uffff"+ + "\1\141\2\145\1\uffff\1\141\1\146\1\172\2\145\1\163\1\uffff\1\160"+ + "\2\145\1\163\1\141\1\164\1\155\1\165\1\164\2\145\2\164\1\144\2\145"+ + "\1\155\1\147\1\164\2\144\1\164\1\141\1\uffff\1\172\1\147\1\145\2"+ + "\172\1\147\1\145\1\164\1\141\1\160\1\143\1\141\1\147\1\156\4\145"+ + "\1\103\2\144\1\160\1\141\1\151\2\122\1\151\1\143\1\172\1\uffff\1"+ + "\141\1\155\1\uffff\1\172\1\uffff\1\141\1\155\1\141\1\124\1\157\1"+ + "\164\1\124\1\141\1\164\1\170\1\143\1\170\1\143\1\157\2\122\1\157"+ + "\1\164\4\157\1\145\1\uffff\1\164\1\142\1\uffff\1\164\1\142\1\124"+ + "\1\171\1\156\1\165\1\171\1\164\1\172\4\164\1\155\2\157\1\156\1\151"+ + "\1\156\2\154\1\156\1\163\1\151\1\154\1\151\1\154\1\171\1\160\1\145"+ + "\1\162\1\160\1\151\1\uffff\1\172\1\157\1\172\1\157\1\160\2\154\1"+ + "\145\1\157\1\163\2\145\2\172\1\157\1\171\1\157\1\171\1\160\1\145"+ + "\1\156\2\145\1\157\1\172\1\uffff\1\162\1\uffff\1\162\1\157\2\145"+ + "\2\156\3\172\2\uffff\1\156\1\103\1\156\1\103\1\145\1\172\1\164\1"+ + "\101\1\172\1\156\1\uffff\1\163\1\172\1\156\2\172\1\164\1\103\3\uffff"+ + "\1\103\1\157\1\103\1\157\1\172\1\uffff\1\172\1\163\1\uffff\1\103"+ + "\1\172\1\uffff\1\145\2\uffff\1\172\2\157\1\156\1\157\1\156\2\uffff"+ + "\1\163\1\157\1\uffff\1\156\1\uffff\2\156\1\164\1\156\1\164\1\145"+ + "\1\156\1\164\2\156\1\145\1\156\1\145\1\155\1\156\1\172\2\145\1\170"+ + "\1\145\1\170\1\142\1\145\1\uffff\2\143\1\164\1\143\1\164\1\154\1"+ + "\143\2\164\1\172\1\164\1\172\1\171\1\164\2\157\1\uffff\1\157\1\uffff"+ + "\1\172\1\157\3\162\1\uffff\1\162\1\172\2\163\1\172\1\uffff\2\172"+ + "\3\uffff"; + static final String DFA12_acceptS = + "\2\uffff\1\2\1\uffff\1\4\1\5\4\uffff\1\12\1\13\17\uffff\1\74\1"+ + "\75\3\uffff\1\101\1\102\1\uffff\1\74\1\2\1\uffff\1\4\1\5\6\uffff"+ + "\1\12\1\13\22\uffff\1\75\1\76\1\77\1\100\1\101\51\uffff\1\65\5\uffff"+ + "\1\30\42\uffff\1\71\2\uffff\1\27\1\33\1\uffff\1\67\1\72\7\uffff"+ + "\1\73\72\uffff\1\66\4\uffff\1\70\45\uffff\1\32\14\uffff\1\34\5\uffff"+ + "\1\35\10\uffff\1\40\7\uffff\1\3\1\uffff\1\22\4\uffff\1\10\23\uffff"+ + "\1\41\5\uffff\1\1\1\uffff\1\6\3\uffff\1\7\6\uffff\1\14\27\uffff"+ + "\1\24\35\uffff\1\53\2\uffff\1\16\1\uffff\1\52\27\uffff\1\17\2\uffff"+ + "\1\20\41\uffff\1\36\31\uffff\1\57\1\uffff\1\47\11\uffff\1\31\1\11"+ + "\12\uffff\1\43\7\uffff\1\25\1\60\1\63\5\uffff\1\23\2\uffff\1\26"+ + "\2\uffff\1\51\1\uffff\1\61\1\64\6\uffff\1\21\1\37\2\uffff\1\44\1"+ + "\uffff\1\15\27\uffff\1\50\20\uffff\1\54\1\uffff\1\55\5\uffff\1\42"+ + "\5\uffff\1\62\2\uffff\1\56\1\45\1\46"; + static final String DFA12_specialS = + "\1\2\34\uffff\1\1\1\0\u024e\uffff}>"; + static final String[] DFA12_transitionS = { + "\11\41\2\40\2\41\1\40\22\41\1\40\1\41\1\35\4\41\1\36\1\12\1"+ + "\13\2\41\1\4\2\41\1\37\12\34\7\41\1\25\1\22\1\16\1\30\4\33\1"+ + "\10\2\33\1\31\3\33\1\17\1\33\1\1\1\24\7\33\3\41\1\32\1\33\1"+ + "\41\1\23\1\33\1\7\1\3\1\26\3\33\1\6\5\33\1\27\1\11\1\33\1\15"+ + "\1\14\1\20\1\33\1\21\4\33\1\2\1\41\1\5\uff82\41", + "\1\42", + "", + "\1\45", + "", + "", + "\1\50", + "\1\51", + "\1\53\37\uffff\1\52", + "\1\54\20\uffff\1\55", + "", + "", + "\1\60", + "\1\61", + "\1\63\46\uffff\1\62", + "\1\64", + "\1\65", + "\1\66", + "\1\70\11\uffff\1\71\7\uffff\1\67", + "\1\72", + "\1\74\40\uffff\1\73", + "\1\75", + "\1\76", + "\1\77", + "\1\100", + "\1\101", + "\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "", + "\0\103", + "\0\103", + "\1\104\4\uffff\1\105", + "", + "", + "\1\107\1\110", + "", + "", + "\1\111", + "", + "", + "\1\113\5\uffff\1\112", + "\1\114", + "\1\116\5\uffff\1\115", + "\1\117", + "\1\120", + "\1\121", + "", + "", + "\1\122", + "\1\125\5\uffff\1\123\4\uffff\1\124", + "\1\126\1\127", + "\1\130", + "\1\131\5\uffff\1\132", + "\1\133", + "\1\134", + "\1\135", + "\1\136", + "\1\137", + "\1\140", + "\1\141", + "\1\142", + "\1\143", + "\1\144", + "\1\145", + "\1\146", + "\1\147", + "", + "", + "", + "", + "", + "\1\150", + "\1\151", + "\1\152", + "\1\153", + "\1\154", + "\1\155", + "\1\156", + "\1\157", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\161", + "\1\162", + "\1\163", + "\1\164", + "\1\165", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\167", + "\1\170", + "\1\171", + "\1\172", + "\1\173", + "\1\174", + "\1\175", + "\1\176", + "\1\177", + "\1\u0080", + "\1\u0081", + "\1\u0082", + "\1\u0083", + "\1\u0084", + "\1\u0085", + "\1\u0086", + "\1\u0087", + "\1\u0088", + "\1\u0089", + "\1\u008a", + "\1\u008c\37\uffff\1\u008b", + "\1\u008d", + "\1\u008e", + "\1\u008f", + "\1\u0090", + "\1\u0091", + "", + "\1\u0092", + "\1\u0093", + "\1\u0094", + "\1\u0095", + "\1\u0096", + "", + "\1\u0097", + "\1\u0098", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u009a", + "\1\u009b", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u009e", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u00a1", + "\1\u00a2", + "\1\u00a3", + "\1\u00a4", + "\1\u00a5", + "\1\u00a6", + "\1\u00a7", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u00a9", + "\1\u00aa", + "\1\u00ab", + "\1\u00ac", + "\1\u00ad", + "\1\u00af\13\uffff\1\u00b0\1\uffff\1\u00b1\1\uffff\1\u00ae", + "\1\u00b2", + "\1\u00b3", + "\1\u00b4", + "\1\u00b5", + "\1\u00b6", + "\1\u00b7", + "\1\u00b8", + "\1\u00b9", + "\1\u00ba", + "\1\u00bb", + "", + "\1\u00bc", + "\1\u00bd", + "", + "", + "\1\u00be", + "", + "", + "\1\u00bf", + "\1\u00c0", + "\1\u00c1", + "\1\u00c2", + "\1\u00c3", + "\1\u00c4\1\uffff\1\u00c5", + "\1\u00c6", + "", + "\1\u00c7", + "\1\u00c8", + "\1\u00c9", + "\1\u00ca", + "\1\u00cb", + "\1\u00cc", + "\1\u00cd", + "\1\u00ce", + "\1\u00cf", + "\1\u00d0", + "\1\u00d1", + "\1\u00d2", + "\1\u00d3\12\uffff\1\u00d4", + "\1\u00d5\3\uffff\1\u00d6", + "\1\u00d7", + "\1\u00d8", + "\1\u00d9\3\uffff\1\u00da", + "\1\u00db", + "\1\u00dd\3\uffff\1\u00dc", + "\1\u00de", + "\1\u00df", + "\1\u00e0", + "\1\u00e1", + "\1\u00e2", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u00e4", + "\1\u00e5", + "\1\u00e6", + "\1\u00e7", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u00e9", + "\1\u00ea", + "\1\u00eb", + "\1\u00ec", + "\1\u00ed", + "\1\u00ee", + "\1\u00ef", + "\1\u00f0", + "\1\u00f1", + "\1\u00f2", + "\1\u00f3", + "\1\u00f4", + "\1\u00f5", + "\1\u00f6", + "\1\u00f7\16\uffff\1\u00f8", + "\1\u00f9", + "\1\u00fa", + "\1\u00fb", + "\1\u00fc\16\uffff\1\u00fd", + "\1\u00fe", + "\1\u00ff", + "\1\u0100", + "\1\u0101", + "\1\u0102", + "\1\u0103", + "\1\u0104", + "\1\u0105", + "\1\u0106", + "", + "\1\u0107", + "\1\u0108", + "\1\u0109", + "\1\u010a", + "", + "\1\u010b", + "\1\u010c", + "\1\u010d", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u010f", + "\1\u0110", + "\1\u0111", + "\1\u0112", + "\1\u0113", + "\1\u0114", + "\1\u0115", + "\1\u0116", + "\1\u0117", + "\1\u0118", + "\1\u011a\15\uffff\1\u0119", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u011c", + "\1\u011d", + "\1\u011e", + "\1\u0120\15\uffff\1\u011f", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0122", + "\1\u0123", + "\1\u0124", + "\1\u0125", + "\1\u0126", + "\1\u0127", + "\1\u0128", + "\12\43\7\uffff\2\43\1\u0129\27\43\4\uffff\1\43\1\uffff\32"+ + "\43", + "\1\u012b", + "\1\u012c", + "\1\u012d", + "\1\u012e", + "\1\u012f", + "\1\u0130", + "\1\u0131", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\u0133", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0135", + "\1\u0136", + "\1\u0137", + "\1\u0138", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u013a", + "\1\u013b", + "\1\u013c", + "\1\u013d", + "\1\u013e", + "", + "\1\u013f", + "\1\u0140", + "\1\u0141", + "\1\u0142", + "\1\u0143", + "", + "\1\u0144", + "\1\u0145", + "\1\u0147\1\u0146", + "\1\u0148", + "\1\u0149", + "\1\u014a", + "\1\u014b", + "\1\u014c", + "", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u014e", + "\1\u014f", + "\1\u0150", + "\1\u0151", + "\12\43\7\uffff\2\43\1\u0152\27\43\4\uffff\1\43\1\uffff\32"+ + "\43", + "\1\u0154", + "", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\u0156", + "\1\u0157", + "\1\u0158", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\u015a", + "\1\u015b", + "\1\u015c", + "\1\u015d", + "\1\u015e", + "\1\u015f", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0161", + "\1\u0162", + "\1\u0163", + "\1\u0164", + "\1\u0165", + "\1\u0166", + "\1\u0167", + "\1\u0168", + "\1\u0169", + "\1\u016a", + "\1\u016b", + "\1\u016c", + "", + "\1\u016d", + "\1\u016e", + "\1\u016f", + "\1\u0170", + "\1\u0171", + "", + "\1\u0172", + "", + "\1\u0173", + "\1\u0174", + "\1\u0175", + "", + "\1\u0176", + "\1\u0177", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0179", + "\1\u017a", + "\1\u017b", + "", + "\1\u017c", + "\1\u017d", + "\1\u017e", + "\1\u017f", + "\1\u0180", + "\1\u0181", + "\1\u0182", + "\1\u0183", + "\1\u0184", + "\1\u0185", + "\1\u0186", + "\1\u0188\5\uffff\1\u0187", + "\1\u018a\5\uffff\1\u0189", + "\1\u018b", + "\1\u018c", + "\1\u018d", + "\1\u018e", + "\1\u018f", + "\1\u0190", + "\1\u0191", + "\1\u0192", + "\1\u0193", + "\1\u0194", + "", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\22\43\1\u0195\7"+ + "\43", + "\1\u0197", + "\1\u0198", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\22\43\1\u019a\7"+ + "\43", + "\1\u019c", + "\1\u019d", + "\1\u019e", + "\1\u019f", + "\1\u01a0", + "\1\u01a1", + "\1\u01a2", + "\1\u01a3", + "\1\u01a4", + "\1\u01a5", + "\1\u01a6", + "\1\u01a7", + "\1\u01a8", + "\1\u01a9", + "\1\u01aa", + "\1\u01ab", + "\1\u01ac", + "\1\u01ad", + "\1\u01ae", + "\1\u01af", + "\1\u01b0", + "\1\u01b1", + "\1\u01b2", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\u01b4", + "\1\u01b5", + "", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\u01b7", + "\1\u01b8", + "\1\u01b9", + "\1\u01ba", + "\1\u01bb", + "\1\u01bc", + "\1\u01bd", + "\1\u01be", + "\1\u01bf", + "\1\u01c0", + "\1\u01c1", + "\1\u01c2", + "\1\u01c3", + "\1\u01c4", + "\1\u01c5", + "\1\u01c6", + "\1\u01c7", + "\1\u01c8", + "\1\u01c9", + "\1\u01ca", + "\1\u01cb", + "\1\u01cc", + "\1\u01cd", + "", + "\1\u01ce", + "\1\u01cf", + "", + "\1\u01d0", + "\1\u01d1", + "\1\u01d2", + "\1\u01d3", + "\1\u01d4", + "\1\u01d5", + "\1\u01d6", + "\1\u01d7", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u01d9", + "\1\u01da", + "\1\u01db", + "\1\u01dc", + "\1\u01dd", + "\1\u01de", + "\1\u01df", + "\1\u01e0", + "\1\u01e1", + "\1\u01e2", + "\1\u01e3", + "\1\u01e4", + "\1\u01e5", + "\1\u01e6", + "\1\u01e7", + "\1\u01e8", + "\1\u01e9", + "\1\u01ea", + "\1\u01eb", + "\1\u01ec", + "\1\u01ed", + "\1\u01ee", + "\1\u01ef", + "\1\u01f0", + "", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\22\43\1\u01f1\7"+ + "\43", + "\1\u01f3", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u01f5", + "\1\u01f6", + "\1\u01f7", + "\1\u01f8", + "\1\u01f9", + "\1\u01fa", + "\1\u01fb", + "\1\u01fc", + "\1\u01fd", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0200", + "\1\u0201", + "\1\u0202", + "\1\u0203", + "\1\u0204", + "\1\u0205", + "\1\u0206", + "\1\u0207", + "\1\u0208", + "\1\u0209", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\u020b", + "", + "\1\u020c", + "\1\u020d", + "\1\u020e", + "\1\u020f", + "\1\u0210", + "\1\u0211", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "", + "\1\u0215", + "\1\u0216", + "\1\u0217", + "\1\u0218", + "\1\u0219", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u021b", + "\1\u021c", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u021e", + "", + "\1\u021f", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0221", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0224", + "\1\u0225", + "", + "", + "", + "\1\u0226", + "\1\u0227", + "\1\u0228", + "\1\u0229", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u022c", + "", + "\1\u022d", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\1\u022f", + "", + "", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0231", + "\1\u0232", + "\1\u0233", + "\1\u0234", + "\1\u0235", + "", + "", + "\1\u0236", + "\1\u0237", + "", + "\1\u0238", + "", + "\1\u0239", + "\1\u023a", + "\1\u023b", + "\1\u023c", + "\1\u023d", + "\1\u023e", + "\1\u023f", + "\1\u0240", + "\1\u0241", + "\1\u0242", + "\1\u0243", + "\1\u0244", + "\1\u0245", + "\1\u0246", + "\1\u0247", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0249", + "\1\u024a", + "\1\u024b", + "\1\u024c", + "\1\u024d", + "\1\u024e", + "\1\u024f", + "", + "\1\u0250", + "\1\u0251", + "\1\u0252", + "\1\u0253", + "\1\u0254", + "\1\u0255", + "\1\u0256", + "\1\u0257", + "\1\u0258", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u025a", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u025c", + "\1\u025d", + "\1\u025e", + "\1\u025f", + "", + "\1\u0260", + "", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0262", + "\1\u0263", + "\1\u0264", + "\1\u0265", + "", + "\1\u0266", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0268", + "\1\u0269", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "", + "" + }; + + static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS); + static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS); + static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS); + static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS); + static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS); + static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS); + static final short[][] DFA12_transition; + + static { + int numStates = DFA12_transitionS.length; + DFA12_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]); + } + } + + static class DFA12 extends DFA { + + public DFA12(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 12; + this.eot = DFA12_eot; + this.eof = DFA12_eof; + this.min = DFA12_min; + this.max = DFA12_max; + this.accept = DFA12_accept; + this.special = DFA12_special; + this.transition = DFA12_transition; + } + public String getDescription() { + return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + IntStream input = _input; + int _s = s; + switch ( s ) { + case 0 : + int LA12_30 = input.LA(1); + + s = -1; + if ( ((LA12_30>='\u0000' && LA12_30<='\uFFFF')) ) {s = 67;} + + else s = 33; + + if ( s>=0 ) return s; + break; + case 1 : + int LA12_29 = input.LA(1); + + s = -1; + if ( ((LA12_29>='\u0000' && LA12_29<='\uFFFF')) ) {s = 67;} + + else s = 33; + + if ( s>=0 ) return s; + break; + case 2 : + int LA12_0 = input.LA(1); + + s = -1; + if ( (LA12_0=='R') ) {s = 1;} + + else if ( (LA12_0=='{') ) {s = 2;} + + else if ( (LA12_0=='d') ) {s = 3;} + + else if ( (LA12_0==',') ) {s = 4;} + + else if ( (LA12_0=='}') ) {s = 5;} + + else if ( (LA12_0=='i') ) {s = 6;} + + else if ( (LA12_0=='c') ) {s = 7;} + + else if ( (LA12_0=='I') ) {s = 8;} + + else if ( (LA12_0=='p') ) {s = 9;} + + else if ( (LA12_0=='(') ) {s = 10;} + + else if ( (LA12_0==')') ) {s = 11;} + + else if ( (LA12_0=='s') ) {s = 12;} + + else if ( (LA12_0=='r') ) {s = 13;} + + else if ( (LA12_0=='C') ) {s = 14;} + + else if ( (LA12_0=='P') ) {s = 15;} + + else if ( (LA12_0=='t') ) {s = 16;} + + else if ( (LA12_0=='v') ) {s = 17;} + + else if ( (LA12_0=='B') ) {s = 18;} + + else if ( (LA12_0=='a') ) {s = 19;} + + else if ( (LA12_0=='S') ) {s = 20;} + + else if ( (LA12_0=='A') ) {s = 21;} + + else if ( (LA12_0=='e') ) {s = 22;} + + else if ( (LA12_0=='o') ) {s = 23;} + + else if ( (LA12_0=='D') ) {s = 24;} + + else if ( (LA12_0=='L') ) {s = 25;} + + else if ( (LA12_0=='^') ) {s = 26;} + + else if ( ((LA12_0>='E' && LA12_0<='H')||(LA12_0>='J' && LA12_0<='K')||(LA12_0>='M' && LA12_0<='O')||LA12_0=='Q'||(LA12_0>='T' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||(LA12_0>='f' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='n')||LA12_0=='q'||LA12_0=='u'||(LA12_0>='w' && LA12_0<='z')) ) {s = 27;} + + else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 28;} + + else if ( (LA12_0=='\"') ) {s = 29;} + + else if ( (LA12_0=='\'') ) {s = 30;} + + else if ( (LA12_0=='/') ) {s = 31;} + + else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 32;} + + else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='*' && LA12_0<='+')||(LA12_0>='-' && LA12_0<='.')||(LA12_0>=':' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 33;} + + if ( s>=0 ) return s; + break; + } + NoViableAltException nvae = + new NoViableAltException(getDescription(), 12, _s, input); + error(nvae); + throw nvae; + } + } + + +} \ No newline at end of file diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTestParser.java b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTestParser.java new file mode 100644 index 0000000000000000000000000000000000000000..f55f405244b2de7f5697ddbddd008a896a164fb0 --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTestParser.java @@ -0,0 +1,6984 @@ +package org.xtext.example.mydsl.parser.antlr.internal; + +import org.eclipse.xtext.*; +import org.eclipse.xtext.parser.*; +import org.eclipse.xtext.parser.impl.*; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.common.util.Enumerator; +import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; +import org.eclipse.xtext.parser.antlr.XtextTokenStream; +import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; +import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken; +import org.xtext.example.mydsl.services.MyDslTestGrammarAccess; + + + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +@SuppressWarnings("all") +public class InternalMyDslTestParser extends AbstractInternalAntlrParser { + public static final String[] tokenNames = new String[] { + "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'Repository'", "'{'", "'datatypes'", "','", "'}'", "'interfaces'", "'components'", "'Interface'", "'parentInterfaces'", "'('", "')'", "'signatures'", "'RepositoryComponent'", "'relationship'", "'providedRoles'", "'requiredRoles'", "'CollectionDataType'", "'innerType'", "'CompositeDataType'", "'parentTypes'", "'innerDeclarations'", "'PrimitiveDataType'", "'type'", "'ref'", "'InnerDeclaration'", "'dataType'", "'void'", "'provides'", "'requires'", "'BasicComponent'", "'CompositeComponent'", "'assembly'", "'SubSystem'", "'ComposedStructureAssembly'", "'assemblyContexts'", "'assemblyConnectors'", "'providedDelegationConnectors'", "'requiredDelegationConnectors'", "'AssemblyContext'", "'encapsulatedComponent'", "'AssemblyConnector'", "'requiredRole'", "'providedRole'", "'providingAssemblyContext'", "'requiringAssemblyContext'", "'ProvidedDelegationConnector'", "'assemblyContext'", "'innerProvidedRole'", "'outerProvidedRole'", "'RequiredDelegationConnector'", "'innerRequiredRole'", "'outerRequiredRole'", "'INT'", "'STRING'", "'BOOL'", "'DOUBLE'", "'CHAR'", "'BYTE'", "'LONG'" + }; + public static final int T__68=68; + public static final int T__69=69; + public static final int RULE_ID=5; + public static final int T__66=66; + public static final int T__67=67; + public static final int T__64=64; + public static final int T__29=29; + public static final int T__65=65; + public static final int T__28=28; + public static final int T__62=62; + public static final int T__27=27; + public static final int T__63=63; + public static final int T__26=26; + public static final int T__25=25; + public static final int T__24=24; + public static final int T__23=23; + public static final int T__22=22; + public static final int RULE_ANY_OTHER=10; + public static final int T__21=21; + public static final int T__20=20; + public static final int T__61=61; + public static final int T__60=60; + public static final int EOF=-1; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__19=19; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__51=51; + public static final int T__16=16; + public static final int T__52=52; + public static final int T__15=15; + public static final int T__53=53; + public static final int T__18=18; + public static final int T__54=54; + public static final int T__17=17; + public static final int T__12=12; + public static final int T__11=11; + public static final int T__14=14; + public static final int T__13=13; + public static final int T__59=59; + public static final int RULE_INT=6; + public static final int T__50=50; + public static final int T__42=42; + public static final int T__43=43; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__44=44; + public static final int T__45=45; + public static final int T__48=48; + public static final int T__49=49; + public static final int RULE_SL_COMMENT=8; + public static final int RULE_ML_COMMENT=7; + public static final int T__30=30; + public static final int T__31=31; + public static final int RULE_STRING=4; + public static final int T__32=32; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int T__36=36; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int RULE_WS=9; + + // delegates + // delegators + + + public InternalMyDslTestParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public InternalMyDslTestParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + + } + + + public String[] getTokenNames() { return InternalMyDslTestParser.tokenNames; } + public String getGrammarFileName() { return "../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g"; } + + + + private MyDslTestGrammarAccess grammarAccess; + + public InternalMyDslTestParser(TokenStream input, MyDslTestGrammarAccess grammarAccess) { + this(input); + this.grammarAccess = grammarAccess; + registerRules(grammarAccess.getGrammar()); + } + + @Override + protected String getFirstRuleName() { + return "Repository"; + } + + @Override + protected MyDslTestGrammarAccess getGrammarAccess() { + return grammarAccess; + } + + + + // $ANTLR start "entryRuleRepository" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:68:1: entryRuleRepository returns [EObject current=null] : iv_ruleRepository= ruleRepository EOF ; + public final EObject entryRuleRepository() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRepository = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:69:2: (iv_ruleRepository= ruleRepository EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:70:2: iv_ruleRepository= ruleRepository EOF + { + newCompositeNode(grammarAccess.getRepositoryRule()); + pushFollow(FollowSets000.FOLLOW_ruleRepository_in_entryRuleRepository75); + iv_ruleRepository=ruleRepository(); + + state._fsp--; + + current =iv_ruleRepository; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleRepository85); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRepository" + + + // $ANTLR start "ruleRepository" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:77:1: ruleRepository returns [EObject current=null] : (otherlv_0= 'Repository' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'datatypes' otherlv_4= '{' ( (lv_datatypes_5_0= ruleDataType ) ) (otherlv_6= ',' ( (lv_datatypes_7_0= ruleDataType ) ) )* otherlv_8= '}' )? (otherlv_9= 'interfaces' otherlv_10= '{' ( (lv_interfaces_11_0= ruleInterface ) ) (otherlv_12= ',' ( (lv_interfaces_13_0= ruleInterface ) ) )* otherlv_14= '}' )? (otherlv_15= 'components' otherlv_16= '{' ( (lv_components_17_0= ruleRepositoryComponent ) ) (otherlv_18= ',' ( (lv_components_19_0= ruleRepositoryComponent ) ) )* otherlv_20= '}' )? otherlv_21= '}' ) ; + public final EObject ruleRepository() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_15=null; + Token otherlv_16=null; + Token otherlv_18=null; + Token otherlv_20=null; + Token otherlv_21=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_datatypes_5_0 = null; + + EObject lv_datatypes_7_0 = null; + + EObject lv_interfaces_11_0 = null; + + EObject lv_interfaces_13_0 = null; + + EObject lv_components_17_0 = null; + + EObject lv_components_19_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:80:28: ( (otherlv_0= 'Repository' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'datatypes' otherlv_4= '{' ( (lv_datatypes_5_0= ruleDataType ) ) (otherlv_6= ',' ( (lv_datatypes_7_0= ruleDataType ) ) )* otherlv_8= '}' )? (otherlv_9= 'interfaces' otherlv_10= '{' ( (lv_interfaces_11_0= ruleInterface ) ) (otherlv_12= ',' ( (lv_interfaces_13_0= ruleInterface ) ) )* otherlv_14= '}' )? (otherlv_15= 'components' otherlv_16= '{' ( (lv_components_17_0= ruleRepositoryComponent ) ) (otherlv_18= ',' ( (lv_components_19_0= ruleRepositoryComponent ) ) )* otherlv_20= '}' )? otherlv_21= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:81:1: (otherlv_0= 'Repository' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'datatypes' otherlv_4= '{' ( (lv_datatypes_5_0= ruleDataType ) ) (otherlv_6= ',' ( (lv_datatypes_7_0= ruleDataType ) ) )* otherlv_8= '}' )? (otherlv_9= 'interfaces' otherlv_10= '{' ( (lv_interfaces_11_0= ruleInterface ) ) (otherlv_12= ',' ( (lv_interfaces_13_0= ruleInterface ) ) )* otherlv_14= '}' )? (otherlv_15= 'components' otherlv_16= '{' ( (lv_components_17_0= ruleRepositoryComponent ) ) (otherlv_18= ',' ( (lv_components_19_0= ruleRepositoryComponent ) ) )* otherlv_20= '}' )? otherlv_21= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:81:1: (otherlv_0= 'Repository' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'datatypes' otherlv_4= '{' ( (lv_datatypes_5_0= ruleDataType ) ) (otherlv_6= ',' ( (lv_datatypes_7_0= ruleDataType ) ) )* otherlv_8= '}' )? (otherlv_9= 'interfaces' otherlv_10= '{' ( (lv_interfaces_11_0= ruleInterface ) ) (otherlv_12= ',' ( (lv_interfaces_13_0= ruleInterface ) ) )* otherlv_14= '}' )? (otherlv_15= 'components' otherlv_16= '{' ( (lv_components_17_0= ruleRepositoryComponent ) ) (otherlv_18= ',' ( (lv_components_19_0= ruleRepositoryComponent ) ) )* otherlv_20= '}' )? otherlv_21= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:81:3: otherlv_0= 'Repository' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'datatypes' otherlv_4= '{' ( (lv_datatypes_5_0= ruleDataType ) ) (otherlv_6= ',' ( (lv_datatypes_7_0= ruleDataType ) ) )* otherlv_8= '}' )? (otherlv_9= 'interfaces' otherlv_10= '{' ( (lv_interfaces_11_0= ruleInterface ) ) (otherlv_12= ',' ( (lv_interfaces_13_0= ruleInterface ) ) )* otherlv_14= '}' )? (otherlv_15= 'components' otherlv_16= '{' ( (lv_components_17_0= ruleRepositoryComponent ) ) (otherlv_18= ',' ( (lv_components_19_0= ruleRepositoryComponent ) ) )* otherlv_20= '}' )? otherlv_21= '}' + { + otherlv_0=(Token)match(input,11,FollowSets000.FOLLOW_11_in_ruleRepository122); + + newLeafNode(otherlv_0, grammarAccess.getRepositoryAccess().getRepositoryKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:85:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:86:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:86:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:87:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getRepositoryAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleRepository143); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleRepository155); + + newLeafNode(otherlv_2, grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_2()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:107:1: (otherlv_3= 'datatypes' otherlv_4= '{' ( (lv_datatypes_5_0= ruleDataType ) ) (otherlv_6= ',' ( (lv_datatypes_7_0= ruleDataType ) ) )* otherlv_8= '}' )? + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==13) ) { + alt2=1; + } + switch (alt2) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:107:3: otherlv_3= 'datatypes' otherlv_4= '{' ( (lv_datatypes_5_0= ruleDataType ) ) (otherlv_6= ',' ( (lv_datatypes_7_0= ruleDataType ) ) )* otherlv_8= '}' + { + otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleRepository168); + + newLeafNode(otherlv_3, grammarAccess.getRepositoryAccess().getDatatypesKeyword_3_0()); + + otherlv_4=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleRepository180); + + newLeafNode(otherlv_4, grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_3_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:115:1: ( (lv_datatypes_5_0= ruleDataType ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:116:1: (lv_datatypes_5_0= ruleDataType ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:116:1: (lv_datatypes_5_0= ruleDataType ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:117:3: lv_datatypes_5_0= ruleDataType + { + + newCompositeNode(grammarAccess.getRepositoryAccess().getDatatypesDataTypeParserRuleCall_3_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleDataType_in_ruleRepository201); + lv_datatypes_5_0=ruleDataType(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + current, + "datatypes", + lv_datatypes_5_0, + "DataType"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:133:2: (otherlv_6= ',' ( (lv_datatypes_7_0= ruleDataType ) ) )* + loop1: + do { + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==14) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:133:4: otherlv_6= ',' ( (lv_datatypes_7_0= ruleDataType ) ) + { + otherlv_6=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleRepository214); + + newLeafNode(otherlv_6, grammarAccess.getRepositoryAccess().getCommaKeyword_3_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:137:1: ( (lv_datatypes_7_0= ruleDataType ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:138:1: (lv_datatypes_7_0= ruleDataType ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:138:1: (lv_datatypes_7_0= ruleDataType ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:139:3: lv_datatypes_7_0= ruleDataType + { + + newCompositeNode(grammarAccess.getRepositoryAccess().getDatatypesDataTypeParserRuleCall_3_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleDataType_in_ruleRepository235); + lv_datatypes_7_0=ruleDataType(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + current, + "datatypes", + lv_datatypes_7_0, + "DataType"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop1; + } + } while (true); + + otherlv_8=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleRepository249); + + newLeafNode(otherlv_8, grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_3_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:159:3: (otherlv_9= 'interfaces' otherlv_10= '{' ( (lv_interfaces_11_0= ruleInterface ) ) (otherlv_12= ',' ( (lv_interfaces_13_0= ruleInterface ) ) )* otherlv_14= '}' )? + int alt4=2; + int LA4_0 = input.LA(1); + + if ( (LA4_0==16) ) { + alt4=1; + } + switch (alt4) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:159:5: otherlv_9= 'interfaces' otherlv_10= '{' ( (lv_interfaces_11_0= ruleInterface ) ) (otherlv_12= ',' ( (lv_interfaces_13_0= ruleInterface ) ) )* otherlv_14= '}' + { + otherlv_9=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleRepository264); + + newLeafNode(otherlv_9, grammarAccess.getRepositoryAccess().getInterfacesKeyword_4_0()); + + otherlv_10=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleRepository276); + + newLeafNode(otherlv_10, grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_4_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:167:1: ( (lv_interfaces_11_0= ruleInterface ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:168:1: (lv_interfaces_11_0= ruleInterface ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:168:1: (lv_interfaces_11_0= ruleInterface ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:169:3: lv_interfaces_11_0= ruleInterface + { + + newCompositeNode(grammarAccess.getRepositoryAccess().getInterfacesInterfaceParserRuleCall_4_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleInterface_in_ruleRepository297); + lv_interfaces_11_0=ruleInterface(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + current, + "interfaces", + lv_interfaces_11_0, + "Interface"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:185:2: (otherlv_12= ',' ( (lv_interfaces_13_0= ruleInterface ) ) )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==14) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:185:4: otherlv_12= ',' ( (lv_interfaces_13_0= ruleInterface ) ) + { + otherlv_12=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleRepository310); + + newLeafNode(otherlv_12, grammarAccess.getRepositoryAccess().getCommaKeyword_4_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:189:1: ( (lv_interfaces_13_0= ruleInterface ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:190:1: (lv_interfaces_13_0= ruleInterface ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:190:1: (lv_interfaces_13_0= ruleInterface ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:191:3: lv_interfaces_13_0= ruleInterface + { + + newCompositeNode(grammarAccess.getRepositoryAccess().getInterfacesInterfaceParserRuleCall_4_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleInterface_in_ruleRepository331); + lv_interfaces_13_0=ruleInterface(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + current, + "interfaces", + lv_interfaces_13_0, + "Interface"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop3; + } + } while (true); + + otherlv_14=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleRepository345); + + newLeafNode(otherlv_14, grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_4_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:211:3: (otherlv_15= 'components' otherlv_16= '{' ( (lv_components_17_0= ruleRepositoryComponent ) ) (otherlv_18= ',' ( (lv_components_19_0= ruleRepositoryComponent ) ) )* otherlv_20= '}' )? + int alt6=2; + int LA6_0 = input.LA(1); + + if ( (LA6_0==17) ) { + alt6=1; + } + switch (alt6) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:211:5: otherlv_15= 'components' otherlv_16= '{' ( (lv_components_17_0= ruleRepositoryComponent ) ) (otherlv_18= ',' ( (lv_components_19_0= ruleRepositoryComponent ) ) )* otherlv_20= '}' + { + otherlv_15=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleRepository360); + + newLeafNode(otherlv_15, grammarAccess.getRepositoryAccess().getComponentsKeyword_5_0()); + + otherlv_16=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleRepository372); + + newLeafNode(otherlv_16, grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_5_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:219:1: ( (lv_components_17_0= ruleRepositoryComponent ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:220:1: (lv_components_17_0= ruleRepositoryComponent ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:220:1: (lv_components_17_0= ruleRepositoryComponent ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:221:3: lv_components_17_0= ruleRepositoryComponent + { + + newCompositeNode(grammarAccess.getRepositoryAccess().getComponentsRepositoryComponentParserRuleCall_5_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRepositoryComponent_in_ruleRepository393); + lv_components_17_0=ruleRepositoryComponent(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + current, + "components", + lv_components_17_0, + "RepositoryComponent"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:237:2: (otherlv_18= ',' ( (lv_components_19_0= ruleRepositoryComponent ) ) )* + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==14) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:237:4: otherlv_18= ',' ( (lv_components_19_0= ruleRepositoryComponent ) ) + { + otherlv_18=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleRepository406); + + newLeafNode(otherlv_18, grammarAccess.getRepositoryAccess().getCommaKeyword_5_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:241:1: ( (lv_components_19_0= ruleRepositoryComponent ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:242:1: (lv_components_19_0= ruleRepositoryComponent ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:242:1: (lv_components_19_0= ruleRepositoryComponent ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:243:3: lv_components_19_0= ruleRepositoryComponent + { + + newCompositeNode(grammarAccess.getRepositoryAccess().getComponentsRepositoryComponentParserRuleCall_5_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRepositoryComponent_in_ruleRepository427); + lv_components_19_0=ruleRepositoryComponent(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryRule()); + } + add( + current, + "components", + lv_components_19_0, + "RepositoryComponent"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop5; + } + } while (true); + + otherlv_20=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleRepository441); + + newLeafNode(otherlv_20, grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_5_4()); + + + } + break; + + } + + otherlv_21=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleRepository455); + + newLeafNode(otherlv_21, grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_6()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRepository" + + + // $ANTLR start "entryRuleDataType" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:275:1: entryRuleDataType returns [EObject current=null] : iv_ruleDataType= ruleDataType EOF ; + public final EObject entryRuleDataType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleDataType = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:276:2: (iv_ruleDataType= ruleDataType EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:277:2: iv_ruleDataType= ruleDataType EOF + { + newCompositeNode(grammarAccess.getDataTypeRule()); + pushFollow(FollowSets000.FOLLOW_ruleDataType_in_entryRuleDataType491); + iv_ruleDataType=ruleDataType(); + + state._fsp--; + + current =iv_ruleDataType; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleDataType501); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleDataType" + + + // $ANTLR start "ruleDataType" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:284:1: ruleDataType returns [EObject current=null] : (this_CollectionDataType_0= ruleCollectionDataType | this_CompositeDataType_1= ruleCompositeDataType | this_PrimitiveDataType_2= rulePrimitiveDataType ) ; + public final EObject ruleDataType() throws RecognitionException { + EObject current = null; + + EObject this_CollectionDataType_0 = null; + + EObject this_CompositeDataType_1 = null; + + EObject this_PrimitiveDataType_2 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:287:28: ( (this_CollectionDataType_0= ruleCollectionDataType | this_CompositeDataType_1= ruleCompositeDataType | this_PrimitiveDataType_2= rulePrimitiveDataType ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:288:1: (this_CollectionDataType_0= ruleCollectionDataType | this_CompositeDataType_1= ruleCompositeDataType | this_PrimitiveDataType_2= rulePrimitiveDataType ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:288:1: (this_CollectionDataType_0= ruleCollectionDataType | this_CompositeDataType_1= ruleCompositeDataType | this_PrimitiveDataType_2= rulePrimitiveDataType ) + int alt7=3; + switch ( input.LA(1) ) { + case 27: + { + alt7=1; + } + break; + case 29: + { + alt7=2; + } + break; + case 32: + { + alt7=3; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 7, 0, input); + + throw nvae; + } + + switch (alt7) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:289:5: this_CollectionDataType_0= ruleCollectionDataType + { + + newCompositeNode(grammarAccess.getDataTypeAccess().getCollectionDataTypeParserRuleCall_0()); + + pushFollow(FollowSets000.FOLLOW_ruleCollectionDataType_in_ruleDataType548); + this_CollectionDataType_0=ruleCollectionDataType(); + + state._fsp--; + + + current = this_CollectionDataType_0; + afterParserOrEnumRuleCall(); + + + } + break; + case 2 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:299:5: this_CompositeDataType_1= ruleCompositeDataType + { + + newCompositeNode(grammarAccess.getDataTypeAccess().getCompositeDataTypeParserRuleCall_1()); + + pushFollow(FollowSets000.FOLLOW_ruleCompositeDataType_in_ruleDataType575); + this_CompositeDataType_1=ruleCompositeDataType(); + + state._fsp--; + + + current = this_CompositeDataType_1; + afterParserOrEnumRuleCall(); + + + } + break; + case 3 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:309:5: this_PrimitiveDataType_2= rulePrimitiveDataType + { + + newCompositeNode(grammarAccess.getDataTypeAccess().getPrimitiveDataTypeParserRuleCall_2()); + + pushFollow(FollowSets000.FOLLOW_rulePrimitiveDataType_in_ruleDataType602); + this_PrimitiveDataType_2=rulePrimitiveDataType(); + + state._fsp--; + + + current = this_PrimitiveDataType_2; + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDataType" + + + // $ANTLR start "entryRuleRepositoryComponent" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:325:1: entryRuleRepositoryComponent returns [EObject current=null] : iv_ruleRepositoryComponent= ruleRepositoryComponent EOF ; + public final EObject entryRuleRepositoryComponent() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRepositoryComponent = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:326:2: (iv_ruleRepositoryComponent= ruleRepositoryComponent EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:327:2: iv_ruleRepositoryComponent= ruleRepositoryComponent EOF + { + newCompositeNode(grammarAccess.getRepositoryComponentRule()); + pushFollow(FollowSets000.FOLLOW_ruleRepositoryComponent_in_entryRuleRepositoryComponent637); + iv_ruleRepositoryComponent=ruleRepositoryComponent(); + + state._fsp--; + + current =iv_ruleRepositoryComponent; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleRepositoryComponent647); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRepositoryComponent" + + + // $ANTLR start "ruleRepositoryComponent" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:334:1: ruleRepositoryComponent returns [EObject current=null] : (this_RepositoryComponent_Impl_0= ruleRepositoryComponent_Impl | this_BasicComponent_1= ruleBasicComponent | this_CompositeComponent_2= ruleCompositeComponent | this_SubSystem_3= ruleSubSystem ) ; + public final EObject ruleRepositoryComponent() throws RecognitionException { + EObject current = null; + + EObject this_RepositoryComponent_Impl_0 = null; + + EObject this_BasicComponent_1 = null; + + EObject this_CompositeComponent_2 = null; + + EObject this_SubSystem_3 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:337:28: ( (this_RepositoryComponent_Impl_0= ruleRepositoryComponent_Impl | this_BasicComponent_1= ruleBasicComponent | this_CompositeComponent_2= ruleCompositeComponent | this_SubSystem_3= ruleSubSystem ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:338:1: (this_RepositoryComponent_Impl_0= ruleRepositoryComponent_Impl | this_BasicComponent_1= ruleBasicComponent | this_CompositeComponent_2= ruleCompositeComponent | this_SubSystem_3= ruleSubSystem ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:338:1: (this_RepositoryComponent_Impl_0= ruleRepositoryComponent_Impl | this_BasicComponent_1= ruleBasicComponent | this_CompositeComponent_2= ruleCompositeComponent | this_SubSystem_3= ruleSubSystem ) + int alt8=4; + switch ( input.LA(1) ) { + case 23: + { + alt8=1; + } + break; + case 40: + { + alt8=2; + } + break; + case 41: + { + alt8=3; + } + break; + case 43: + { + alt8=4; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 8, 0, input); + + throw nvae; + } + + switch (alt8) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:339:5: this_RepositoryComponent_Impl_0= ruleRepositoryComponent_Impl + { + + newCompositeNode(grammarAccess.getRepositoryComponentAccess().getRepositoryComponent_ImplParserRuleCall_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRepositoryComponent_Impl_in_ruleRepositoryComponent694); + this_RepositoryComponent_Impl_0=ruleRepositoryComponent_Impl(); + + state._fsp--; + + + current = this_RepositoryComponent_Impl_0; + afterParserOrEnumRuleCall(); + + + } + break; + case 2 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:349:5: this_BasicComponent_1= ruleBasicComponent + { + + newCompositeNode(grammarAccess.getRepositoryComponentAccess().getBasicComponentParserRuleCall_1()); + + pushFollow(FollowSets000.FOLLOW_ruleBasicComponent_in_ruleRepositoryComponent721); + this_BasicComponent_1=ruleBasicComponent(); + + state._fsp--; + + + current = this_BasicComponent_1; + afterParserOrEnumRuleCall(); + + + } + break; + case 3 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:359:5: this_CompositeComponent_2= ruleCompositeComponent + { + + newCompositeNode(grammarAccess.getRepositoryComponentAccess().getCompositeComponentParserRuleCall_2()); + + pushFollow(FollowSets000.FOLLOW_ruleCompositeComponent_in_ruleRepositoryComponent748); + this_CompositeComponent_2=ruleCompositeComponent(); + + state._fsp--; + + + current = this_CompositeComponent_2; + afterParserOrEnumRuleCall(); + + + } + break; + case 4 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:369:5: this_SubSystem_3= ruleSubSystem + { + + newCompositeNode(grammarAccess.getRepositoryComponentAccess().getSubSystemParserRuleCall_3()); + + pushFollow(FollowSets000.FOLLOW_ruleSubSystem_in_ruleRepositoryComponent775); + this_SubSystem_3=ruleSubSystem(); + + state._fsp--; + + + current = this_SubSystem_3; + afterParserOrEnumRuleCall(); + + + } + break; + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRepositoryComponent" + + + // $ANTLR start "entryRuleEString" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:385:1: entryRuleEString returns [String current=null] : iv_ruleEString= ruleEString EOF ; + public final String entryRuleEString() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleEString = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:386:2: (iv_ruleEString= ruleEString EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:387:2: iv_ruleEString= ruleEString EOF + { + newCompositeNode(grammarAccess.getEStringRule()); + pushFollow(FollowSets000.FOLLOW_ruleEString_in_entryRuleEString811); + iv_ruleEString=ruleEString(); + + state._fsp--; + + current =iv_ruleEString.getText(); + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEString822); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleEString" + + + // $ANTLR start "ruleEString" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:394:1: ruleEString returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_STRING_0= RULE_STRING | this_ID_1= RULE_ID ) ; + public final AntlrDatatypeRuleToken ruleEString() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + + Token this_STRING_0=null; + Token this_ID_1=null; + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:397:28: ( (this_STRING_0= RULE_STRING | this_ID_1= RULE_ID ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:398:1: (this_STRING_0= RULE_STRING | this_ID_1= RULE_ID ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:398:1: (this_STRING_0= RULE_STRING | this_ID_1= RULE_ID ) + int alt9=2; + int LA9_0 = input.LA(1); + + if ( (LA9_0==RULE_STRING) ) { + alt9=1; + } + else if ( (LA9_0==RULE_ID) ) { + alt9=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 9, 0, input); + + throw nvae; + } + switch (alt9) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:398:6: this_STRING_0= RULE_STRING + { + this_STRING_0=(Token)match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_ruleEString862); + + current.merge(this_STRING_0); + + + newLeafNode(this_STRING_0, grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); + + + } + break; + case 2 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:406:10: this_ID_1= RULE_ID + { + this_ID_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_ruleEString888); + + current.merge(this_ID_1); + + + newLeafNode(this_ID_1, grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); + + + } + break; + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleEString" + + + // $ANTLR start "entryRuleInterface" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:421:1: entryRuleInterface returns [EObject current=null] : iv_ruleInterface= ruleInterface EOF ; + public final EObject entryRuleInterface() throws RecognitionException { + EObject current = null; + + EObject iv_ruleInterface = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:422:2: (iv_ruleInterface= ruleInterface EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:423:2: iv_ruleInterface= ruleInterface EOF + { + newCompositeNode(grammarAccess.getInterfaceRule()); + pushFollow(FollowSets000.FOLLOW_ruleInterface_in_entryRuleInterface933); + iv_ruleInterface=ruleInterface(); + + state._fsp--; + + current =iv_ruleInterface; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleInterface943); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleInterface" + + + // $ANTLR start "ruleInterface" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:430:1: ruleInterface returns [EObject current=null] : (otherlv_0= 'Interface' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentInterfaces' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'signatures' otherlv_10= '{' ( (lv_signatures_11_0= ruleSignature ) ) (otherlv_12= ',' ( (lv_signatures_13_0= ruleSignature ) ) )* otherlv_14= '}' )? otherlv_15= '}' ) ; + public final EObject ruleInterface() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_15=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_signatures_11_0 = null; + + EObject lv_signatures_13_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:433:28: ( (otherlv_0= 'Interface' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentInterfaces' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'signatures' otherlv_10= '{' ( (lv_signatures_11_0= ruleSignature ) ) (otherlv_12= ',' ( (lv_signatures_13_0= ruleSignature ) ) )* otherlv_14= '}' )? otherlv_15= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:434:1: (otherlv_0= 'Interface' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentInterfaces' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'signatures' otherlv_10= '{' ( (lv_signatures_11_0= ruleSignature ) ) (otherlv_12= ',' ( (lv_signatures_13_0= ruleSignature ) ) )* otherlv_14= '}' )? otherlv_15= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:434:1: (otherlv_0= 'Interface' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentInterfaces' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'signatures' otherlv_10= '{' ( (lv_signatures_11_0= ruleSignature ) ) (otherlv_12= ',' ( (lv_signatures_13_0= ruleSignature ) ) )* otherlv_14= '}' )? otherlv_15= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:434:3: otherlv_0= 'Interface' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentInterfaces' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'signatures' otherlv_10= '{' ( (lv_signatures_11_0= ruleSignature ) ) (otherlv_12= ',' ( (lv_signatures_13_0= ruleSignature ) ) )* otherlv_14= '}' )? otherlv_15= '}' + { + otherlv_0=(Token)match(input,18,FollowSets000.FOLLOW_18_in_ruleInterface980); + + newLeafNode(otherlv_0, grammarAccess.getInterfaceAccess().getInterfaceKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:438:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:439:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:439:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:440:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getInterfaceAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleInterface1001); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getInterfaceRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleInterface1013); + + newLeafNode(otherlv_2, grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_2()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:460:1: (otherlv_3= 'parentInterfaces' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? + int alt11=2; + int LA11_0 = input.LA(1); + + if ( (LA11_0==19) ) { + alt11=1; + } + switch (alt11) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:460:3: otherlv_3= 'parentInterfaces' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' + { + otherlv_3=(Token)match(input,19,FollowSets000.FOLLOW_19_in_ruleInterface1026); + + newLeafNode(otherlv_3, grammarAccess.getInterfaceAccess().getParentInterfacesKeyword_3_0()); + + otherlv_4=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleInterface1038); + + newLeafNode(otherlv_4, grammarAccess.getInterfaceAccess().getLeftParenthesisKeyword_3_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:468:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:469:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:469:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:470:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getInterfaceRule()); + } + + + newCompositeNode(grammarAccess.getInterfaceAccess().getParentInterfacesInterfaceCrossReference_3_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleInterface1061); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:483:2: (otherlv_6= ',' ( ( ruleEString ) ) )* + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); + + if ( (LA10_0==14) ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:483:4: otherlv_6= ',' ( ( ruleEString ) ) + { + otherlv_6=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleInterface1074); + + newLeafNode(otherlv_6, grammarAccess.getInterfaceAccess().getCommaKeyword_3_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:487:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:488:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:488:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:489:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getInterfaceRule()); + } + + + newCompositeNode(grammarAccess.getInterfaceAccess().getParentInterfacesInterfaceCrossReference_3_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleInterface1097); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop10; + } + } while (true); + + otherlv_8=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleInterface1111); + + newLeafNode(otherlv_8, grammarAccess.getInterfaceAccess().getRightParenthesisKeyword_3_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:506:3: (otherlv_9= 'signatures' otherlv_10= '{' ( (lv_signatures_11_0= ruleSignature ) ) (otherlv_12= ',' ( (lv_signatures_13_0= ruleSignature ) ) )* otherlv_14= '}' )? + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==22) ) { + alt13=1; + } + switch (alt13) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:506:5: otherlv_9= 'signatures' otherlv_10= '{' ( (lv_signatures_11_0= ruleSignature ) ) (otherlv_12= ',' ( (lv_signatures_13_0= ruleSignature ) ) )* otherlv_14= '}' + { + otherlv_9=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleInterface1126); + + newLeafNode(otherlv_9, grammarAccess.getInterfaceAccess().getSignaturesKeyword_4_0()); + + otherlv_10=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleInterface1138); + + newLeafNode(otherlv_10, grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_4_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:514:1: ( (lv_signatures_11_0= ruleSignature ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:515:1: (lv_signatures_11_0= ruleSignature ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:515:1: (lv_signatures_11_0= ruleSignature ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:516:3: lv_signatures_11_0= ruleSignature + { + + newCompositeNode(grammarAccess.getInterfaceAccess().getSignaturesSignatureParserRuleCall_4_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleSignature_in_ruleInterface1159); + lv_signatures_11_0=ruleSignature(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getInterfaceRule()); + } + add( + current, + "signatures", + lv_signatures_11_0, + "Signature"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:532:2: (otherlv_12= ',' ( (lv_signatures_13_0= ruleSignature ) ) )* + loop12: + do { + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==14) ) { + alt12=1; + } + + + switch (alt12) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:532:4: otherlv_12= ',' ( (lv_signatures_13_0= ruleSignature ) ) + { + otherlv_12=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleInterface1172); + + newLeafNode(otherlv_12, grammarAccess.getInterfaceAccess().getCommaKeyword_4_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:536:1: ( (lv_signatures_13_0= ruleSignature ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:537:1: (lv_signatures_13_0= ruleSignature ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:537:1: (lv_signatures_13_0= ruleSignature ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:538:3: lv_signatures_13_0= ruleSignature + { + + newCompositeNode(grammarAccess.getInterfaceAccess().getSignaturesSignatureParserRuleCall_4_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleSignature_in_ruleInterface1193); + lv_signatures_13_0=ruleSignature(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getInterfaceRule()); + } + add( + current, + "signatures", + lv_signatures_13_0, + "Signature"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop12; + } + } while (true); + + otherlv_14=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleInterface1207); + + newLeafNode(otherlv_14, grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_4_4()); + + + } + break; + + } + + otherlv_15=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleInterface1221); + + newLeafNode(otherlv_15, grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_5()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleInterface" + + + // $ANTLR start "entryRuleRepositoryComponent_Impl" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:570:1: entryRuleRepositoryComponent_Impl returns [EObject current=null] : iv_ruleRepositoryComponent_Impl= ruleRepositoryComponent_Impl EOF ; + public final EObject entryRuleRepositoryComponent_Impl() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRepositoryComponent_Impl = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:571:2: (iv_ruleRepositoryComponent_Impl= ruleRepositoryComponent_Impl EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:572:2: iv_ruleRepositoryComponent_Impl= ruleRepositoryComponent_Impl EOF + { + newCompositeNode(grammarAccess.getRepositoryComponent_ImplRule()); + pushFollow(FollowSets000.FOLLOW_ruleRepositoryComponent_Impl_in_entryRuleRepositoryComponent_Impl1257); + iv_ruleRepositoryComponent_Impl=ruleRepositoryComponent_Impl(); + + state._fsp--; + + current =iv_ruleRepositoryComponent_Impl; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleRepositoryComponent_Impl1267); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRepositoryComponent_Impl" + + + // $ANTLR start "ruleRepositoryComponent_Impl" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:579:1: ruleRepositoryComponent_Impl returns [EObject current=null] : (otherlv_0= 'RepositoryComponent' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'relationship' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'providedRoles' otherlv_10= '{' ( (lv_providedRoles_11_0= ruleProvidedRole ) ) (otherlv_12= ',' ( (lv_providedRoles_13_0= ruleProvidedRole ) ) )* otherlv_14= '}' )? (otherlv_15= 'requiredRoles' otherlv_16= '{' ( (lv_requiredRoles_17_0= ruleRequiredRole ) ) (otherlv_18= ',' ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) )* otherlv_20= '}' )? otherlv_21= '}' ) ; + public final EObject ruleRepositoryComponent_Impl() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_15=null; + Token otherlv_16=null; + Token otherlv_18=null; + Token otherlv_20=null; + Token otherlv_21=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_providedRoles_11_0 = null; + + EObject lv_providedRoles_13_0 = null; + + EObject lv_requiredRoles_17_0 = null; + + EObject lv_requiredRoles_19_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:582:28: ( (otherlv_0= 'RepositoryComponent' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'relationship' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'providedRoles' otherlv_10= '{' ( (lv_providedRoles_11_0= ruleProvidedRole ) ) (otherlv_12= ',' ( (lv_providedRoles_13_0= ruleProvidedRole ) ) )* otherlv_14= '}' )? (otherlv_15= 'requiredRoles' otherlv_16= '{' ( (lv_requiredRoles_17_0= ruleRequiredRole ) ) (otherlv_18= ',' ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) )* otherlv_20= '}' )? otherlv_21= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:583:1: (otherlv_0= 'RepositoryComponent' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'relationship' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'providedRoles' otherlv_10= '{' ( (lv_providedRoles_11_0= ruleProvidedRole ) ) (otherlv_12= ',' ( (lv_providedRoles_13_0= ruleProvidedRole ) ) )* otherlv_14= '}' )? (otherlv_15= 'requiredRoles' otherlv_16= '{' ( (lv_requiredRoles_17_0= ruleRequiredRole ) ) (otherlv_18= ',' ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) )* otherlv_20= '}' )? otherlv_21= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:583:1: (otherlv_0= 'RepositoryComponent' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'relationship' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'providedRoles' otherlv_10= '{' ( (lv_providedRoles_11_0= ruleProvidedRole ) ) (otherlv_12= ',' ( (lv_providedRoles_13_0= ruleProvidedRole ) ) )* otherlv_14= '}' )? (otherlv_15= 'requiredRoles' otherlv_16= '{' ( (lv_requiredRoles_17_0= ruleRequiredRole ) ) (otherlv_18= ',' ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) )* otherlv_20= '}' )? otherlv_21= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:583:3: otherlv_0= 'RepositoryComponent' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'relationship' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'providedRoles' otherlv_10= '{' ( (lv_providedRoles_11_0= ruleProvidedRole ) ) (otherlv_12= ',' ( (lv_providedRoles_13_0= ruleProvidedRole ) ) )* otherlv_14= '}' )? (otherlv_15= 'requiredRoles' otherlv_16= '{' ( (lv_requiredRoles_17_0= ruleRequiredRole ) ) (otherlv_18= ',' ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) )* otherlv_20= '}' )? otherlv_21= '}' + { + otherlv_0=(Token)match(input,23,FollowSets000.FOLLOW_23_in_ruleRepositoryComponent_Impl1304); + + newLeafNode(otherlv_0, grammarAccess.getRepositoryComponent_ImplAccess().getRepositoryComponentKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:587:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:588:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:588:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:589:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleRepositoryComponent_Impl1325); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleRepositoryComponent_Impl1337); + + newLeafNode(otherlv_2, grammarAccess.getRepositoryComponent_ImplAccess().getLeftCurlyBracketKeyword_2()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:609:1: (otherlv_3= 'relationship' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0==24) ) { + alt15=1; + } + switch (alt15) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:609:3: otherlv_3= 'relationship' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' + { + otherlv_3=(Token)match(input,24,FollowSets000.FOLLOW_24_in_ruleRepositoryComponent_Impl1350); + + newLeafNode(otherlv_3, grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipKeyword_3_0()); + + otherlv_4=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleRepositoryComponent_Impl1362); + + newLeafNode(otherlv_4, grammarAccess.getRepositoryComponent_ImplAccess().getLeftParenthesisKeyword_3_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:617:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:618:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:618:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:619:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getRepositoryComponent_ImplRule()); + } + + + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipRelationshipCrossReference_3_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleRepositoryComponent_Impl1385); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:632:2: (otherlv_6= ',' ( ( ruleEString ) ) )* + loop14: + do { + int alt14=2; + int LA14_0 = input.LA(1); + + if ( (LA14_0==14) ) { + alt14=1; + } + + + switch (alt14) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:632:4: otherlv_6= ',' ( ( ruleEString ) ) + { + otherlv_6=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleRepositoryComponent_Impl1398); + + newLeafNode(otherlv_6, grammarAccess.getRepositoryComponent_ImplAccess().getCommaKeyword_3_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:636:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:637:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:637:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:638:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getRepositoryComponent_ImplRule()); + } + + + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getRelationshipRelationshipCrossReference_3_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleRepositoryComponent_Impl1421); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop14; + } + } while (true); + + otherlv_8=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleRepositoryComponent_Impl1435); + + newLeafNode(otherlv_8, grammarAccess.getRepositoryComponent_ImplAccess().getRightParenthesisKeyword_3_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:655:3: (otherlv_9= 'providedRoles' otherlv_10= '{' ( (lv_providedRoles_11_0= ruleProvidedRole ) ) (otherlv_12= ',' ( (lv_providedRoles_13_0= ruleProvidedRole ) ) )* otherlv_14= '}' )? + int alt17=2; + int LA17_0 = input.LA(1); + + if ( (LA17_0==25) ) { + alt17=1; + } + switch (alt17) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:655:5: otherlv_9= 'providedRoles' otherlv_10= '{' ( (lv_providedRoles_11_0= ruleProvidedRole ) ) (otherlv_12= ',' ( (lv_providedRoles_13_0= ruleProvidedRole ) ) )* otherlv_14= '}' + { + otherlv_9=(Token)match(input,25,FollowSets000.FOLLOW_25_in_ruleRepositoryComponent_Impl1450); + + newLeafNode(otherlv_9, grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesKeyword_4_0()); + + otherlv_10=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleRepositoryComponent_Impl1462); + + newLeafNode(otherlv_10, grammarAccess.getRepositoryComponent_ImplAccess().getLeftCurlyBracketKeyword_4_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:663:1: ( (lv_providedRoles_11_0= ruleProvidedRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:664:1: (lv_providedRoles_11_0= ruleProvidedRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:664:1: (lv_providedRoles_11_0= ruleProvidedRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:665:3: lv_providedRoles_11_0= ruleProvidedRole + { + + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesProvidedRoleParserRuleCall_4_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedRole_in_ruleRepositoryComponent_Impl1483); + lv_providedRoles_11_0=ruleProvidedRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + add( + current, + "providedRoles", + lv_providedRoles_11_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:681:2: (otherlv_12= ',' ( (lv_providedRoles_13_0= ruleProvidedRole ) ) )* + loop16: + do { + int alt16=2; + int LA16_0 = input.LA(1); + + if ( (LA16_0==14) ) { + alt16=1; + } + + + switch (alt16) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:681:4: otherlv_12= ',' ( (lv_providedRoles_13_0= ruleProvidedRole ) ) + { + otherlv_12=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleRepositoryComponent_Impl1496); + + newLeafNode(otherlv_12, grammarAccess.getRepositoryComponent_ImplAccess().getCommaKeyword_4_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:685:1: ( (lv_providedRoles_13_0= ruleProvidedRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:686:1: (lv_providedRoles_13_0= ruleProvidedRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:686:1: (lv_providedRoles_13_0= ruleProvidedRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:687:3: lv_providedRoles_13_0= ruleProvidedRole + { + + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getProvidedRolesProvidedRoleParserRuleCall_4_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedRole_in_ruleRepositoryComponent_Impl1517); + lv_providedRoles_13_0=ruleProvidedRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + add( + current, + "providedRoles", + lv_providedRoles_13_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop16; + } + } while (true); + + otherlv_14=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleRepositoryComponent_Impl1531); + + newLeafNode(otherlv_14, grammarAccess.getRepositoryComponent_ImplAccess().getRightCurlyBracketKeyword_4_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:707:3: (otherlv_15= 'requiredRoles' otherlv_16= '{' ( (lv_requiredRoles_17_0= ruleRequiredRole ) ) (otherlv_18= ',' ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) )* otherlv_20= '}' )? + int alt19=2; + int LA19_0 = input.LA(1); + + if ( (LA19_0==26) ) { + alt19=1; + } + switch (alt19) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:707:5: otherlv_15= 'requiredRoles' otherlv_16= '{' ( (lv_requiredRoles_17_0= ruleRequiredRole ) ) (otherlv_18= ',' ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) )* otherlv_20= '}' + { + otherlv_15=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleRepositoryComponent_Impl1546); + + newLeafNode(otherlv_15, grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesKeyword_5_0()); + + otherlv_16=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleRepositoryComponent_Impl1558); + + newLeafNode(otherlv_16, grammarAccess.getRepositoryComponent_ImplAccess().getLeftCurlyBracketKeyword_5_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:715:1: ( (lv_requiredRoles_17_0= ruleRequiredRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:716:1: (lv_requiredRoles_17_0= ruleRequiredRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:716:1: (lv_requiredRoles_17_0= ruleRequiredRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:717:3: lv_requiredRoles_17_0= ruleRequiredRole + { + + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesRequiredRoleParserRuleCall_5_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredRole_in_ruleRepositoryComponent_Impl1579); + lv_requiredRoles_17_0=ruleRequiredRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + add( + current, + "requiredRoles", + lv_requiredRoles_17_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:733:2: (otherlv_18= ',' ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) )* + loop18: + do { + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0==14) ) { + alt18=1; + } + + + switch (alt18) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:733:4: otherlv_18= ',' ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) + { + otherlv_18=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleRepositoryComponent_Impl1592); + + newLeafNode(otherlv_18, grammarAccess.getRepositoryComponent_ImplAccess().getCommaKeyword_5_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:737:1: ( (lv_requiredRoles_19_0= ruleRequiredRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:738:1: (lv_requiredRoles_19_0= ruleRequiredRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:738:1: (lv_requiredRoles_19_0= ruleRequiredRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:739:3: lv_requiredRoles_19_0= ruleRequiredRole + { + + newCompositeNode(grammarAccess.getRepositoryComponent_ImplAccess().getRequiredRolesRequiredRoleParserRuleCall_5_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredRole_in_ruleRepositoryComponent_Impl1613); + lv_requiredRoles_19_0=ruleRequiredRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRepositoryComponent_ImplRule()); + } + add( + current, + "requiredRoles", + lv_requiredRoles_19_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop18; + } + } while (true); + + otherlv_20=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleRepositoryComponent_Impl1627); + + newLeafNode(otherlv_20, grammarAccess.getRepositoryComponent_ImplAccess().getRightCurlyBracketKeyword_5_4()); + + + } + break; + + } + + otherlv_21=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleRepositoryComponent_Impl1641); + + newLeafNode(otherlv_21, grammarAccess.getRepositoryComponent_ImplAccess().getRightCurlyBracketKeyword_6()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRepositoryComponent_Impl" + + + // $ANTLR start "entryRuleCollectionDataType" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:771:1: entryRuleCollectionDataType returns [EObject current=null] : iv_ruleCollectionDataType= ruleCollectionDataType EOF ; + public final EObject entryRuleCollectionDataType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleCollectionDataType = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:772:2: (iv_ruleCollectionDataType= ruleCollectionDataType EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:773:2: iv_ruleCollectionDataType= ruleCollectionDataType EOF + { + newCompositeNode(grammarAccess.getCollectionDataTypeRule()); + pushFollow(FollowSets000.FOLLOW_ruleCollectionDataType_in_entryRuleCollectionDataType1677); + iv_ruleCollectionDataType=ruleCollectionDataType(); + + state._fsp--; + + current =iv_ruleCollectionDataType; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleCollectionDataType1687); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleCollectionDataType" + + + // $ANTLR start "ruleCollectionDataType" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:780:1: ruleCollectionDataType returns [EObject current=null] : (otherlv_0= 'CollectionDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'innerType' ( ( ruleEString ) ) otherlv_5= '}' ) ; + public final EObject ruleCollectionDataType() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_5=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:783:28: ( (otherlv_0= 'CollectionDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'innerType' ( ( ruleEString ) ) otherlv_5= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:784:1: (otherlv_0= 'CollectionDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'innerType' ( ( ruleEString ) ) otherlv_5= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:784:1: (otherlv_0= 'CollectionDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'innerType' ( ( ruleEString ) ) otherlv_5= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:784:3: otherlv_0= 'CollectionDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'innerType' ( ( ruleEString ) ) otherlv_5= '}' + { + otherlv_0=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleCollectionDataType1724); + + newLeafNode(otherlv_0, grammarAccess.getCollectionDataTypeAccess().getCollectionDataTypeKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:788:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:789:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:789:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:790:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getCollectionDataTypeAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleCollectionDataType1745); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCollectionDataTypeRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleCollectionDataType1757); + + newLeafNode(otherlv_2, grammarAccess.getCollectionDataTypeAccess().getLeftCurlyBracketKeyword_2()); + + otherlv_3=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleCollectionDataType1769); + + newLeafNode(otherlv_3, grammarAccess.getCollectionDataTypeAccess().getInnerTypeKeyword_3()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:814:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:815:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:815:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:816:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getCollectionDataTypeRule()); + } + + + newCompositeNode(grammarAccess.getCollectionDataTypeAccess().getInnerTypeDataTypeCrossReference_4_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleCollectionDataType1792); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_5=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleCollectionDataType1804); + + newLeafNode(otherlv_5, grammarAccess.getCollectionDataTypeAccess().getRightCurlyBracketKeyword_5()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleCollectionDataType" + + + // $ANTLR start "entryRuleCompositeDataType" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:841:1: entryRuleCompositeDataType returns [EObject current=null] : iv_ruleCompositeDataType= ruleCompositeDataType EOF ; + public final EObject entryRuleCompositeDataType() throws RecognitionException { + EObject current = null; + + EObject iv_ruleCompositeDataType = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:842:2: (iv_ruleCompositeDataType= ruleCompositeDataType EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:843:2: iv_ruleCompositeDataType= ruleCompositeDataType EOF + { + newCompositeNode(grammarAccess.getCompositeDataTypeRule()); + pushFollow(FollowSets000.FOLLOW_ruleCompositeDataType_in_entryRuleCompositeDataType1840); + iv_ruleCompositeDataType=ruleCompositeDataType(); + + state._fsp--; + + current =iv_ruleCompositeDataType; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleCompositeDataType1850); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleCompositeDataType" + + + // $ANTLR start "ruleCompositeDataType" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:850:1: ruleCompositeDataType returns [EObject current=null] : (otherlv_0= 'CompositeDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentTypes' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'innerDeclarations' otherlv_10= '{' ( (lv_innerDeclarations_11_0= ruleInnerDeclaration ) ) (otherlv_12= ',' ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) )* otherlv_14= '}' )? otherlv_15= '}' ) ; + public final EObject ruleCompositeDataType() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_15=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_innerDeclarations_11_0 = null; + + EObject lv_innerDeclarations_13_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:853:28: ( (otherlv_0= 'CompositeDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentTypes' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'innerDeclarations' otherlv_10= '{' ( (lv_innerDeclarations_11_0= ruleInnerDeclaration ) ) (otherlv_12= ',' ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) )* otherlv_14= '}' )? otherlv_15= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:854:1: (otherlv_0= 'CompositeDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentTypes' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'innerDeclarations' otherlv_10= '{' ( (lv_innerDeclarations_11_0= ruleInnerDeclaration ) ) (otherlv_12= ',' ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) )* otherlv_14= '}' )? otherlv_15= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:854:1: (otherlv_0= 'CompositeDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentTypes' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'innerDeclarations' otherlv_10= '{' ( (lv_innerDeclarations_11_0= ruleInnerDeclaration ) ) (otherlv_12= ',' ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) )* otherlv_14= '}' )? otherlv_15= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:854:3: otherlv_0= 'CompositeDataType' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'parentTypes' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? (otherlv_9= 'innerDeclarations' otherlv_10= '{' ( (lv_innerDeclarations_11_0= ruleInnerDeclaration ) ) (otherlv_12= ',' ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) )* otherlv_14= '}' )? otherlv_15= '}' + { + otherlv_0=(Token)match(input,29,FollowSets000.FOLLOW_29_in_ruleCompositeDataType1887); + + newLeafNode(otherlv_0, grammarAccess.getCompositeDataTypeAccess().getCompositeDataTypeKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:858:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:859:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:859:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:860:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleCompositeDataType1908); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeDataTypeRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleCompositeDataType1920); + + newLeafNode(otherlv_2, grammarAccess.getCompositeDataTypeAccess().getLeftCurlyBracketKeyword_2()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:880:1: (otherlv_3= 'parentTypes' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==30) ) { + alt21=1; + } + switch (alt21) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:880:3: otherlv_3= 'parentTypes' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' + { + otherlv_3=(Token)match(input,30,FollowSets000.FOLLOW_30_in_ruleCompositeDataType1933); + + newLeafNode(otherlv_3, grammarAccess.getCompositeDataTypeAccess().getParentTypesKeyword_3_0()); + + otherlv_4=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleCompositeDataType1945); + + newLeafNode(otherlv_4, grammarAccess.getCompositeDataTypeAccess().getLeftParenthesisKeyword_3_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:888:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:889:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:889:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:890:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getCompositeDataTypeRule()); + } + + + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getParentTypesCompositeDataTypeCrossReference_3_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleCompositeDataType1968); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:903:2: (otherlv_6= ',' ( ( ruleEString ) ) )* + loop20: + do { + int alt20=2; + int LA20_0 = input.LA(1); + + if ( (LA20_0==14) ) { + alt20=1; + } + + + switch (alt20) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:903:4: otherlv_6= ',' ( ( ruleEString ) ) + { + otherlv_6=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleCompositeDataType1981); + + newLeafNode(otherlv_6, grammarAccess.getCompositeDataTypeAccess().getCommaKeyword_3_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:907:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:908:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:908:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:909:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getCompositeDataTypeRule()); + } + + + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getParentTypesCompositeDataTypeCrossReference_3_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleCompositeDataType2004); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop20; + } + } while (true); + + otherlv_8=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleCompositeDataType2018); + + newLeafNode(otherlv_8, grammarAccess.getCompositeDataTypeAccess().getRightParenthesisKeyword_3_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:926:3: (otherlv_9= 'innerDeclarations' otherlv_10= '{' ( (lv_innerDeclarations_11_0= ruleInnerDeclaration ) ) (otherlv_12= ',' ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) )* otherlv_14= '}' )? + int alt23=2; + int LA23_0 = input.LA(1); + + if ( (LA23_0==31) ) { + alt23=1; + } + switch (alt23) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:926:5: otherlv_9= 'innerDeclarations' otherlv_10= '{' ( (lv_innerDeclarations_11_0= ruleInnerDeclaration ) ) (otherlv_12= ',' ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) )* otherlv_14= '}' + { + otherlv_9=(Token)match(input,31,FollowSets000.FOLLOW_31_in_ruleCompositeDataType2033); + + newLeafNode(otherlv_9, grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsKeyword_4_0()); + + otherlv_10=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleCompositeDataType2045); + + newLeafNode(otherlv_10, grammarAccess.getCompositeDataTypeAccess().getLeftCurlyBracketKeyword_4_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:934:1: ( (lv_innerDeclarations_11_0= ruleInnerDeclaration ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:935:1: (lv_innerDeclarations_11_0= ruleInnerDeclaration ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:935:1: (lv_innerDeclarations_11_0= ruleInnerDeclaration ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:936:3: lv_innerDeclarations_11_0= ruleInnerDeclaration + { + + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsInnerDeclarationParserRuleCall_4_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleInnerDeclaration_in_ruleCompositeDataType2066); + lv_innerDeclarations_11_0=ruleInnerDeclaration(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeDataTypeRule()); + } + add( + current, + "innerDeclarations", + lv_innerDeclarations_11_0, + "InnerDeclaration"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:952:2: (otherlv_12= ',' ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) )* + loop22: + do { + int alt22=2; + int LA22_0 = input.LA(1); + + if ( (LA22_0==14) ) { + alt22=1; + } + + + switch (alt22) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:952:4: otherlv_12= ',' ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) + { + otherlv_12=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleCompositeDataType2079); + + newLeafNode(otherlv_12, grammarAccess.getCompositeDataTypeAccess().getCommaKeyword_4_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:956:1: ( (lv_innerDeclarations_13_0= ruleInnerDeclaration ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:957:1: (lv_innerDeclarations_13_0= ruleInnerDeclaration ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:957:1: (lv_innerDeclarations_13_0= ruleInnerDeclaration ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:958:3: lv_innerDeclarations_13_0= ruleInnerDeclaration + { + + newCompositeNode(grammarAccess.getCompositeDataTypeAccess().getInnerDeclarationsInnerDeclarationParserRuleCall_4_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleInnerDeclaration_in_ruleCompositeDataType2100); + lv_innerDeclarations_13_0=ruleInnerDeclaration(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeDataTypeRule()); + } + add( + current, + "innerDeclarations", + lv_innerDeclarations_13_0, + "InnerDeclaration"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop22; + } + } while (true); + + otherlv_14=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleCompositeDataType2114); + + newLeafNode(otherlv_14, grammarAccess.getCompositeDataTypeAccess().getRightCurlyBracketKeyword_4_4()); + + + } + break; + + } + + otherlv_15=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleCompositeDataType2128); + + newLeafNode(otherlv_15, grammarAccess.getCompositeDataTypeAccess().getRightCurlyBracketKeyword_5()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleCompositeDataType" + + + // $ANTLR start "entryRulePrimitiveDataType" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:990:1: entryRulePrimitiveDataType returns [EObject current=null] : iv_rulePrimitiveDataType= rulePrimitiveDataType EOF ; + public final EObject entryRulePrimitiveDataType() throws RecognitionException { + EObject current = null; + + EObject iv_rulePrimitiveDataType = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:991:2: (iv_rulePrimitiveDataType= rulePrimitiveDataType EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:992:2: iv_rulePrimitiveDataType= rulePrimitiveDataType EOF + { + newCompositeNode(grammarAccess.getPrimitiveDataTypeRule()); + pushFollow(FollowSets000.FOLLOW_rulePrimitiveDataType_in_entryRulePrimitiveDataType2164); + iv_rulePrimitiveDataType=rulePrimitiveDataType(); + + state._fsp--; + + current =iv_rulePrimitiveDataType; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePrimitiveDataType2174); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRulePrimitiveDataType" + + + // $ANTLR start "rulePrimitiveDataType" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:999:1: rulePrimitiveDataType returns [EObject current=null] : (otherlv_0= 'PrimitiveDataType' otherlv_1= '{' otherlv_2= 'type' ( (lv_type_3_0= rulePrimitiveTypeEnum ) ) otherlv_4= 'ref' ( (lv_name_5_0= ruleEString ) ) otherlv_6= '}' ) ; + public final EObject rulePrimitiveDataType() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token otherlv_6=null; + Enumerator lv_type_3_0 = null; + + AntlrDatatypeRuleToken lv_name_5_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1002:28: ( (otherlv_0= 'PrimitiveDataType' otherlv_1= '{' otherlv_2= 'type' ( (lv_type_3_0= rulePrimitiveTypeEnum ) ) otherlv_4= 'ref' ( (lv_name_5_0= ruleEString ) ) otherlv_6= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1003:1: (otherlv_0= 'PrimitiveDataType' otherlv_1= '{' otherlv_2= 'type' ( (lv_type_3_0= rulePrimitiveTypeEnum ) ) otherlv_4= 'ref' ( (lv_name_5_0= ruleEString ) ) otherlv_6= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1003:1: (otherlv_0= 'PrimitiveDataType' otherlv_1= '{' otherlv_2= 'type' ( (lv_type_3_0= rulePrimitiveTypeEnum ) ) otherlv_4= 'ref' ( (lv_name_5_0= ruleEString ) ) otherlv_6= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1003:3: otherlv_0= 'PrimitiveDataType' otherlv_1= '{' otherlv_2= 'type' ( (lv_type_3_0= rulePrimitiveTypeEnum ) ) otherlv_4= 'ref' ( (lv_name_5_0= ruleEString ) ) otherlv_6= '}' + { + otherlv_0=(Token)match(input,32,FollowSets000.FOLLOW_32_in_rulePrimitiveDataType2211); + + newLeafNode(otherlv_0, grammarAccess.getPrimitiveDataTypeAccess().getPrimitiveDataTypeKeyword_0()); + + otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_rulePrimitiveDataType2223); + + newLeafNode(otherlv_1, grammarAccess.getPrimitiveDataTypeAccess().getLeftCurlyBracketKeyword_1()); + + otherlv_2=(Token)match(input,33,FollowSets000.FOLLOW_33_in_rulePrimitiveDataType2235); + + newLeafNode(otherlv_2, grammarAccess.getPrimitiveDataTypeAccess().getTypeKeyword_2()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1015:1: ( (lv_type_3_0= rulePrimitiveTypeEnum ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1016:1: (lv_type_3_0= rulePrimitiveTypeEnum ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1016:1: (lv_type_3_0= rulePrimitiveTypeEnum ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1017:3: lv_type_3_0= rulePrimitiveTypeEnum + { + + newCompositeNode(grammarAccess.getPrimitiveDataTypeAccess().getTypePrimitiveTypeEnumEnumRuleCall_3_0()); + + pushFollow(FollowSets000.FOLLOW_rulePrimitiveTypeEnum_in_rulePrimitiveDataType2256); + lv_type_3_0=rulePrimitiveTypeEnum(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPrimitiveDataTypeRule()); + } + set( + current, + "type", + lv_type_3_0, + "PrimitiveTypeEnum"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_4=(Token)match(input,34,FollowSets000.FOLLOW_34_in_rulePrimitiveDataType2268); + + newLeafNode(otherlv_4, grammarAccess.getPrimitiveDataTypeAccess().getRefKeyword_4()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1037:1: ( (lv_name_5_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1038:1: (lv_name_5_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1038:1: (lv_name_5_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1039:3: lv_name_5_0= ruleEString + { + + newCompositeNode(grammarAccess.getPrimitiveDataTypeAccess().getNameEStringParserRuleCall_5_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_rulePrimitiveDataType2289); + lv_name_5_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPrimitiveDataTypeRule()); + } + set( + current, + "name", + lv_name_5_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_6=(Token)match(input,15,FollowSets000.FOLLOW_15_in_rulePrimitiveDataType2301); + + newLeafNode(otherlv_6, grammarAccess.getPrimitiveDataTypeAccess().getRightCurlyBracketKeyword_6()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePrimitiveDataType" + + + // $ANTLR start "entryRuleInnerDeclaration" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1067:1: entryRuleInnerDeclaration returns [EObject current=null] : iv_ruleInnerDeclaration= ruleInnerDeclaration EOF ; + public final EObject entryRuleInnerDeclaration() throws RecognitionException { + EObject current = null; + + EObject iv_ruleInnerDeclaration = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1068:2: (iv_ruleInnerDeclaration= ruleInnerDeclaration EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1069:2: iv_ruleInnerDeclaration= ruleInnerDeclaration EOF + { + newCompositeNode(grammarAccess.getInnerDeclarationRule()); + pushFollow(FollowSets000.FOLLOW_ruleInnerDeclaration_in_entryRuleInnerDeclaration2337); + iv_ruleInnerDeclaration=ruleInnerDeclaration(); + + state._fsp--; + + current =iv_ruleInnerDeclaration; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleInnerDeclaration2347); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleInnerDeclaration" + + + // $ANTLR start "ruleInnerDeclaration" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1076:1: ruleInnerDeclaration returns [EObject current=null] : (otherlv_0= 'InnerDeclaration' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'dataType' ( ( ruleEString ) ) otherlv_5= '}' ) ; + public final EObject ruleInnerDeclaration() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_5=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1079:28: ( (otherlv_0= 'InnerDeclaration' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'dataType' ( ( ruleEString ) ) otherlv_5= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1080:1: (otherlv_0= 'InnerDeclaration' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'dataType' ( ( ruleEString ) ) otherlv_5= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1080:1: (otherlv_0= 'InnerDeclaration' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'dataType' ( ( ruleEString ) ) otherlv_5= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1080:3: otherlv_0= 'InnerDeclaration' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'dataType' ( ( ruleEString ) ) otherlv_5= '}' + { + otherlv_0=(Token)match(input,35,FollowSets000.FOLLOW_35_in_ruleInnerDeclaration2384); + + newLeafNode(otherlv_0, grammarAccess.getInnerDeclarationAccess().getInnerDeclarationKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1084:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1085:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1085:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1086:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getInnerDeclarationAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleInnerDeclaration2405); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getInnerDeclarationRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleInnerDeclaration2417); + + newLeafNode(otherlv_2, grammarAccess.getInnerDeclarationAccess().getLeftCurlyBracketKeyword_2()); + + otherlv_3=(Token)match(input,36,FollowSets000.FOLLOW_36_in_ruleInnerDeclaration2429); + + newLeafNode(otherlv_3, grammarAccess.getInnerDeclarationAccess().getDataTypeKeyword_3()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1110:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1111:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1111:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1112:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getInnerDeclarationRule()); + } + + + newCompositeNode(grammarAccess.getInnerDeclarationAccess().getDataTypeDataTypeCrossReference_4_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleInnerDeclaration2452); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_5=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleInnerDeclaration2464); + + newLeafNode(otherlv_5, grammarAccess.getInnerDeclarationAccess().getRightCurlyBracketKeyword_5()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleInnerDeclaration" + + + // $ANTLR start "entryRuleSignature" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1137:1: entryRuleSignature returns [EObject current=null] : iv_ruleSignature= ruleSignature EOF ; + public final EObject entryRuleSignature() throws RecognitionException { + EObject current = null; + + EObject iv_ruleSignature = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1138:2: (iv_ruleSignature= ruleSignature EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1139:2: iv_ruleSignature= ruleSignature EOF + { + newCompositeNode(grammarAccess.getSignatureRule()); + pushFollow(FollowSets000.FOLLOW_ruleSignature_in_entryRuleSignature2500); + iv_ruleSignature=ruleSignature(); + + state._fsp--; + + current =iv_ruleSignature; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSignature2510); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleSignature" + + + // $ANTLR start "ruleSignature" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1146:1: ruleSignature returns [EObject current=null] : ( ( ( ( ruleEString ) ) | otherlv_1= 'void' ) ( (lv_name_2_0= ruleEString ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameter ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameter ) ) )* )? otherlv_7= ')' ) ; + public final EObject ruleSignature() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + AntlrDatatypeRuleToken lv_name_2_0 = null; + + EObject lv_parameters_4_0 = null; + + EObject lv_parameters_6_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1149:28: ( ( ( ( ( ruleEString ) ) | otherlv_1= 'void' ) ( (lv_name_2_0= ruleEString ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameter ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameter ) ) )* )? otherlv_7= ')' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1150:1: ( ( ( ( ruleEString ) ) | otherlv_1= 'void' ) ( (lv_name_2_0= ruleEString ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameter ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameter ) ) )* )? otherlv_7= ')' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1150:1: ( ( ( ( ruleEString ) ) | otherlv_1= 'void' ) ( (lv_name_2_0= ruleEString ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameter ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameter ) ) )* )? otherlv_7= ')' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1150:2: ( ( ( ruleEString ) ) | otherlv_1= 'void' ) ( (lv_name_2_0= ruleEString ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameter ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameter ) ) )* )? otherlv_7= ')' + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1150:2: ( ( ( ruleEString ) ) | otherlv_1= 'void' ) + int alt24=2; + int LA24_0 = input.LA(1); + + if ( ((LA24_0>=RULE_STRING && LA24_0<=RULE_ID)) ) { + alt24=1; + } + else if ( (LA24_0==37) ) { + alt24=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 24, 0, input); + + throw nvae; + } + switch (alt24) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1150:3: ( ( ruleEString ) ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1150:3: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1151:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1151:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1152:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getSignatureRule()); + } + + + newCompositeNode(grammarAccess.getSignatureAccess().getReturnTypeDataTypeCrossReference_0_0_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSignature2559); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + case 2 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1166:7: otherlv_1= 'void' + { + otherlv_1=(Token)match(input,37,FollowSets000.FOLLOW_37_in_ruleSignature2577); + + newLeafNode(otherlv_1, grammarAccess.getSignatureAccess().getVoidKeyword_0_1()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1170:2: ( (lv_name_2_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1171:1: (lv_name_2_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1171:1: (lv_name_2_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1172:3: lv_name_2_0= ruleEString + { + + newCompositeNode(grammarAccess.getSignatureAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSignature2599); + lv_name_2_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSignatureRule()); + } + set( + current, + "name", + lv_name_2_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_3=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleSignature2611); + + newLeafNode(otherlv_3, grammarAccess.getSignatureAccess().getLeftParenthesisKeyword_2()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1192:1: ( ( (lv_parameters_4_0= ruleParameter ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameter ) ) )* )? + int alt26=2; + int LA26_0 = input.LA(1); + + if ( ((LA26_0>=RULE_STRING && LA26_0<=RULE_ID)) ) { + alt26=1; + } + switch (alt26) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1192:2: ( (lv_parameters_4_0= ruleParameter ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameter ) ) )* + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1192:2: ( (lv_parameters_4_0= ruleParameter ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1193:1: (lv_parameters_4_0= ruleParameter ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1193:1: (lv_parameters_4_0= ruleParameter ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1194:3: lv_parameters_4_0= ruleParameter + { + + newCompositeNode(grammarAccess.getSignatureAccess().getParametersParameterParserRuleCall_3_0_0()); + + pushFollow(FollowSets000.FOLLOW_ruleParameter_in_ruleSignature2633); + lv_parameters_4_0=ruleParameter(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSignatureRule()); + } + add( + current, + "parameters", + lv_parameters_4_0, + "Parameter"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1210:2: (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameter ) ) )* + loop25: + do { + int alt25=2; + int LA25_0 = input.LA(1); + + if ( (LA25_0==14) ) { + alt25=1; + } + + + switch (alt25) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1210:4: otherlv_5= ',' ( (lv_parameters_6_0= ruleParameter ) ) + { + otherlv_5=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleSignature2646); + + newLeafNode(otherlv_5, grammarAccess.getSignatureAccess().getCommaKeyword_3_1_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1214:1: ( (lv_parameters_6_0= ruleParameter ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1215:1: (lv_parameters_6_0= ruleParameter ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1215:1: (lv_parameters_6_0= ruleParameter ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1216:3: lv_parameters_6_0= ruleParameter + { + + newCompositeNode(grammarAccess.getSignatureAccess().getParametersParameterParserRuleCall_3_1_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleParameter_in_ruleSignature2667); + lv_parameters_6_0=ruleParameter(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSignatureRule()); + } + add( + current, + "parameters", + lv_parameters_6_0, + "Parameter"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop25; + } + } while (true); + + + } + break; + + } + + otherlv_7=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleSignature2683); + + newLeafNode(otherlv_7, grammarAccess.getSignatureAccess().getRightParenthesisKeyword_4()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleSignature" + + + // $ANTLR start "entryRuleParameter" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1244:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ; + public final EObject entryRuleParameter() throws RecognitionException { + EObject current = null; + + EObject iv_ruleParameter = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1245:2: (iv_ruleParameter= ruleParameter EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1246:2: iv_ruleParameter= ruleParameter EOF + { + newCompositeNode(grammarAccess.getParameterRule()); + pushFollow(FollowSets000.FOLLOW_ruleParameter_in_entryRuleParameter2719); + iv_ruleParameter=ruleParameter(); + + state._fsp--; + + current =iv_ruleParameter; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleParameter2729); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleParameter" + + + // $ANTLR start "ruleParameter" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1253:1: ruleParameter returns [EObject current=null] : ( ( ( ruleEString ) ) ( (lv_name_1_0= ruleEString ) ) ) ; + public final EObject ruleParameter() throws RecognitionException { + EObject current = null; + + AntlrDatatypeRuleToken lv_name_1_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1256:28: ( ( ( ( ruleEString ) ) ( (lv_name_1_0= ruleEString ) ) ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1257:1: ( ( ( ruleEString ) ) ( (lv_name_1_0= ruleEString ) ) ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1257:1: ( ( ( ruleEString ) ) ( (lv_name_1_0= ruleEString ) ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1257:2: ( ( ruleEString ) ) ( (lv_name_1_0= ruleEString ) ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1257:2: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1258:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1258:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1259:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getParameterRule()); + } + + + newCompositeNode(grammarAccess.getParameterAccess().getDataTypeDataTypeCrossReference_0_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleParameter2777); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1272:2: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1273:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1273:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1274:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleParameter2798); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getParameterRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleParameter" + + + // $ANTLR start "entryRuleProvidedRole" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1298:1: entryRuleProvidedRole returns [EObject current=null] : iv_ruleProvidedRole= ruleProvidedRole EOF ; + public final EObject entryRuleProvidedRole() throws RecognitionException { + EObject current = null; + + EObject iv_ruleProvidedRole = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1299:2: (iv_ruleProvidedRole= ruleProvidedRole EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1300:2: iv_ruleProvidedRole= ruleProvidedRole EOF + { + newCompositeNode(grammarAccess.getProvidedRoleRule()); + pushFollow(FollowSets000.FOLLOW_ruleProvidedRole_in_entryRuleProvidedRole2834); + iv_ruleProvidedRole=ruleProvidedRole(); + + state._fsp--; + + current =iv_ruleProvidedRole; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleProvidedRole2844); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleProvidedRole" + + + // $ANTLR start "ruleProvidedRole" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1307:1: ruleProvidedRole returns [EObject current=null] : ( () otherlv_1= 'provides' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* ) ; + public final EObject ruleProvidedRole() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1310:28: ( ( () otherlv_1= 'provides' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1311:1: ( () otherlv_1= 'provides' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1311:1: ( () otherlv_1= 'provides' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1311:2: () otherlv_1= 'provides' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1311:2: () + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1312:5: + { + + current = forceCreateModelElement( + grammarAccess.getProvidedRoleAccess().getProvidedRoleAction_0(), + current); + + + } + + otherlv_1=(Token)match(input,38,FollowSets000.FOLLOW_38_in_ruleProvidedRole2890); + + newLeafNode(otherlv_1, grammarAccess.getProvidedRoleAccess().getProvidesKeyword_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1321:1: ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* + loop28: + do { + int alt28=2; + int LA28_0 = input.LA(1); + + if ( ((LA28_0>=RULE_STRING && LA28_0<=RULE_ID)) ) { + alt28=1; + } + + + switch (alt28) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1321:2: ( ( ruleEString ) ) (otherlv_3= ',' )? + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1321:2: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1322:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1322:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1323:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getProvidedRoleRule()); + } + + + newCompositeNode(grammarAccess.getProvidedRoleAccess().getInterfaceInterfaceCrossReference_2_0_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleProvidedRole2914); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1336:2: (otherlv_3= ',' )? + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==14) ) { + int LA27_1 = input.LA(2); + + if ( (LA27_1==EOF||(LA27_1>=RULE_STRING && LA27_1<=RULE_ID)||LA27_1==12||(LA27_1>=14 && LA27_1<=15)||LA27_1==39) ) { + alt27=1; + } + } + switch (alt27) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1336:4: otherlv_3= ',' + { + otherlv_3=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleProvidedRole2927); + + newLeafNode(otherlv_3, grammarAccess.getProvidedRoleAccess().getCommaKeyword_2_1()); + + + } + break; + + } + + + } + break; + + default : + break loop28; + } + } while (true); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleProvidedRole" + + + // $ANTLR start "entryRuleRequiredRole" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1348:1: entryRuleRequiredRole returns [EObject current=null] : iv_ruleRequiredRole= ruleRequiredRole EOF ; + public final EObject entryRuleRequiredRole() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRequiredRole = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1349:2: (iv_ruleRequiredRole= ruleRequiredRole EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1350:2: iv_ruleRequiredRole= ruleRequiredRole EOF + { + newCompositeNode(grammarAccess.getRequiredRoleRule()); + pushFollow(FollowSets000.FOLLOW_ruleRequiredRole_in_entryRuleRequiredRole2967); + iv_ruleRequiredRole=ruleRequiredRole(); + + state._fsp--; + + current =iv_ruleRequiredRole; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleRequiredRole2977); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRequiredRole" + + + // $ANTLR start "ruleRequiredRole" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1357:1: ruleRequiredRole returns [EObject current=null] : ( () otherlv_1= 'requires' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* ) ; + public final EObject ruleRequiredRole() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_3=null; + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1360:28: ( ( () otherlv_1= 'requires' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1361:1: ( () otherlv_1= 'requires' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1361:1: ( () otherlv_1= 'requires' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1361:2: () otherlv_1= 'requires' ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1361:2: () + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1362:5: + { + + current = forceCreateModelElement( + grammarAccess.getRequiredRoleAccess().getRequiredRoleAction_0(), + current); + + + } + + otherlv_1=(Token)match(input,39,FollowSets000.FOLLOW_39_in_ruleRequiredRole3023); + + newLeafNode(otherlv_1, grammarAccess.getRequiredRoleAccess().getRequiresKeyword_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1371:1: ( ( ( ruleEString ) ) (otherlv_3= ',' )? )* + loop30: + do { + int alt30=2; + int LA30_0 = input.LA(1); + + if ( ((LA30_0>=RULE_STRING && LA30_0<=RULE_ID)) ) { + alt30=1; + } + + + switch (alt30) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1371:2: ( ( ruleEString ) ) (otherlv_3= ',' )? + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1371:2: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1372:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1372:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1373:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getRequiredRoleRule()); + } + + + newCompositeNode(grammarAccess.getRequiredRoleAccess().getInterfaceInterfaceCrossReference_2_0_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleRequiredRole3047); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1386:2: (otherlv_3= ',' )? + int alt29=2; + int LA29_0 = input.LA(1); + + if ( (LA29_0==14) ) { + int LA29_1 = input.LA(2); + + if ( (LA29_1==EOF||(LA29_1>=RULE_STRING && LA29_1<=RULE_ID)||LA29_1==12||(LA29_1>=14 && LA29_1<=15)) ) { + alt29=1; + } + } + switch (alt29) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1386:4: otherlv_3= ',' + { + otherlv_3=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleRequiredRole3060); + + newLeafNode(otherlv_3, grammarAccess.getRequiredRoleAccess().getCommaKeyword_2_1()); + + + } + break; + + } + + + } + break; + + default : + break loop30; + } + } while (true); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRequiredRole" + + + // $ANTLR start "entryRuleBasicComponent" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1398:1: entryRuleBasicComponent returns [EObject current=null] : iv_ruleBasicComponent= ruleBasicComponent EOF ; + public final EObject entryRuleBasicComponent() throws RecognitionException { + EObject current = null; + + EObject iv_ruleBasicComponent = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1399:2: (iv_ruleBasicComponent= ruleBasicComponent EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1400:2: iv_ruleBasicComponent= ruleBasicComponent EOF + { + newCompositeNode(grammarAccess.getBasicComponentRule()); + pushFollow(FollowSets000.FOLLOW_ruleBasicComponent_in_entryRuleBasicComponent3100); + iv_ruleBasicComponent=ruleBasicComponent(); + + state._fsp--; + + current =iv_ruleBasicComponent; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleBasicComponent3110); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleBasicComponent" + + + // $ANTLR start "ruleBasicComponent" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1407:1: ruleBasicComponent returns [EObject current=null] : (otherlv_0= 'BasicComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? otherlv_15= '}' ) ; + public final EObject ruleBasicComponent() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_3=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_15=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_providedRoles_2_0 = null; + + EObject lv_providedRoles_4_0 = null; + + EObject lv_requiredRoles_5_0 = null; + + EObject lv_requiredRoles_7_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1410:28: ( (otherlv_0= 'BasicComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? otherlv_15= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1411:1: (otherlv_0= 'BasicComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? otherlv_15= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1411:1: (otherlv_0= 'BasicComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? otherlv_15= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1411:3: otherlv_0= 'BasicComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? otherlv_15= '}' + { + otherlv_0=(Token)match(input,40,FollowSets000.FOLLOW_40_in_ruleBasicComponent3147); + + newLeafNode(otherlv_0, grammarAccess.getBasicComponentAccess().getBasicComponentKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1415:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1416:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1416:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1417:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getBasicComponentAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleBasicComponent3168); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1433:2: ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? + int alt32=2; + int LA32_0 = input.LA(1); + + if ( (LA32_0==38) ) { + alt32=1; + } + switch (alt32) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1433:3: ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1433:3: ( (lv_providedRoles_2_0= ruleProvidedRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1434:1: (lv_providedRoles_2_0= ruleProvidedRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1434:1: (lv_providedRoles_2_0= ruleProvidedRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1435:3: lv_providedRoles_2_0= ruleProvidedRole + { + + newCompositeNode(grammarAccess.getBasicComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_0_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedRole_in_ruleBasicComponent3190); + lv_providedRoles_2_0=ruleProvidedRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + add( + current, + "providedRoles", + lv_providedRoles_2_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1451:2: (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* + loop31: + do { + int alt31=2; + int LA31_0 = input.LA(1); + + if ( (LA31_0==14) ) { + alt31=1; + } + + + switch (alt31) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1451:4: otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) + { + otherlv_3=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleBasicComponent3203); + + newLeafNode(otherlv_3, grammarAccess.getBasicComponentAccess().getCommaKeyword_2_1_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1455:1: ( (lv_providedRoles_4_0= ruleProvidedRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1456:1: (lv_providedRoles_4_0= ruleProvidedRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1456:1: (lv_providedRoles_4_0= ruleProvidedRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1457:3: lv_providedRoles_4_0= ruleProvidedRole + { + + newCompositeNode(grammarAccess.getBasicComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_1_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedRole_in_ruleBasicComponent3224); + lv_providedRoles_4_0=ruleProvidedRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + add( + current, + "providedRoles", + lv_providedRoles_4_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop31; + } + } while (true); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1473:6: ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? + int alt34=2; + int LA34_0 = input.LA(1); + + if ( (LA34_0==39) ) { + alt34=1; + } + switch (alt34) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1473:7: ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1473:7: ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1474:1: (lv_requiredRoles_5_0= ruleRequiredRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1474:1: (lv_requiredRoles_5_0= ruleRequiredRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1475:3: lv_requiredRoles_5_0= ruleRequiredRole + { + + newCompositeNode(grammarAccess.getBasicComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_0_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredRole_in_ruleBasicComponent3250); + lv_requiredRoles_5_0=ruleRequiredRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + add( + current, + "requiredRoles", + lv_requiredRoles_5_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1491:2: (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* + loop33: + do { + int alt33=2; + int LA33_0 = input.LA(1); + + if ( (LA33_0==14) ) { + alt33=1; + } + + + switch (alt33) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1491:4: otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) + { + otherlv_6=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleBasicComponent3263); + + newLeafNode(otherlv_6, grammarAccess.getBasicComponentAccess().getCommaKeyword_3_1_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1495:1: ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1496:1: (lv_requiredRoles_7_0= ruleRequiredRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1496:1: (lv_requiredRoles_7_0= ruleRequiredRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1497:3: lv_requiredRoles_7_0= ruleRequiredRole + { + + newCompositeNode(grammarAccess.getBasicComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_1_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredRole_in_ruleBasicComponent3284); + lv_requiredRoles_7_0=ruleRequiredRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getBasicComponentRule()); + } + add( + current, + "requiredRoles", + lv_requiredRoles_7_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop33; + } + } while (true); + + + } + break; + + } + + otherlv_8=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleBasicComponent3300); + + newLeafNode(otherlv_8, grammarAccess.getBasicComponentAccess().getLeftCurlyBracketKeyword_4()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1517:1: (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? + int alt36=2; + int LA36_0 = input.LA(1); + + if ( (LA36_0==24) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1517:3: otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' + { + otherlv_9=(Token)match(input,24,FollowSets000.FOLLOW_24_in_ruleBasicComponent3313); + + newLeafNode(otherlv_9, grammarAccess.getBasicComponentAccess().getRelationshipKeyword_5_0()); + + otherlv_10=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleBasicComponent3325); + + newLeafNode(otherlv_10, grammarAccess.getBasicComponentAccess().getLeftParenthesisKeyword_5_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1525:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1526:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1526:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1527:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getBasicComponentRule()); + } + + + newCompositeNode(grammarAccess.getBasicComponentAccess().getRelationshipRelationshipCrossReference_5_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleBasicComponent3348); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1540:2: (otherlv_12= ',' ( ( ruleEString ) ) )* + loop35: + do { + int alt35=2; + int LA35_0 = input.LA(1); + + if ( (LA35_0==14) ) { + alt35=1; + } + + + switch (alt35) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1540:4: otherlv_12= ',' ( ( ruleEString ) ) + { + otherlv_12=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleBasicComponent3361); + + newLeafNode(otherlv_12, grammarAccess.getBasicComponentAccess().getCommaKeyword_5_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1544:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1545:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1545:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1546:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getBasicComponentRule()); + } + + + newCompositeNode(grammarAccess.getBasicComponentAccess().getRelationshipRelationshipCrossReference_5_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleBasicComponent3384); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop35; + } + } while (true); + + otherlv_14=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleBasicComponent3398); + + newLeafNode(otherlv_14, grammarAccess.getBasicComponentAccess().getRightParenthesisKeyword_5_4()); + + + } + break; + + } + + otherlv_15=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleBasicComponent3412); + + newLeafNode(otherlv_15, grammarAccess.getBasicComponentAccess().getRightCurlyBracketKeyword_6()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleBasicComponent" + + + // $ANTLR start "entryRuleCompositeComponent" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1575:1: entryRuleCompositeComponent returns [EObject current=null] : iv_ruleCompositeComponent= ruleCompositeComponent EOF ; + public final EObject entryRuleCompositeComponent() throws RecognitionException { + EObject current = null; + + EObject iv_ruleCompositeComponent = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1576:2: (iv_ruleCompositeComponent= ruleCompositeComponent EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1577:2: iv_ruleCompositeComponent= ruleCompositeComponent EOF + { + newCompositeNode(grammarAccess.getCompositeComponentRule()); + pushFollow(FollowSets000.FOLLOW_ruleCompositeComponent_in_entryRuleCompositeComponent3448); + iv_ruleCompositeComponent=ruleCompositeComponent(); + + state._fsp--; + + current =iv_ruleCompositeComponent; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleCompositeComponent3458); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleCompositeComponent" + + + // $ANTLR start "ruleCompositeComponent" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1584:1: ruleCompositeComponent returns [EObject current=null] : (otherlv_0= 'CompositeComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'assembly' ( (lv_assembly_16_0= ruleComposedStructureAssembly ) ) )? otherlv_17= '}' ) ; + public final EObject ruleCompositeComponent() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_3=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_15=null; + Token otherlv_17=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_providedRoles_2_0 = null; + + EObject lv_providedRoles_4_0 = null; + + EObject lv_requiredRoles_5_0 = null; + + EObject lv_requiredRoles_7_0 = null; + + EObject lv_assembly_16_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1587:28: ( (otherlv_0= 'CompositeComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'assembly' ( (lv_assembly_16_0= ruleComposedStructureAssembly ) ) )? otherlv_17= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1588:1: (otherlv_0= 'CompositeComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'assembly' ( (lv_assembly_16_0= ruleComposedStructureAssembly ) ) )? otherlv_17= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1588:1: (otherlv_0= 'CompositeComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'assembly' ( (lv_assembly_16_0= ruleComposedStructureAssembly ) ) )? otherlv_17= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1588:3: otherlv_0= 'CompositeComponent' ( (lv_name_1_0= ruleEString ) ) ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? otherlv_8= '{' (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'assembly' ( (lv_assembly_16_0= ruleComposedStructureAssembly ) ) )? otherlv_17= '}' + { + otherlv_0=(Token)match(input,41,FollowSets000.FOLLOW_41_in_ruleCompositeComponent3495); + + newLeafNode(otherlv_0, grammarAccess.getCompositeComponentAccess().getCompositeComponentKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1592:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1593:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1593:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1594:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getCompositeComponentAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleCompositeComponent3516); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1610:2: ( ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* )? + int alt38=2; + int LA38_0 = input.LA(1); + + if ( (LA38_0==38) ) { + alt38=1; + } + switch (alt38) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1610:3: ( (lv_providedRoles_2_0= ruleProvidedRole ) ) (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1610:3: ( (lv_providedRoles_2_0= ruleProvidedRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1611:1: (lv_providedRoles_2_0= ruleProvidedRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1611:1: (lv_providedRoles_2_0= ruleProvidedRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1612:3: lv_providedRoles_2_0= ruleProvidedRole + { + + newCompositeNode(grammarAccess.getCompositeComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_0_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedRole_in_ruleCompositeComponent3538); + lv_providedRoles_2_0=ruleProvidedRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + add( + current, + "providedRoles", + lv_providedRoles_2_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1628:2: (otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) )* + loop37: + do { + int alt37=2; + int LA37_0 = input.LA(1); + + if ( (LA37_0==14) ) { + alt37=1; + } + + + switch (alt37) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1628:4: otherlv_3= ',' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) + { + otherlv_3=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleCompositeComponent3551); + + newLeafNode(otherlv_3, grammarAccess.getCompositeComponentAccess().getCommaKeyword_2_1_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1632:1: ( (lv_providedRoles_4_0= ruleProvidedRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1633:1: (lv_providedRoles_4_0= ruleProvidedRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1633:1: (lv_providedRoles_4_0= ruleProvidedRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1634:3: lv_providedRoles_4_0= ruleProvidedRole + { + + newCompositeNode(grammarAccess.getCompositeComponentAccess().getProvidedRolesProvidedRoleParserRuleCall_2_1_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedRole_in_ruleCompositeComponent3572); + lv_providedRoles_4_0=ruleProvidedRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + add( + current, + "providedRoles", + lv_providedRoles_4_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop37; + } + } while (true); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1650:6: ( ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* )? + int alt40=2; + int LA40_0 = input.LA(1); + + if ( (LA40_0==39) ) { + alt40=1; + } + switch (alt40) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1650:7: ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1650:7: ( (lv_requiredRoles_5_0= ruleRequiredRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1651:1: (lv_requiredRoles_5_0= ruleRequiredRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1651:1: (lv_requiredRoles_5_0= ruleRequiredRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1652:3: lv_requiredRoles_5_0= ruleRequiredRole + { + + newCompositeNode(grammarAccess.getCompositeComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_0_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredRole_in_ruleCompositeComponent3598); + lv_requiredRoles_5_0=ruleRequiredRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + add( + current, + "requiredRoles", + lv_requiredRoles_5_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1668:2: (otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) )* + loop39: + do { + int alt39=2; + int LA39_0 = input.LA(1); + + if ( (LA39_0==14) ) { + alt39=1; + } + + + switch (alt39) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1668:4: otherlv_6= ',' ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) + { + otherlv_6=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleCompositeComponent3611); + + newLeafNode(otherlv_6, grammarAccess.getCompositeComponentAccess().getCommaKeyword_3_1_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1672:1: ( (lv_requiredRoles_7_0= ruleRequiredRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1673:1: (lv_requiredRoles_7_0= ruleRequiredRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1673:1: (lv_requiredRoles_7_0= ruleRequiredRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1674:3: lv_requiredRoles_7_0= ruleRequiredRole + { + + newCompositeNode(grammarAccess.getCompositeComponentAccess().getRequiredRolesRequiredRoleParserRuleCall_3_1_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredRole_in_ruleCompositeComponent3632); + lv_requiredRoles_7_0=ruleRequiredRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + add( + current, + "requiredRoles", + lv_requiredRoles_7_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop39; + } + } while (true); + + + } + break; + + } + + otherlv_8=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleCompositeComponent3648); + + newLeafNode(otherlv_8, grammarAccess.getCompositeComponentAccess().getLeftCurlyBracketKeyword_4()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1694:1: (otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? + int alt42=2; + int LA42_0 = input.LA(1); + + if ( (LA42_0==24) ) { + alt42=1; + } + switch (alt42) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1694:3: otherlv_9= 'relationship' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' + { + otherlv_9=(Token)match(input,24,FollowSets000.FOLLOW_24_in_ruleCompositeComponent3661); + + newLeafNode(otherlv_9, grammarAccess.getCompositeComponentAccess().getRelationshipKeyword_5_0()); + + otherlv_10=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleCompositeComponent3673); + + newLeafNode(otherlv_10, grammarAccess.getCompositeComponentAccess().getLeftParenthesisKeyword_5_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1702:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1703:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1703:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1704:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getCompositeComponentRule()); + } + + + newCompositeNode(grammarAccess.getCompositeComponentAccess().getRelationshipRelationshipCrossReference_5_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleCompositeComponent3696); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1717:2: (otherlv_12= ',' ( ( ruleEString ) ) )* + loop41: + do { + int alt41=2; + int LA41_0 = input.LA(1); + + if ( (LA41_0==14) ) { + alt41=1; + } + + + switch (alt41) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1717:4: otherlv_12= ',' ( ( ruleEString ) ) + { + otherlv_12=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleCompositeComponent3709); + + newLeafNode(otherlv_12, grammarAccess.getCompositeComponentAccess().getCommaKeyword_5_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1721:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1722:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1722:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1723:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getCompositeComponentRule()); + } + + + newCompositeNode(grammarAccess.getCompositeComponentAccess().getRelationshipRelationshipCrossReference_5_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleCompositeComponent3732); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop41; + } + } while (true); + + otherlv_14=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleCompositeComponent3746); + + newLeafNode(otherlv_14, grammarAccess.getCompositeComponentAccess().getRightParenthesisKeyword_5_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1740:3: (otherlv_15= 'assembly' ( (lv_assembly_16_0= ruleComposedStructureAssembly ) ) )? + int alt43=2; + int LA43_0 = input.LA(1); + + if ( (LA43_0==42) ) { + alt43=1; + } + switch (alt43) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1740:5: otherlv_15= 'assembly' ( (lv_assembly_16_0= ruleComposedStructureAssembly ) ) + { + otherlv_15=(Token)match(input,42,FollowSets000.FOLLOW_42_in_ruleCompositeComponent3761); + + newLeafNode(otherlv_15, grammarAccess.getCompositeComponentAccess().getAssemblyKeyword_6_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1744:1: ( (lv_assembly_16_0= ruleComposedStructureAssembly ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1745:1: (lv_assembly_16_0= ruleComposedStructureAssembly ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1745:1: (lv_assembly_16_0= ruleComposedStructureAssembly ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1746:3: lv_assembly_16_0= ruleComposedStructureAssembly + { + + newCompositeNode(grammarAccess.getCompositeComponentAccess().getAssemblyComposedStructureAssemblyParserRuleCall_6_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleComposedStructureAssembly_in_ruleCompositeComponent3782); + lv_assembly_16_0=ruleComposedStructureAssembly(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCompositeComponentRule()); + } + set( + current, + "assembly", + lv_assembly_16_0, + "ComposedStructureAssembly"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + } + + otherlv_17=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleCompositeComponent3796); + + newLeafNode(otherlv_17, grammarAccess.getCompositeComponentAccess().getRightCurlyBracketKeyword_7()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleCompositeComponent" + + + // $ANTLR start "entryRuleSubSystem" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1774:1: entryRuleSubSystem returns [EObject current=null] : iv_ruleSubSystem= ruleSubSystem EOF ; + public final EObject entryRuleSubSystem() throws RecognitionException { + EObject current = null; + + EObject iv_ruleSubSystem = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1775:2: (iv_ruleSubSystem= ruleSubSystem EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1776:2: iv_ruleSubSystem= ruleSubSystem EOF + { + newCompositeNode(grammarAccess.getSubSystemRule()); + pushFollow(FollowSets000.FOLLOW_ruleSubSystem_in_entryRuleSubSystem3832); + iv_ruleSubSystem=ruleSubSystem(); + + state._fsp--; + + current =iv_ruleSubSystem; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSubSystem3842); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleSubSystem" + + + // $ANTLR start "ruleSubSystem" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1783:1: ruleSubSystem returns [EObject current=null] : (otherlv_0= 'SubSystem' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= 'providedRoles' otherlv_3= '{' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) (otherlv_5= ',' ( (lv_providedRoles_6_0= ruleProvidedRole ) ) )* otherlv_7= '}' )? (otherlv_8= 'requiredRoles' otherlv_9= '{' ( (lv_requiredRoles_10_0= ruleRequiredRole ) ) (otherlv_11= ',' ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) )* otherlv_13= '}' )? otherlv_14= '{' (otherlv_15= 'relationship' otherlv_16= '(' ( ( ruleEString ) ) (otherlv_18= ',' ( ( ruleEString ) ) )* otherlv_20= ')' )? (otherlv_21= 'assembly' ( (lv_assembly_22_0= ruleComposedStructureAssembly ) ) )? otherlv_23= '}' ) ; + public final EObject ruleSubSystem() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_11=null; + Token otherlv_13=null; + Token otherlv_14=null; + Token otherlv_15=null; + Token otherlv_16=null; + Token otherlv_18=null; + Token otherlv_20=null; + Token otherlv_21=null; + Token otherlv_23=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + EObject lv_providedRoles_4_0 = null; + + EObject lv_providedRoles_6_0 = null; + + EObject lv_requiredRoles_10_0 = null; + + EObject lv_requiredRoles_12_0 = null; + + EObject lv_assembly_22_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1786:28: ( (otherlv_0= 'SubSystem' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= 'providedRoles' otherlv_3= '{' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) (otherlv_5= ',' ( (lv_providedRoles_6_0= ruleProvidedRole ) ) )* otherlv_7= '}' )? (otherlv_8= 'requiredRoles' otherlv_9= '{' ( (lv_requiredRoles_10_0= ruleRequiredRole ) ) (otherlv_11= ',' ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) )* otherlv_13= '}' )? otherlv_14= '{' (otherlv_15= 'relationship' otherlv_16= '(' ( ( ruleEString ) ) (otherlv_18= ',' ( ( ruleEString ) ) )* otherlv_20= ')' )? (otherlv_21= 'assembly' ( (lv_assembly_22_0= ruleComposedStructureAssembly ) ) )? otherlv_23= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1787:1: (otherlv_0= 'SubSystem' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= 'providedRoles' otherlv_3= '{' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) (otherlv_5= ',' ( (lv_providedRoles_6_0= ruleProvidedRole ) ) )* otherlv_7= '}' )? (otherlv_8= 'requiredRoles' otherlv_9= '{' ( (lv_requiredRoles_10_0= ruleRequiredRole ) ) (otherlv_11= ',' ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) )* otherlv_13= '}' )? otherlv_14= '{' (otherlv_15= 'relationship' otherlv_16= '(' ( ( ruleEString ) ) (otherlv_18= ',' ( ( ruleEString ) ) )* otherlv_20= ')' )? (otherlv_21= 'assembly' ( (lv_assembly_22_0= ruleComposedStructureAssembly ) ) )? otherlv_23= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1787:1: (otherlv_0= 'SubSystem' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= 'providedRoles' otherlv_3= '{' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) (otherlv_5= ',' ( (lv_providedRoles_6_0= ruleProvidedRole ) ) )* otherlv_7= '}' )? (otherlv_8= 'requiredRoles' otherlv_9= '{' ( (lv_requiredRoles_10_0= ruleRequiredRole ) ) (otherlv_11= ',' ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) )* otherlv_13= '}' )? otherlv_14= '{' (otherlv_15= 'relationship' otherlv_16= '(' ( ( ruleEString ) ) (otherlv_18= ',' ( ( ruleEString ) ) )* otherlv_20= ')' )? (otherlv_21= 'assembly' ( (lv_assembly_22_0= ruleComposedStructureAssembly ) ) )? otherlv_23= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1787:3: otherlv_0= 'SubSystem' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= 'providedRoles' otherlv_3= '{' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) (otherlv_5= ',' ( (lv_providedRoles_6_0= ruleProvidedRole ) ) )* otherlv_7= '}' )? (otherlv_8= 'requiredRoles' otherlv_9= '{' ( (lv_requiredRoles_10_0= ruleRequiredRole ) ) (otherlv_11= ',' ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) )* otherlv_13= '}' )? otherlv_14= '{' (otherlv_15= 'relationship' otherlv_16= '(' ( ( ruleEString ) ) (otherlv_18= ',' ( ( ruleEString ) ) )* otherlv_20= ')' )? (otherlv_21= 'assembly' ( (lv_assembly_22_0= ruleComposedStructureAssembly ) ) )? otherlv_23= '}' + { + otherlv_0=(Token)match(input,43,FollowSets000.FOLLOW_43_in_ruleSubSystem3879); + + newLeafNode(otherlv_0, grammarAccess.getSubSystemAccess().getSubSystemKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1791:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1792:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1792:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1793:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getSubSystemAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSubSystem3900); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1809:2: (otherlv_2= 'providedRoles' otherlv_3= '{' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) (otherlv_5= ',' ( (lv_providedRoles_6_0= ruleProvidedRole ) ) )* otherlv_7= '}' )? + int alt45=2; + int LA45_0 = input.LA(1); + + if ( (LA45_0==25) ) { + alt45=1; + } + switch (alt45) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1809:4: otherlv_2= 'providedRoles' otherlv_3= '{' ( (lv_providedRoles_4_0= ruleProvidedRole ) ) (otherlv_5= ',' ( (lv_providedRoles_6_0= ruleProvidedRole ) ) )* otherlv_7= '}' + { + otherlv_2=(Token)match(input,25,FollowSets000.FOLLOW_25_in_ruleSubSystem3913); + + newLeafNode(otherlv_2, grammarAccess.getSubSystemAccess().getProvidedRolesKeyword_2_0()); + + otherlv_3=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleSubSystem3925); + + newLeafNode(otherlv_3, grammarAccess.getSubSystemAccess().getLeftCurlyBracketKeyword_2_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1817:1: ( (lv_providedRoles_4_0= ruleProvidedRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1818:1: (lv_providedRoles_4_0= ruleProvidedRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1818:1: (lv_providedRoles_4_0= ruleProvidedRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1819:3: lv_providedRoles_4_0= ruleProvidedRole + { + + newCompositeNode(grammarAccess.getSubSystemAccess().getProvidedRolesProvidedRoleParserRuleCall_2_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedRole_in_ruleSubSystem3946); + lv_providedRoles_4_0=ruleProvidedRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + add( + current, + "providedRoles", + lv_providedRoles_4_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1835:2: (otherlv_5= ',' ( (lv_providedRoles_6_0= ruleProvidedRole ) ) )* + loop44: + do { + int alt44=2; + int LA44_0 = input.LA(1); + + if ( (LA44_0==14) ) { + alt44=1; + } + + + switch (alt44) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1835:4: otherlv_5= ',' ( (lv_providedRoles_6_0= ruleProvidedRole ) ) + { + otherlv_5=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleSubSystem3959); + + newLeafNode(otherlv_5, grammarAccess.getSubSystemAccess().getCommaKeyword_2_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1839:1: ( (lv_providedRoles_6_0= ruleProvidedRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1840:1: (lv_providedRoles_6_0= ruleProvidedRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1840:1: (lv_providedRoles_6_0= ruleProvidedRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1841:3: lv_providedRoles_6_0= ruleProvidedRole + { + + newCompositeNode(grammarAccess.getSubSystemAccess().getProvidedRolesProvidedRoleParserRuleCall_2_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedRole_in_ruleSubSystem3980); + lv_providedRoles_6_0=ruleProvidedRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + add( + current, + "providedRoles", + lv_providedRoles_6_0, + "ProvidedRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop44; + } + } while (true); + + otherlv_7=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleSubSystem3994); + + newLeafNode(otherlv_7, grammarAccess.getSubSystemAccess().getRightCurlyBracketKeyword_2_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1861:3: (otherlv_8= 'requiredRoles' otherlv_9= '{' ( (lv_requiredRoles_10_0= ruleRequiredRole ) ) (otherlv_11= ',' ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) )* otherlv_13= '}' )? + int alt47=2; + int LA47_0 = input.LA(1); + + if ( (LA47_0==26) ) { + alt47=1; + } + switch (alt47) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1861:5: otherlv_8= 'requiredRoles' otherlv_9= '{' ( (lv_requiredRoles_10_0= ruleRequiredRole ) ) (otherlv_11= ',' ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) )* otherlv_13= '}' + { + otherlv_8=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleSubSystem4009); + + newLeafNode(otherlv_8, grammarAccess.getSubSystemAccess().getRequiredRolesKeyword_3_0()); + + otherlv_9=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleSubSystem4021); + + newLeafNode(otherlv_9, grammarAccess.getSubSystemAccess().getLeftCurlyBracketKeyword_3_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1869:1: ( (lv_requiredRoles_10_0= ruleRequiredRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1870:1: (lv_requiredRoles_10_0= ruleRequiredRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1870:1: (lv_requiredRoles_10_0= ruleRequiredRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1871:3: lv_requiredRoles_10_0= ruleRequiredRole + { + + newCompositeNode(grammarAccess.getSubSystemAccess().getRequiredRolesRequiredRoleParserRuleCall_3_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredRole_in_ruleSubSystem4042); + lv_requiredRoles_10_0=ruleRequiredRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + add( + current, + "requiredRoles", + lv_requiredRoles_10_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1887:2: (otherlv_11= ',' ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) )* + loop46: + do { + int alt46=2; + int LA46_0 = input.LA(1); + + if ( (LA46_0==14) ) { + alt46=1; + } + + + switch (alt46) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1887:4: otherlv_11= ',' ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) + { + otherlv_11=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleSubSystem4055); + + newLeafNode(otherlv_11, grammarAccess.getSubSystemAccess().getCommaKeyword_3_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1891:1: ( (lv_requiredRoles_12_0= ruleRequiredRole ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1892:1: (lv_requiredRoles_12_0= ruleRequiredRole ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1892:1: (lv_requiredRoles_12_0= ruleRequiredRole ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1893:3: lv_requiredRoles_12_0= ruleRequiredRole + { + + newCompositeNode(grammarAccess.getSubSystemAccess().getRequiredRolesRequiredRoleParserRuleCall_3_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredRole_in_ruleSubSystem4076); + lv_requiredRoles_12_0=ruleRequiredRole(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + add( + current, + "requiredRoles", + lv_requiredRoles_12_0, + "RequiredRole"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop46; + } + } while (true); + + otherlv_13=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleSubSystem4090); + + newLeafNode(otherlv_13, grammarAccess.getSubSystemAccess().getRightCurlyBracketKeyword_3_4()); + + + } + break; + + } + + otherlv_14=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleSubSystem4104); + + newLeafNode(otherlv_14, grammarAccess.getSubSystemAccess().getLeftCurlyBracketKeyword_4()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1917:1: (otherlv_15= 'relationship' otherlv_16= '(' ( ( ruleEString ) ) (otherlv_18= ',' ( ( ruleEString ) ) )* otherlv_20= ')' )? + int alt49=2; + int LA49_0 = input.LA(1); + + if ( (LA49_0==24) ) { + alt49=1; + } + switch (alt49) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1917:3: otherlv_15= 'relationship' otherlv_16= '(' ( ( ruleEString ) ) (otherlv_18= ',' ( ( ruleEString ) ) )* otherlv_20= ')' + { + otherlv_15=(Token)match(input,24,FollowSets000.FOLLOW_24_in_ruleSubSystem4117); + + newLeafNode(otherlv_15, grammarAccess.getSubSystemAccess().getRelationshipKeyword_5_0()); + + otherlv_16=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleSubSystem4129); + + newLeafNode(otherlv_16, grammarAccess.getSubSystemAccess().getLeftParenthesisKeyword_5_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1925:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1926:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1926:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1927:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getSubSystemRule()); + } + + + newCompositeNode(grammarAccess.getSubSystemAccess().getRelationshipRelationshipCrossReference_5_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSubSystem4152); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1940:2: (otherlv_18= ',' ( ( ruleEString ) ) )* + loop48: + do { + int alt48=2; + int LA48_0 = input.LA(1); + + if ( (LA48_0==14) ) { + alt48=1; + } + + + switch (alt48) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1940:4: otherlv_18= ',' ( ( ruleEString ) ) + { + otherlv_18=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleSubSystem4165); + + newLeafNode(otherlv_18, grammarAccess.getSubSystemAccess().getCommaKeyword_5_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1944:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1945:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1945:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1946:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getSubSystemRule()); + } + + + newCompositeNode(grammarAccess.getSubSystemAccess().getRelationshipRelationshipCrossReference_5_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSubSystem4188); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop48; + } + } while (true); + + otherlv_20=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleSubSystem4202); + + newLeafNode(otherlv_20, grammarAccess.getSubSystemAccess().getRightParenthesisKeyword_5_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1963:3: (otherlv_21= 'assembly' ( (lv_assembly_22_0= ruleComposedStructureAssembly ) ) )? + int alt50=2; + int LA50_0 = input.LA(1); + + if ( (LA50_0==42) ) { + alt50=1; + } + switch (alt50) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1963:5: otherlv_21= 'assembly' ( (lv_assembly_22_0= ruleComposedStructureAssembly ) ) + { + otherlv_21=(Token)match(input,42,FollowSets000.FOLLOW_42_in_ruleSubSystem4217); + + newLeafNode(otherlv_21, grammarAccess.getSubSystemAccess().getAssemblyKeyword_6_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1967:1: ( (lv_assembly_22_0= ruleComposedStructureAssembly ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1968:1: (lv_assembly_22_0= ruleComposedStructureAssembly ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1968:1: (lv_assembly_22_0= ruleComposedStructureAssembly ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1969:3: lv_assembly_22_0= ruleComposedStructureAssembly + { + + newCompositeNode(grammarAccess.getSubSystemAccess().getAssemblyComposedStructureAssemblyParserRuleCall_6_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleComposedStructureAssembly_in_ruleSubSystem4238); + lv_assembly_22_0=ruleComposedStructureAssembly(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getSubSystemRule()); + } + set( + current, + "assembly", + lv_assembly_22_0, + "ComposedStructureAssembly"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + } + + otherlv_23=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleSubSystem4252); + + newLeafNode(otherlv_23, grammarAccess.getSubSystemAccess().getRightCurlyBracketKeyword_7()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleSubSystem" + + + // $ANTLR start "entryRuleComposedStructureAssembly" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1997:1: entryRuleComposedStructureAssembly returns [EObject current=null] : iv_ruleComposedStructureAssembly= ruleComposedStructureAssembly EOF ; + public final EObject entryRuleComposedStructureAssembly() throws RecognitionException { + EObject current = null; + + EObject iv_ruleComposedStructureAssembly = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1998:2: (iv_ruleComposedStructureAssembly= ruleComposedStructureAssembly EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:1999:2: iv_ruleComposedStructureAssembly= ruleComposedStructureAssembly EOF + { + newCompositeNode(grammarAccess.getComposedStructureAssemblyRule()); + pushFollow(FollowSets000.FOLLOW_ruleComposedStructureAssembly_in_entryRuleComposedStructureAssembly4288); + iv_ruleComposedStructureAssembly=ruleComposedStructureAssembly(); + + state._fsp--; + + current =iv_ruleComposedStructureAssembly; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleComposedStructureAssembly4298); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleComposedStructureAssembly" + + + // $ANTLR start "ruleComposedStructureAssembly" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2006:1: ruleComposedStructureAssembly returns [EObject current=null] : ( () otherlv_1= 'ComposedStructureAssembly' otherlv_2= '{' (otherlv_3= 'assemblyContexts' otherlv_4= '{' ( (lv_assemblyContexts_5_0= ruleAssemblyContext ) ) (otherlv_6= ',' ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) )* otherlv_8= '}' )? (otherlv_9= 'assemblyConnectors' otherlv_10= '{' ( (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) ) (otherlv_12= ',' ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) )* otherlv_14= '}' )? (otherlv_15= 'providedDelegationConnectors' otherlv_16= '{' ( (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) ) (otherlv_18= ',' ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) )* otherlv_20= '}' )? (otherlv_21= 'requiredDelegationConnectors' otherlv_22= '{' ( (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) ) (otherlv_24= ',' ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) )* otherlv_26= '}' )? otherlv_27= '}' ) ; + public final EObject ruleComposedStructureAssembly() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_4=null; + Token otherlv_6=null; + Token otherlv_8=null; + Token otherlv_9=null; + Token otherlv_10=null; + Token otherlv_12=null; + Token otherlv_14=null; + Token otherlv_15=null; + Token otherlv_16=null; + Token otherlv_18=null; + Token otherlv_20=null; + Token otherlv_21=null; + Token otherlv_22=null; + Token otherlv_24=null; + Token otherlv_26=null; + Token otherlv_27=null; + EObject lv_assemblyContexts_5_0 = null; + + EObject lv_assemblyContexts_7_0 = null; + + EObject lv_assemblyConnectors_11_0 = null; + + EObject lv_assemblyConnectors_13_0 = null; + + EObject lv_providedDelegationConnectors_17_0 = null; + + EObject lv_providedDelegationConnectors_19_0 = null; + + EObject lv_requiredDelegationConnectors_23_0 = null; + + EObject lv_requiredDelegationConnectors_25_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2009:28: ( ( () otherlv_1= 'ComposedStructureAssembly' otherlv_2= '{' (otherlv_3= 'assemblyContexts' otherlv_4= '{' ( (lv_assemblyContexts_5_0= ruleAssemblyContext ) ) (otherlv_6= ',' ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) )* otherlv_8= '}' )? (otherlv_9= 'assemblyConnectors' otherlv_10= '{' ( (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) ) (otherlv_12= ',' ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) )* otherlv_14= '}' )? (otherlv_15= 'providedDelegationConnectors' otherlv_16= '{' ( (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) ) (otherlv_18= ',' ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) )* otherlv_20= '}' )? (otherlv_21= 'requiredDelegationConnectors' otherlv_22= '{' ( (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) ) (otherlv_24= ',' ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) )* otherlv_26= '}' )? otherlv_27= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2010:1: ( () otherlv_1= 'ComposedStructureAssembly' otherlv_2= '{' (otherlv_3= 'assemblyContexts' otherlv_4= '{' ( (lv_assemblyContexts_5_0= ruleAssemblyContext ) ) (otherlv_6= ',' ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) )* otherlv_8= '}' )? (otherlv_9= 'assemblyConnectors' otherlv_10= '{' ( (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) ) (otherlv_12= ',' ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) )* otherlv_14= '}' )? (otherlv_15= 'providedDelegationConnectors' otherlv_16= '{' ( (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) ) (otherlv_18= ',' ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) )* otherlv_20= '}' )? (otherlv_21= 'requiredDelegationConnectors' otherlv_22= '{' ( (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) ) (otherlv_24= ',' ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) )* otherlv_26= '}' )? otherlv_27= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2010:1: ( () otherlv_1= 'ComposedStructureAssembly' otherlv_2= '{' (otherlv_3= 'assemblyContexts' otherlv_4= '{' ( (lv_assemblyContexts_5_0= ruleAssemblyContext ) ) (otherlv_6= ',' ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) )* otherlv_8= '}' )? (otherlv_9= 'assemblyConnectors' otherlv_10= '{' ( (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) ) (otherlv_12= ',' ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) )* otherlv_14= '}' )? (otherlv_15= 'providedDelegationConnectors' otherlv_16= '{' ( (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) ) (otherlv_18= ',' ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) )* otherlv_20= '}' )? (otherlv_21= 'requiredDelegationConnectors' otherlv_22= '{' ( (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) ) (otherlv_24= ',' ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) )* otherlv_26= '}' )? otherlv_27= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2010:2: () otherlv_1= 'ComposedStructureAssembly' otherlv_2= '{' (otherlv_3= 'assemblyContexts' otherlv_4= '{' ( (lv_assemblyContexts_5_0= ruleAssemblyContext ) ) (otherlv_6= ',' ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) )* otherlv_8= '}' )? (otherlv_9= 'assemblyConnectors' otherlv_10= '{' ( (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) ) (otherlv_12= ',' ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) )* otherlv_14= '}' )? (otherlv_15= 'providedDelegationConnectors' otherlv_16= '{' ( (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) ) (otherlv_18= ',' ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) )* otherlv_20= '}' )? (otherlv_21= 'requiredDelegationConnectors' otherlv_22= '{' ( (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) ) (otherlv_24= ',' ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) )* otherlv_26= '}' )? otherlv_27= '}' + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2010:2: () + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2011:5: + { + + current = forceCreateModelElement( + grammarAccess.getComposedStructureAssemblyAccess().getComposedStructureAssemblyAction_0(), + current); + + + } + + otherlv_1=(Token)match(input,44,FollowSets000.FOLLOW_44_in_ruleComposedStructureAssembly4344); + + newLeafNode(otherlv_1, grammarAccess.getComposedStructureAssemblyAccess().getComposedStructureAssemblyKeyword_1()); + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleComposedStructureAssembly4356); + + newLeafNode(otherlv_2, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_2()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2024:1: (otherlv_3= 'assemblyContexts' otherlv_4= '{' ( (lv_assemblyContexts_5_0= ruleAssemblyContext ) ) (otherlv_6= ',' ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) )* otherlv_8= '}' )? + int alt52=2; + int LA52_0 = input.LA(1); + + if ( (LA52_0==45) ) { + alt52=1; + } + switch (alt52) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2024:3: otherlv_3= 'assemblyContexts' otherlv_4= '{' ( (lv_assemblyContexts_5_0= ruleAssemblyContext ) ) (otherlv_6= ',' ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) )* otherlv_8= '}' + { + otherlv_3=(Token)match(input,45,FollowSets000.FOLLOW_45_in_ruleComposedStructureAssembly4369); + + newLeafNode(otherlv_3, grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsKeyword_3_0()); + + otherlv_4=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleComposedStructureAssembly4381); + + newLeafNode(otherlv_4, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_3_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2032:1: ( (lv_assemblyContexts_5_0= ruleAssemblyContext ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2033:1: (lv_assemblyContexts_5_0= ruleAssemblyContext ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2033:1: (lv_assemblyContexts_5_0= ruleAssemblyContext ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2034:3: lv_assemblyContexts_5_0= ruleAssemblyContext + { + + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsAssemblyContextParserRuleCall_3_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleAssemblyContext_in_ruleComposedStructureAssembly4402); + lv_assemblyContexts_5_0=ruleAssemblyContext(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + current, + "assemblyContexts", + lv_assemblyContexts_5_0, + "AssemblyContext"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2050:2: (otherlv_6= ',' ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) )* + loop51: + do { + int alt51=2; + int LA51_0 = input.LA(1); + + if ( (LA51_0==14) ) { + alt51=1; + } + + + switch (alt51) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2050:4: otherlv_6= ',' ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) + { + otherlv_6=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleComposedStructureAssembly4415); + + newLeafNode(otherlv_6, grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_3_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2054:1: ( (lv_assemblyContexts_7_0= ruleAssemblyContext ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2055:1: (lv_assemblyContexts_7_0= ruleAssemblyContext ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2055:1: (lv_assemblyContexts_7_0= ruleAssemblyContext ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2056:3: lv_assemblyContexts_7_0= ruleAssemblyContext + { + + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getAssemblyContextsAssemblyContextParserRuleCall_3_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleAssemblyContext_in_ruleComposedStructureAssembly4436); + lv_assemblyContexts_7_0=ruleAssemblyContext(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + current, + "assemblyContexts", + lv_assemblyContexts_7_0, + "AssemblyContext"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop51; + } + } while (true); + + otherlv_8=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleComposedStructureAssembly4450); + + newLeafNode(otherlv_8, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_3_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2076:3: (otherlv_9= 'assemblyConnectors' otherlv_10= '{' ( (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) ) (otherlv_12= ',' ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) )* otherlv_14= '}' )? + int alt54=2; + int LA54_0 = input.LA(1); + + if ( (LA54_0==46) ) { + alt54=1; + } + switch (alt54) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2076:5: otherlv_9= 'assemblyConnectors' otherlv_10= '{' ( (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) ) (otherlv_12= ',' ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) )* otherlv_14= '}' + { + otherlv_9=(Token)match(input,46,FollowSets000.FOLLOW_46_in_ruleComposedStructureAssembly4465); + + newLeafNode(otherlv_9, grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsKeyword_4_0()); + + otherlv_10=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleComposedStructureAssembly4477); + + newLeafNode(otherlv_10, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_4_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2084:1: ( (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2085:1: (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2085:1: (lv_assemblyConnectors_11_0= ruleAssemblyConnector ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2086:3: lv_assemblyConnectors_11_0= ruleAssemblyConnector + { + + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsAssemblyConnectorParserRuleCall_4_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleAssemblyConnector_in_ruleComposedStructureAssembly4498); + lv_assemblyConnectors_11_0=ruleAssemblyConnector(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + current, + "assemblyConnectors", + lv_assemblyConnectors_11_0, + "AssemblyConnector"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2102:2: (otherlv_12= ',' ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) )* + loop53: + do { + int alt53=2; + int LA53_0 = input.LA(1); + + if ( (LA53_0==14) ) { + alt53=1; + } + + + switch (alt53) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2102:4: otherlv_12= ',' ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) + { + otherlv_12=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleComposedStructureAssembly4511); + + newLeafNode(otherlv_12, grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_4_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2106:1: ( (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2107:1: (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2107:1: (lv_assemblyConnectors_13_0= ruleAssemblyConnector ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2108:3: lv_assemblyConnectors_13_0= ruleAssemblyConnector + { + + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getAssemblyConnectorsAssemblyConnectorParserRuleCall_4_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleAssemblyConnector_in_ruleComposedStructureAssembly4532); + lv_assemblyConnectors_13_0=ruleAssemblyConnector(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + current, + "assemblyConnectors", + lv_assemblyConnectors_13_0, + "AssemblyConnector"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop53; + } + } while (true); + + otherlv_14=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleComposedStructureAssembly4546); + + newLeafNode(otherlv_14, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_4_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2128:3: (otherlv_15= 'providedDelegationConnectors' otherlv_16= '{' ( (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) ) (otherlv_18= ',' ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) )* otherlv_20= '}' )? + int alt56=2; + int LA56_0 = input.LA(1); + + if ( (LA56_0==47) ) { + alt56=1; + } + switch (alt56) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2128:5: otherlv_15= 'providedDelegationConnectors' otherlv_16= '{' ( (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) ) (otherlv_18= ',' ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) )* otherlv_20= '}' + { + otherlv_15=(Token)match(input,47,FollowSets000.FOLLOW_47_in_ruleComposedStructureAssembly4561); + + newLeafNode(otherlv_15, grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsKeyword_5_0()); + + otherlv_16=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleComposedStructureAssembly4573); + + newLeafNode(otherlv_16, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_5_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2136:1: ( (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2137:1: (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2137:1: (lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2138:3: lv_providedDelegationConnectors_17_0= ruleProvidedDelegationConnector + { + + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedDelegationConnector_in_ruleComposedStructureAssembly4594); + lv_providedDelegationConnectors_17_0=ruleProvidedDelegationConnector(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + current, + "providedDelegationConnectors", + lv_providedDelegationConnectors_17_0, + "ProvidedDelegationConnector"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2154:2: (otherlv_18= ',' ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) )* + loop55: + do { + int alt55=2; + int LA55_0 = input.LA(1); + + if ( (LA55_0==14) ) { + alt55=1; + } + + + switch (alt55) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2154:4: otherlv_18= ',' ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) + { + otherlv_18=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleComposedStructureAssembly4607); + + newLeafNode(otherlv_18, grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_5_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2158:1: ( (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2159:1: (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2159:1: (lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2160:3: lv_providedDelegationConnectors_19_0= ruleProvidedDelegationConnector + { + + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleProvidedDelegationConnector_in_ruleComposedStructureAssembly4628); + lv_providedDelegationConnectors_19_0=ruleProvidedDelegationConnector(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + current, + "providedDelegationConnectors", + lv_providedDelegationConnectors_19_0, + "ProvidedDelegationConnector"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop55; + } + } while (true); + + otherlv_20=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleComposedStructureAssembly4642); + + newLeafNode(otherlv_20, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_5_4()); + + + } + break; + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2180:3: (otherlv_21= 'requiredDelegationConnectors' otherlv_22= '{' ( (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) ) (otherlv_24= ',' ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) )* otherlv_26= '}' )? + int alt58=2; + int LA58_0 = input.LA(1); + + if ( (LA58_0==48) ) { + alt58=1; + } + switch (alt58) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2180:5: otherlv_21= 'requiredDelegationConnectors' otherlv_22= '{' ( (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) ) (otherlv_24= ',' ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) )* otherlv_26= '}' + { + otherlv_21=(Token)match(input,48,FollowSets000.FOLLOW_48_in_ruleComposedStructureAssembly4657); + + newLeafNode(otherlv_21, grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsKeyword_6_0()); + + otherlv_22=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleComposedStructureAssembly4669); + + newLeafNode(otherlv_22, grammarAccess.getComposedStructureAssemblyAccess().getLeftCurlyBracketKeyword_6_1()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2188:1: ( (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2189:1: (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2189:1: (lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2190:3: lv_requiredDelegationConnectors_23_0= ruleRequiredDelegationConnector + { + + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_2_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredDelegationConnector_in_ruleComposedStructureAssembly4690); + lv_requiredDelegationConnectors_23_0=ruleRequiredDelegationConnector(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + current, + "requiredDelegationConnectors", + lv_requiredDelegationConnectors_23_0, + "RequiredDelegationConnector"); + afterParserOrEnumRuleCall(); + + + } + + + } + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2206:2: (otherlv_24= ',' ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) )* + loop57: + do { + int alt57=2; + int LA57_0 = input.LA(1); + + if ( (LA57_0==14) ) { + alt57=1; + } + + + switch (alt57) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2206:4: otherlv_24= ',' ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) + { + otherlv_24=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleComposedStructureAssembly4703); + + newLeafNode(otherlv_24, grammarAccess.getComposedStructureAssemblyAccess().getCommaKeyword_6_3_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2210:1: ( (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2211:1: (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2211:1: (lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2212:3: lv_requiredDelegationConnectors_25_0= ruleRequiredDelegationConnector + { + + newCompositeNode(grammarAccess.getComposedStructureAssemblyAccess().getRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_3_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleRequiredDelegationConnector_in_ruleComposedStructureAssembly4724); + lv_requiredDelegationConnectors_25_0=ruleRequiredDelegationConnector(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComposedStructureAssemblyRule()); + } + add( + current, + "requiredDelegationConnectors", + lv_requiredDelegationConnectors_25_0, + "RequiredDelegationConnector"); + afterParserOrEnumRuleCall(); + + + } + + + } + + + } + break; + + default : + break loop57; + } + } while (true); + + otherlv_26=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleComposedStructureAssembly4738); + + newLeafNode(otherlv_26, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_6_4()); + + + } + break; + + } + + otherlv_27=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleComposedStructureAssembly4752); + + newLeafNode(otherlv_27, grammarAccess.getComposedStructureAssemblyAccess().getRightCurlyBracketKeyword_7()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleComposedStructureAssembly" + + + // $ANTLR start "entryRuleAssemblyContext" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2244:1: entryRuleAssemblyContext returns [EObject current=null] : iv_ruleAssemblyContext= ruleAssemblyContext EOF ; + public final EObject entryRuleAssemblyContext() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAssemblyContext = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2245:2: (iv_ruleAssemblyContext= ruleAssemblyContext EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2246:2: iv_ruleAssemblyContext= ruleAssemblyContext EOF + { + newCompositeNode(grammarAccess.getAssemblyContextRule()); + pushFollow(FollowSets000.FOLLOW_ruleAssemblyContext_in_entryRuleAssemblyContext4788); + iv_ruleAssemblyContext=ruleAssemblyContext(); + + state._fsp--; + + current =iv_ruleAssemblyContext; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAssemblyContext4798); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAssemblyContext" + + + // $ANTLR start "ruleAssemblyContext" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2253:1: ruleAssemblyContext returns [EObject current=null] : (otherlv_0= 'AssemblyContext' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'encapsulatedComponent' ( ( ruleEString ) ) otherlv_5= '}' ) ; + public final EObject ruleAssemblyContext() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_5=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2256:28: ( (otherlv_0= 'AssemblyContext' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'encapsulatedComponent' ( ( ruleEString ) ) otherlv_5= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2257:1: (otherlv_0= 'AssemblyContext' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'encapsulatedComponent' ( ( ruleEString ) ) otherlv_5= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2257:1: (otherlv_0= 'AssemblyContext' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'encapsulatedComponent' ( ( ruleEString ) ) otherlv_5= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2257:3: otherlv_0= 'AssemblyContext' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'encapsulatedComponent' ( ( ruleEString ) ) otherlv_5= '}' + { + otherlv_0=(Token)match(input,49,FollowSets000.FOLLOW_49_in_ruleAssemblyContext4835); + + newLeafNode(otherlv_0, grammarAccess.getAssemblyContextAccess().getAssemblyContextKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2261:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2262:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2262:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2263:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getAssemblyContextAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAssemblyContext4856); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAssemblyContextRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleAssemblyContext4868); + + newLeafNode(otherlv_2, grammarAccess.getAssemblyContextAccess().getLeftCurlyBracketKeyword_2()); + + otherlv_3=(Token)match(input,50,FollowSets000.FOLLOW_50_in_ruleAssemblyContext4880); + + newLeafNode(otherlv_3, grammarAccess.getAssemblyContextAccess().getEncapsulatedComponentKeyword_3()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2287:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2288:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2288:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2289:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getAssemblyContextRule()); + } + + + newCompositeNode(grammarAccess.getAssemblyContextAccess().getEncapsulatedComponentRepositoryComponentCrossReference_4_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAssemblyContext4903); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_5=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleAssemblyContext4915); + + newLeafNode(otherlv_5, grammarAccess.getAssemblyContextAccess().getRightCurlyBracketKeyword_5()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAssemblyContext" + + + // $ANTLR start "entryRuleAssemblyConnector" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2314:1: entryRuleAssemblyConnector returns [EObject current=null] : iv_ruleAssemblyConnector= ruleAssemblyConnector EOF ; + public final EObject entryRuleAssemblyConnector() throws RecognitionException { + EObject current = null; + + EObject iv_ruleAssemblyConnector = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2315:2: (iv_ruleAssemblyConnector= ruleAssemblyConnector EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2316:2: iv_ruleAssemblyConnector= ruleAssemblyConnector EOF + { + newCompositeNode(grammarAccess.getAssemblyConnectorRule()); + pushFollow(FollowSets000.FOLLOW_ruleAssemblyConnector_in_entryRuleAssemblyConnector4951); + iv_ruleAssemblyConnector=ruleAssemblyConnector(); + + state._fsp--; + + current =iv_ruleAssemblyConnector; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAssemblyConnector4961); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleAssemblyConnector" + + + // $ANTLR start "ruleAssemblyConnector" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2323:1: ruleAssemblyConnector returns [EObject current=null] : (otherlv_0= 'AssemblyConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'requiredRole' ( ( ruleEString ) ) otherlv_5= 'providedRole' ( ( ruleEString ) ) otherlv_7= 'providingAssemblyContext' ( ( ruleEString ) ) otherlv_9= 'requiringAssemblyContext' ( ( ruleEString ) ) otherlv_11= '}' ) ; + public final EObject ruleAssemblyConnector() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token otherlv_11=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2326:28: ( (otherlv_0= 'AssemblyConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'requiredRole' ( ( ruleEString ) ) otherlv_5= 'providedRole' ( ( ruleEString ) ) otherlv_7= 'providingAssemblyContext' ( ( ruleEString ) ) otherlv_9= 'requiringAssemblyContext' ( ( ruleEString ) ) otherlv_11= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2327:1: (otherlv_0= 'AssemblyConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'requiredRole' ( ( ruleEString ) ) otherlv_5= 'providedRole' ( ( ruleEString ) ) otherlv_7= 'providingAssemblyContext' ( ( ruleEString ) ) otherlv_9= 'requiringAssemblyContext' ( ( ruleEString ) ) otherlv_11= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2327:1: (otherlv_0= 'AssemblyConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'requiredRole' ( ( ruleEString ) ) otherlv_5= 'providedRole' ( ( ruleEString ) ) otherlv_7= 'providingAssemblyContext' ( ( ruleEString ) ) otherlv_9= 'requiringAssemblyContext' ( ( ruleEString ) ) otherlv_11= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2327:3: otherlv_0= 'AssemblyConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'requiredRole' ( ( ruleEString ) ) otherlv_5= 'providedRole' ( ( ruleEString ) ) otherlv_7= 'providingAssemblyContext' ( ( ruleEString ) ) otherlv_9= 'requiringAssemblyContext' ( ( ruleEString ) ) otherlv_11= '}' + { + otherlv_0=(Token)match(input,51,FollowSets000.FOLLOW_51_in_ruleAssemblyConnector4998); + + newLeafNode(otherlv_0, grammarAccess.getAssemblyConnectorAccess().getAssemblyConnectorKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2331:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2332:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2332:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2333:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAssemblyConnector5019); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAssemblyConnectorRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleAssemblyConnector5031); + + newLeafNode(otherlv_2, grammarAccess.getAssemblyConnectorAccess().getLeftCurlyBracketKeyword_2()); + + otherlv_3=(Token)match(input,52,FollowSets000.FOLLOW_52_in_ruleAssemblyConnector5043); + + newLeafNode(otherlv_3, grammarAccess.getAssemblyConnectorAccess().getRequiredRoleKeyword_3()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2357:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2358:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2358:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2359:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getAssemblyConnectorRule()); + } + + + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getRequiredRoleRequiredRoleCrossReference_4_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAssemblyConnector5066); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_5=(Token)match(input,53,FollowSets000.FOLLOW_53_in_ruleAssemblyConnector5078); + + newLeafNode(otherlv_5, grammarAccess.getAssemblyConnectorAccess().getProvidedRoleKeyword_5()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2376:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2377:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2377:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2378:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getAssemblyConnectorRule()); + } + + + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getProvidedRoleProvidedRoleCrossReference_6_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAssemblyConnector5101); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_7=(Token)match(input,54,FollowSets000.FOLLOW_54_in_ruleAssemblyConnector5113); + + newLeafNode(otherlv_7, grammarAccess.getAssemblyConnectorAccess().getProvidingAssemblyContextKeyword_7()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2395:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2396:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2396:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2397:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getAssemblyConnectorRule()); + } + + + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getProvidingAssemblyContextAssemblyContextCrossReference_8_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAssemblyConnector5136); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_9=(Token)match(input,55,FollowSets000.FOLLOW_55_in_ruleAssemblyConnector5148); + + newLeafNode(otherlv_9, grammarAccess.getAssemblyConnectorAccess().getRequiringAssemblyContextKeyword_9()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2414:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2415:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2415:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2416:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getAssemblyConnectorRule()); + } + + + newCompositeNode(grammarAccess.getAssemblyConnectorAccess().getRequiringAssemblyContextAssemblyContextCrossReference_10_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAssemblyConnector5171); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_11=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleAssemblyConnector5183); + + newLeafNode(otherlv_11, grammarAccess.getAssemblyConnectorAccess().getRightCurlyBracketKeyword_11()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleAssemblyConnector" + + + // $ANTLR start "entryRuleProvidedDelegationConnector" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2441:1: entryRuleProvidedDelegationConnector returns [EObject current=null] : iv_ruleProvidedDelegationConnector= ruleProvidedDelegationConnector EOF ; + public final EObject entryRuleProvidedDelegationConnector() throws RecognitionException { + EObject current = null; + + EObject iv_ruleProvidedDelegationConnector = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2442:2: (iv_ruleProvidedDelegationConnector= ruleProvidedDelegationConnector EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2443:2: iv_ruleProvidedDelegationConnector= ruleProvidedDelegationConnector EOF + { + newCompositeNode(grammarAccess.getProvidedDelegationConnectorRule()); + pushFollow(FollowSets000.FOLLOW_ruleProvidedDelegationConnector_in_entryRuleProvidedDelegationConnector5219); + iv_ruleProvidedDelegationConnector=ruleProvidedDelegationConnector(); + + state._fsp--; + + current =iv_ruleProvidedDelegationConnector; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleProvidedDelegationConnector5229); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleProvidedDelegationConnector" + + + // $ANTLR start "ruleProvidedDelegationConnector" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2450:1: ruleProvidedDelegationConnector returns [EObject current=null] : (otherlv_0= 'ProvidedDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerProvidedRole' ( ( ruleEString ) ) otherlv_7= 'outerProvidedRole' ( ( ruleEString ) ) otherlv_9= '}' ) ; + public final EObject ruleProvidedDelegationConnector() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_9=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2453:28: ( (otherlv_0= 'ProvidedDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerProvidedRole' ( ( ruleEString ) ) otherlv_7= 'outerProvidedRole' ( ( ruleEString ) ) otherlv_9= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2454:1: (otherlv_0= 'ProvidedDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerProvidedRole' ( ( ruleEString ) ) otherlv_7= 'outerProvidedRole' ( ( ruleEString ) ) otherlv_9= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2454:1: (otherlv_0= 'ProvidedDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerProvidedRole' ( ( ruleEString ) ) otherlv_7= 'outerProvidedRole' ( ( ruleEString ) ) otherlv_9= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2454:3: otherlv_0= 'ProvidedDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerProvidedRole' ( ( ruleEString ) ) otherlv_7= 'outerProvidedRole' ( ( ruleEString ) ) otherlv_9= '}' + { + otherlv_0=(Token)match(input,56,FollowSets000.FOLLOW_56_in_ruleProvidedDelegationConnector5266); + + newLeafNode(otherlv_0, grammarAccess.getProvidedDelegationConnectorAccess().getProvidedDelegationConnectorKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2458:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2459:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2459:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2460:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getProvidedDelegationConnectorAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleProvidedDelegationConnector5287); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProvidedDelegationConnectorRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleProvidedDelegationConnector5299); + + newLeafNode(otherlv_2, grammarAccess.getProvidedDelegationConnectorAccess().getLeftCurlyBracketKeyword_2()); + + otherlv_3=(Token)match(input,57,FollowSets000.FOLLOW_57_in_ruleProvidedDelegationConnector5311); + + newLeafNode(otherlv_3, grammarAccess.getProvidedDelegationConnectorAccess().getAssemblyContextKeyword_3()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2484:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2485:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2485:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2486:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getProvidedDelegationConnectorRule()); + } + + + newCompositeNode(grammarAccess.getProvidedDelegationConnectorAccess().getAssemblyContextAssemblyContextCrossReference_4_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleProvidedDelegationConnector5334); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_5=(Token)match(input,58,FollowSets000.FOLLOW_58_in_ruleProvidedDelegationConnector5346); + + newLeafNode(otherlv_5, grammarAccess.getProvidedDelegationConnectorAccess().getInnerProvidedRoleKeyword_5()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2503:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2504:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2504:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2505:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getProvidedDelegationConnectorRule()); + } + + + newCompositeNode(grammarAccess.getProvidedDelegationConnectorAccess().getInnerProvidedRoleProvidedRoleCrossReference_6_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleProvidedDelegationConnector5369); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_7=(Token)match(input,59,FollowSets000.FOLLOW_59_in_ruleProvidedDelegationConnector5381); + + newLeafNode(otherlv_7, grammarAccess.getProvidedDelegationConnectorAccess().getOuterProvidedRoleKeyword_7()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2522:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2523:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2523:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2524:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getProvidedDelegationConnectorRule()); + } + + + newCompositeNode(grammarAccess.getProvidedDelegationConnectorAccess().getOuterProvidedRoleProvidedRoleCrossReference_8_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleProvidedDelegationConnector5404); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_9=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleProvidedDelegationConnector5416); + + newLeafNode(otherlv_9, grammarAccess.getProvidedDelegationConnectorAccess().getRightCurlyBracketKeyword_9()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleProvidedDelegationConnector" + + + // $ANTLR start "entryRuleRequiredDelegationConnector" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2549:1: entryRuleRequiredDelegationConnector returns [EObject current=null] : iv_ruleRequiredDelegationConnector= ruleRequiredDelegationConnector EOF ; + public final EObject entryRuleRequiredDelegationConnector() throws RecognitionException { + EObject current = null; + + EObject iv_ruleRequiredDelegationConnector = null; + + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2550:2: (iv_ruleRequiredDelegationConnector= ruleRequiredDelegationConnector EOF ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2551:2: iv_ruleRequiredDelegationConnector= ruleRequiredDelegationConnector EOF + { + newCompositeNode(grammarAccess.getRequiredDelegationConnectorRule()); + pushFollow(FollowSets000.FOLLOW_ruleRequiredDelegationConnector_in_entryRuleRequiredDelegationConnector5452); + iv_ruleRequiredDelegationConnector=ruleRequiredDelegationConnector(); + + state._fsp--; + + current =iv_ruleRequiredDelegationConnector; + match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleRequiredDelegationConnector5462); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleRequiredDelegationConnector" + + + // $ANTLR start "ruleRequiredDelegationConnector" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2558:1: ruleRequiredDelegationConnector returns [EObject current=null] : (otherlv_0= 'RequiredDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerRequiredRole' ( ( ruleEString ) ) otherlv_7= 'outerRequiredRole' ( ( ruleEString ) ) otherlv_9= '}' ) ; + public final EObject ruleRequiredDelegationConnector() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_9=null; + AntlrDatatypeRuleToken lv_name_1_0 = null; + + + enterRule(); + + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2561:28: ( (otherlv_0= 'RequiredDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerRequiredRole' ( ( ruleEString ) ) otherlv_7= 'outerRequiredRole' ( ( ruleEString ) ) otherlv_9= '}' ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2562:1: (otherlv_0= 'RequiredDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerRequiredRole' ( ( ruleEString ) ) otherlv_7= 'outerRequiredRole' ( ( ruleEString ) ) otherlv_9= '}' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2562:1: (otherlv_0= 'RequiredDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerRequiredRole' ( ( ruleEString ) ) otherlv_7= 'outerRequiredRole' ( ( ruleEString ) ) otherlv_9= '}' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2562:3: otherlv_0= 'RequiredDelegationConnector' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'assemblyContext' ( ( ruleEString ) ) otherlv_5= 'innerRequiredRole' ( ( ruleEString ) ) otherlv_7= 'outerRequiredRole' ( ( ruleEString ) ) otherlv_9= '}' + { + otherlv_0=(Token)match(input,60,FollowSets000.FOLLOW_60_in_ruleRequiredDelegationConnector5499); + + newLeafNode(otherlv_0, grammarAccess.getRequiredDelegationConnectorAccess().getRequiredDelegationConnectorKeyword_0()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2566:1: ( (lv_name_1_0= ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2567:1: (lv_name_1_0= ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2567:1: (lv_name_1_0= ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2568:3: lv_name_1_0= ruleEString + { + + newCompositeNode(grammarAccess.getRequiredDelegationConnectorAccess().getNameEStringParserRuleCall_1_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleRequiredDelegationConnector5520); + lv_name_1_0=ruleEString(); + + state._fsp--; + + + if (current==null) { + current = createModelElementForParent(grammarAccess.getRequiredDelegationConnectorRule()); + } + set( + current, + "name", + lv_name_1_0, + "EString"); + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleRequiredDelegationConnector5532); + + newLeafNode(otherlv_2, grammarAccess.getRequiredDelegationConnectorAccess().getLeftCurlyBracketKeyword_2()); + + otherlv_3=(Token)match(input,57,FollowSets000.FOLLOW_57_in_ruleRequiredDelegationConnector5544); + + newLeafNode(otherlv_3, grammarAccess.getRequiredDelegationConnectorAccess().getAssemblyContextKeyword_3()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2592:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2593:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2593:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2594:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getRequiredDelegationConnectorRule()); + } + + + newCompositeNode(grammarAccess.getRequiredDelegationConnectorAccess().getAssemblyContextAssemblyContextCrossReference_4_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleRequiredDelegationConnector5567); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_5=(Token)match(input,61,FollowSets000.FOLLOW_61_in_ruleRequiredDelegationConnector5579); + + newLeafNode(otherlv_5, grammarAccess.getRequiredDelegationConnectorAccess().getInnerRequiredRoleKeyword_5()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2611:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2612:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2612:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2613:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getRequiredDelegationConnectorRule()); + } + + + newCompositeNode(grammarAccess.getRequiredDelegationConnectorAccess().getInnerRequiredRoleRequiredRoleCrossReference_6_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleRequiredDelegationConnector5602); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_7=(Token)match(input,62,FollowSets000.FOLLOW_62_in_ruleRequiredDelegationConnector5614); + + newLeafNode(otherlv_7, grammarAccess.getRequiredDelegationConnectorAccess().getOuterRequiredRoleKeyword_7()); + + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2630:1: ( ( ruleEString ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2631:1: ( ruleEString ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2631:1: ( ruleEString ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2632:3: ruleEString + { + + if (current==null) { + current = createModelElement(grammarAccess.getRequiredDelegationConnectorRule()); + } + + + newCompositeNode(grammarAccess.getRequiredDelegationConnectorAccess().getOuterRequiredRoleRequiredRoleCrossReference_8_0()); + + pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleRequiredDelegationConnector5637); + ruleEString(); + + state._fsp--; + + + afterParserOrEnumRuleCall(); + + + } + + + } + + otherlv_9=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleRequiredDelegationConnector5649); + + newLeafNode(otherlv_9, grammarAccess.getRequiredDelegationConnectorAccess().getRightCurlyBracketKeyword_9()); + + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleRequiredDelegationConnector" + + + // $ANTLR start "rulePrimitiveTypeEnum" + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2657:1: rulePrimitiveTypeEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'INT' ) | (enumLiteral_1= 'STRING' ) | (enumLiteral_2= 'BOOL' ) | (enumLiteral_3= 'DOUBLE' ) | (enumLiteral_4= 'CHAR' ) | (enumLiteral_5= 'BYTE' ) | (enumLiteral_6= 'LONG' ) ) ; + public final Enumerator rulePrimitiveTypeEnum() throws RecognitionException { + Enumerator current = null; + + Token enumLiteral_0=null; + Token enumLiteral_1=null; + Token enumLiteral_2=null; + Token enumLiteral_3=null; + Token enumLiteral_4=null; + Token enumLiteral_5=null; + Token enumLiteral_6=null; + + enterRule(); + try { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2659:28: ( ( (enumLiteral_0= 'INT' ) | (enumLiteral_1= 'STRING' ) | (enumLiteral_2= 'BOOL' ) | (enumLiteral_3= 'DOUBLE' ) | (enumLiteral_4= 'CHAR' ) | (enumLiteral_5= 'BYTE' ) | (enumLiteral_6= 'LONG' ) ) ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2660:1: ( (enumLiteral_0= 'INT' ) | (enumLiteral_1= 'STRING' ) | (enumLiteral_2= 'BOOL' ) | (enumLiteral_3= 'DOUBLE' ) | (enumLiteral_4= 'CHAR' ) | (enumLiteral_5= 'BYTE' ) | (enumLiteral_6= 'LONG' ) ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2660:1: ( (enumLiteral_0= 'INT' ) | (enumLiteral_1= 'STRING' ) | (enumLiteral_2= 'BOOL' ) | (enumLiteral_3= 'DOUBLE' ) | (enumLiteral_4= 'CHAR' ) | (enumLiteral_5= 'BYTE' ) | (enumLiteral_6= 'LONG' ) ) + int alt59=7; + switch ( input.LA(1) ) { + case 63: + { + alt59=1; + } + break; + case 64: + { + alt59=2; + } + break; + case 65: + { + alt59=3; + } + break; + case 66: + { + alt59=4; + } + break; + case 67: + { + alt59=5; + } + break; + case 68: + { + alt59=6; + } + break; + case 69: + { + alt59=7; + } + break; + default: + NoViableAltException nvae = + new NoViableAltException("", 59, 0, input); + + throw nvae; + } + + switch (alt59) { + case 1 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2660:2: (enumLiteral_0= 'INT' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2660:2: (enumLiteral_0= 'INT' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2660:4: enumLiteral_0= 'INT' + { + enumLiteral_0=(Token)match(input,63,FollowSets000.FOLLOW_63_in_rulePrimitiveTypeEnum5699); + + current = grammarAccess.getPrimitiveTypeEnumAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getPrimitiveTypeEnumAccess().getINTEnumLiteralDeclaration_0()); + + + } + + + } + break; + case 2 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2666:6: (enumLiteral_1= 'STRING' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2666:6: (enumLiteral_1= 'STRING' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2666:8: enumLiteral_1= 'STRING' + { + enumLiteral_1=(Token)match(input,64,FollowSets000.FOLLOW_64_in_rulePrimitiveTypeEnum5716); + + current = grammarAccess.getPrimitiveTypeEnumAccess().getSTRINGEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getPrimitiveTypeEnumAccess().getSTRINGEnumLiteralDeclaration_1()); + + + } + + + } + break; + case 3 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2672:6: (enumLiteral_2= 'BOOL' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2672:6: (enumLiteral_2= 'BOOL' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2672:8: enumLiteral_2= 'BOOL' + { + enumLiteral_2=(Token)match(input,65,FollowSets000.FOLLOW_65_in_rulePrimitiveTypeEnum5733); + + current = grammarAccess.getPrimitiveTypeEnumAccess().getBOOLEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getPrimitiveTypeEnumAccess().getBOOLEnumLiteralDeclaration_2()); + + + } + + + } + break; + case 4 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2678:6: (enumLiteral_3= 'DOUBLE' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2678:6: (enumLiteral_3= 'DOUBLE' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2678:8: enumLiteral_3= 'DOUBLE' + { + enumLiteral_3=(Token)match(input,66,FollowSets000.FOLLOW_66_in_rulePrimitiveTypeEnum5750); + + current = grammarAccess.getPrimitiveTypeEnumAccess().getDOUBLEEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getPrimitiveTypeEnumAccess().getDOUBLEEnumLiteralDeclaration_3()); + + + } + + + } + break; + case 5 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2684:6: (enumLiteral_4= 'CHAR' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2684:6: (enumLiteral_4= 'CHAR' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2684:8: enumLiteral_4= 'CHAR' + { + enumLiteral_4=(Token)match(input,67,FollowSets000.FOLLOW_67_in_rulePrimitiveTypeEnum5767); + + current = grammarAccess.getPrimitiveTypeEnumAccess().getCHAREnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getPrimitiveTypeEnumAccess().getCHAREnumLiteralDeclaration_4()); + + + } + + + } + break; + case 6 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2690:6: (enumLiteral_5= 'BYTE' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2690:6: (enumLiteral_5= 'BYTE' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2690:8: enumLiteral_5= 'BYTE' + { + enumLiteral_5=(Token)match(input,68,FollowSets000.FOLLOW_68_in_rulePrimitiveTypeEnum5784); + + current = grammarAccess.getPrimitiveTypeEnumAccess().getBYTEEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getPrimitiveTypeEnumAccess().getBYTEEnumLiteralDeclaration_5()); + + + } + + + } + break; + case 7 : + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2696:6: (enumLiteral_6= 'LONG' ) + { + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2696:6: (enumLiteral_6= 'LONG' ) + // ../org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDslTest.g:2696:8: enumLiteral_6= 'LONG' + { + enumLiteral_6=(Token)match(input,69,FollowSets000.FOLLOW_69_in_rulePrimitiveTypeEnum5801); + + current = grammarAccess.getPrimitiveTypeEnumAccess().getLONGEnumLiteralDeclaration_6().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_6, grammarAccess.getPrimitiveTypeEnumAccess().getLONGEnumLiteralDeclaration_6()); + + + } + + + } + break; + + } + + + } + + leaveRule(); + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "rulePrimitiveTypeEnum" + + // Delegated rules + + + + + + private static class FollowSets000 { + public static final BitSet FOLLOW_ruleRepository_in_entryRuleRepository75 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleRepository85 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_11_in_ruleRepository122 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleRepository143 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleRepository155 = new BitSet(new long[]{0x000000000003A000L}); + public static final BitSet FOLLOW_13_in_ruleRepository168 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleRepository180 = new BitSet(new long[]{0x0000000128000000L}); + public static final BitSet FOLLOW_ruleDataType_in_ruleRepository201 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleRepository214 = new BitSet(new long[]{0x0000000128000000L}); + public static final BitSet FOLLOW_ruleDataType_in_ruleRepository235 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleRepository249 = new BitSet(new long[]{0x0000000000038000L}); + public static final BitSet FOLLOW_16_in_ruleRepository264 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleRepository276 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_ruleInterface_in_ruleRepository297 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleRepository310 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_ruleInterface_in_ruleRepository331 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleRepository345 = new BitSet(new long[]{0x0000000000028000L}); + public static final BitSet FOLLOW_17_in_ruleRepository360 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleRepository372 = new BitSet(new long[]{0x00000B0000800000L}); + public static final BitSet FOLLOW_ruleRepositoryComponent_in_ruleRepository393 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleRepository406 = new BitSet(new long[]{0x00000B0000800000L}); + public static final BitSet FOLLOW_ruleRepositoryComponent_in_ruleRepository427 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleRepository441 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleRepository455 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleDataType_in_entryRuleDataType491 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleDataType501 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCollectionDataType_in_ruleDataType548 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCompositeDataType_in_ruleDataType575 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rulePrimitiveDataType_in_ruleDataType602 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleRepositoryComponent_in_entryRuleRepositoryComponent637 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleRepositoryComponent647 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleRepositoryComponent_Impl_in_ruleRepositoryComponent694 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleBasicComponent_in_ruleRepositoryComponent721 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCompositeComponent_in_ruleRepositoryComponent748 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleSubSystem_in_ruleRepositoryComponent775 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleEString_in_entryRuleEString811 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleEString822 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_STRING_in_ruleEString862 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleEString888 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleInterface_in_entryRuleInterface933 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleInterface943 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_18_in_ruleInterface980 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleInterface1001 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleInterface1013 = new BitSet(new long[]{0x0000000000488000L}); + public static final BitSet FOLLOW_19_in_ruleInterface1026 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_ruleInterface1038 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleInterface1061 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_14_in_ruleInterface1074 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleInterface1097 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_21_in_ruleInterface1111 = new BitSet(new long[]{0x0000000000408000L}); + public static final BitSet FOLLOW_22_in_ruleInterface1126 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleInterface1138 = new BitSet(new long[]{0x0000002000000030L}); + public static final BitSet FOLLOW_ruleSignature_in_ruleInterface1159 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleInterface1172 = new BitSet(new long[]{0x0000002000000030L}); + public static final BitSet FOLLOW_ruleSignature_in_ruleInterface1193 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleInterface1207 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleInterface1221 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleRepositoryComponent_Impl_in_entryRuleRepositoryComponent_Impl1257 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleRepositoryComponent_Impl1267 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_23_in_ruleRepositoryComponent_Impl1304 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleRepositoryComponent_Impl1325 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleRepositoryComponent_Impl1337 = new BitSet(new long[]{0x0000000007008000L}); + public static final BitSet FOLLOW_24_in_ruleRepositoryComponent_Impl1350 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_ruleRepositoryComponent_Impl1362 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleRepositoryComponent_Impl1385 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_14_in_ruleRepositoryComponent_Impl1398 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleRepositoryComponent_Impl1421 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_21_in_ruleRepositoryComponent_Impl1435 = new BitSet(new long[]{0x0000000006008000L}); + public static final BitSet FOLLOW_25_in_ruleRepositoryComponent_Impl1450 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleRepositoryComponent_Impl1462 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_ruleProvidedRole_in_ruleRepositoryComponent_Impl1483 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleRepositoryComponent_Impl1496 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_ruleProvidedRole_in_ruleRepositoryComponent_Impl1517 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleRepositoryComponent_Impl1531 = new BitSet(new long[]{0x0000000004008000L}); + public static final BitSet FOLLOW_26_in_ruleRepositoryComponent_Impl1546 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleRepositoryComponent_Impl1558 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_ruleRequiredRole_in_ruleRepositoryComponent_Impl1579 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleRepositoryComponent_Impl1592 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_ruleRequiredRole_in_ruleRepositoryComponent_Impl1613 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleRepositoryComponent_Impl1627 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleRepositoryComponent_Impl1641 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCollectionDataType_in_entryRuleCollectionDataType1677 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleCollectionDataType1687 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_27_in_ruleCollectionDataType1724 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleCollectionDataType1745 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleCollectionDataType1757 = new BitSet(new long[]{0x0000000010000000L}); + public static final BitSet FOLLOW_28_in_ruleCollectionDataType1769 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleCollectionDataType1792 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleCollectionDataType1804 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCompositeDataType_in_entryRuleCompositeDataType1840 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleCompositeDataType1850 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_29_in_ruleCompositeDataType1887 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleCompositeDataType1908 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleCompositeDataType1920 = new BitSet(new long[]{0x00000000C0008000L}); + public static final BitSet FOLLOW_30_in_ruleCompositeDataType1933 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_ruleCompositeDataType1945 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleCompositeDataType1968 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_14_in_ruleCompositeDataType1981 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleCompositeDataType2004 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_21_in_ruleCompositeDataType2018 = new BitSet(new long[]{0x0000000080008000L}); + public static final BitSet FOLLOW_31_in_ruleCompositeDataType2033 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleCompositeDataType2045 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_ruleInnerDeclaration_in_ruleCompositeDataType2066 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleCompositeDataType2079 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_ruleInnerDeclaration_in_ruleCompositeDataType2100 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleCompositeDataType2114 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleCompositeDataType2128 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rulePrimitiveDataType_in_entryRulePrimitiveDataType2164 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRulePrimitiveDataType2174 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_32_in_rulePrimitiveDataType2211 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_rulePrimitiveDataType2223 = new BitSet(new long[]{0x0000000200000000L}); + public static final BitSet FOLLOW_33_in_rulePrimitiveDataType2235 = new BitSet(new long[]{0x8000000000000000L,0x000000000000003FL}); + public static final BitSet FOLLOW_rulePrimitiveTypeEnum_in_rulePrimitiveDataType2256 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_34_in_rulePrimitiveDataType2268 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_rulePrimitiveDataType2289 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_rulePrimitiveDataType2301 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleInnerDeclaration_in_entryRuleInnerDeclaration2337 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleInnerDeclaration2347 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_35_in_ruleInnerDeclaration2384 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleInnerDeclaration2405 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleInnerDeclaration2417 = new BitSet(new long[]{0x0000001000000000L}); + public static final BitSet FOLLOW_36_in_ruleInnerDeclaration2429 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleInnerDeclaration2452 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleInnerDeclaration2464 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleSignature_in_entryRuleSignature2500 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleSignature2510 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleEString_in_ruleSignature2559 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_37_in_ruleSignature2577 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleSignature2599 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_ruleSignature2611 = new BitSet(new long[]{0x0000000000200030L}); + public static final BitSet FOLLOW_ruleParameter_in_ruleSignature2633 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_14_in_ruleSignature2646 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleParameter_in_ruleSignature2667 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_21_in_ruleSignature2683 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleParameter_in_entryRuleParameter2719 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleParameter2729 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleEString_in_ruleParameter2777 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleParameter2798 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleProvidedRole_in_entryRuleProvidedRole2834 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleProvidedRole2844 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_38_in_ruleProvidedRole2890 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_ruleEString_in_ruleProvidedRole2914 = new BitSet(new long[]{0x0000000000004032L}); + public static final BitSet FOLLOW_14_in_ruleProvidedRole2927 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_ruleRequiredRole_in_entryRuleRequiredRole2967 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleRequiredRole2977 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_39_in_ruleRequiredRole3023 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_ruleEString_in_ruleRequiredRole3047 = new BitSet(new long[]{0x0000000000004032L}); + public static final BitSet FOLLOW_14_in_ruleRequiredRole3060 = new BitSet(new long[]{0x0000000000000032L}); + public static final BitSet FOLLOW_ruleBasicComponent_in_entryRuleBasicComponent3100 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleBasicComponent3110 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_40_in_ruleBasicComponent3147 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleBasicComponent3168 = new BitSet(new long[]{0x000000C000001000L}); + public static final BitSet FOLLOW_ruleProvidedRole_in_ruleBasicComponent3190 = new BitSet(new long[]{0x0000008000005000L}); + public static final BitSet FOLLOW_14_in_ruleBasicComponent3203 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_ruleProvidedRole_in_ruleBasicComponent3224 = new BitSet(new long[]{0x0000008000005000L}); + public static final BitSet FOLLOW_ruleRequiredRole_in_ruleBasicComponent3250 = new BitSet(new long[]{0x0000000000005000L}); + public static final BitSet FOLLOW_14_in_ruleBasicComponent3263 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_ruleRequiredRole_in_ruleBasicComponent3284 = new BitSet(new long[]{0x0000000000005000L}); + public static final BitSet FOLLOW_12_in_ruleBasicComponent3300 = new BitSet(new long[]{0x0000000001008000L}); + public static final BitSet FOLLOW_24_in_ruleBasicComponent3313 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_ruleBasicComponent3325 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleBasicComponent3348 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_14_in_ruleBasicComponent3361 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleBasicComponent3384 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_21_in_ruleBasicComponent3398 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleBasicComponent3412 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCompositeComponent_in_entryRuleCompositeComponent3448 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleCompositeComponent3458 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_41_in_ruleCompositeComponent3495 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleCompositeComponent3516 = new BitSet(new long[]{0x000000C000001000L}); + public static final BitSet FOLLOW_ruleProvidedRole_in_ruleCompositeComponent3538 = new BitSet(new long[]{0x0000008000005000L}); + public static final BitSet FOLLOW_14_in_ruleCompositeComponent3551 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_ruleProvidedRole_in_ruleCompositeComponent3572 = new BitSet(new long[]{0x0000008000005000L}); + public static final BitSet FOLLOW_ruleRequiredRole_in_ruleCompositeComponent3598 = new BitSet(new long[]{0x0000000000005000L}); + public static final BitSet FOLLOW_14_in_ruleCompositeComponent3611 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_ruleRequiredRole_in_ruleCompositeComponent3632 = new BitSet(new long[]{0x0000000000005000L}); + public static final BitSet FOLLOW_12_in_ruleCompositeComponent3648 = new BitSet(new long[]{0x0000040001008000L}); + public static final BitSet FOLLOW_24_in_ruleCompositeComponent3661 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_ruleCompositeComponent3673 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleCompositeComponent3696 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_14_in_ruleCompositeComponent3709 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleCompositeComponent3732 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_21_in_ruleCompositeComponent3746 = new BitSet(new long[]{0x0000040000008000L}); + public static final BitSet FOLLOW_42_in_ruleCompositeComponent3761 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_ruleComposedStructureAssembly_in_ruleCompositeComponent3782 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleCompositeComponent3796 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleSubSystem_in_entryRuleSubSystem3832 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleSubSystem3842 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_43_in_ruleSubSystem3879 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleSubSystem3900 = new BitSet(new long[]{0x0000000006001000L}); + public static final BitSet FOLLOW_25_in_ruleSubSystem3913 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleSubSystem3925 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_ruleProvidedRole_in_ruleSubSystem3946 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleSubSystem3959 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_ruleProvidedRole_in_ruleSubSystem3980 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleSubSystem3994 = new BitSet(new long[]{0x0000000004001000L}); + public static final BitSet FOLLOW_26_in_ruleSubSystem4009 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleSubSystem4021 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_ruleRequiredRole_in_ruleSubSystem4042 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleSubSystem4055 = new BitSet(new long[]{0x0000008000000000L}); + public static final BitSet FOLLOW_ruleRequiredRole_in_ruleSubSystem4076 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleSubSystem4090 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleSubSystem4104 = new BitSet(new long[]{0x0000040001008000L}); + public static final BitSet FOLLOW_24_in_ruleSubSystem4117 = new BitSet(new long[]{0x0000000000100000L}); + public static final BitSet FOLLOW_20_in_ruleSubSystem4129 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleSubSystem4152 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_14_in_ruleSubSystem4165 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleSubSystem4188 = new BitSet(new long[]{0x0000000000204000L}); + public static final BitSet FOLLOW_21_in_ruleSubSystem4202 = new BitSet(new long[]{0x0000040000008000L}); + public static final BitSet FOLLOW_42_in_ruleSubSystem4217 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_ruleComposedStructureAssembly_in_ruleSubSystem4238 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleSubSystem4252 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleComposedStructureAssembly_in_entryRuleComposedStructureAssembly4288 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleComposedStructureAssembly4298 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_44_in_ruleComposedStructureAssembly4344 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleComposedStructureAssembly4356 = new BitSet(new long[]{0x0001E00000008000L}); + public static final BitSet FOLLOW_45_in_ruleComposedStructureAssembly4369 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleComposedStructureAssembly4381 = new BitSet(new long[]{0x0002000000000000L}); + public static final BitSet FOLLOW_ruleAssemblyContext_in_ruleComposedStructureAssembly4402 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleComposedStructureAssembly4415 = new BitSet(new long[]{0x0002000000000000L}); + public static final BitSet FOLLOW_ruleAssemblyContext_in_ruleComposedStructureAssembly4436 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleComposedStructureAssembly4450 = new BitSet(new long[]{0x0001C00000008000L}); + public static final BitSet FOLLOW_46_in_ruleComposedStructureAssembly4465 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleComposedStructureAssembly4477 = new BitSet(new long[]{0x0008000000000000L}); + public static final BitSet FOLLOW_ruleAssemblyConnector_in_ruleComposedStructureAssembly4498 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleComposedStructureAssembly4511 = new BitSet(new long[]{0x0008000000000000L}); + public static final BitSet FOLLOW_ruleAssemblyConnector_in_ruleComposedStructureAssembly4532 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleComposedStructureAssembly4546 = new BitSet(new long[]{0x0001800000008000L}); + public static final BitSet FOLLOW_47_in_ruleComposedStructureAssembly4561 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleComposedStructureAssembly4573 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_ruleProvidedDelegationConnector_in_ruleComposedStructureAssembly4594 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleComposedStructureAssembly4607 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_ruleProvidedDelegationConnector_in_ruleComposedStructureAssembly4628 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleComposedStructureAssembly4642 = new BitSet(new long[]{0x0001000000008000L}); + public static final BitSet FOLLOW_48_in_ruleComposedStructureAssembly4657 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleComposedStructureAssembly4669 = new BitSet(new long[]{0x1000000000000000L}); + public static final BitSet FOLLOW_ruleRequiredDelegationConnector_in_ruleComposedStructureAssembly4690 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_14_in_ruleComposedStructureAssembly4703 = new BitSet(new long[]{0x1000000000000000L}); + public static final BitSet FOLLOW_ruleRequiredDelegationConnector_in_ruleComposedStructureAssembly4724 = new BitSet(new long[]{0x000000000000C000L}); + public static final BitSet FOLLOW_15_in_ruleComposedStructureAssembly4738 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleComposedStructureAssembly4752 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAssemblyContext_in_entryRuleAssemblyContext4788 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleAssemblyContext4798 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_49_in_ruleAssemblyContext4835 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleAssemblyContext4856 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleAssemblyContext4868 = new BitSet(new long[]{0x0004000000000000L}); + public static final BitSet FOLLOW_50_in_ruleAssemblyContext4880 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleAssemblyContext4903 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleAssemblyContext4915 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAssemblyConnector_in_entryRuleAssemblyConnector4951 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleAssemblyConnector4961 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_51_in_ruleAssemblyConnector4998 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleAssemblyConnector5019 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleAssemblyConnector5031 = new BitSet(new long[]{0x0010000000000000L}); + public static final BitSet FOLLOW_52_in_ruleAssemblyConnector5043 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleAssemblyConnector5066 = new BitSet(new long[]{0x0020000000000000L}); + public static final BitSet FOLLOW_53_in_ruleAssemblyConnector5078 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleAssemblyConnector5101 = new BitSet(new long[]{0x0040000000000000L}); + public static final BitSet FOLLOW_54_in_ruleAssemblyConnector5113 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleAssemblyConnector5136 = new BitSet(new long[]{0x0080000000000000L}); + public static final BitSet FOLLOW_55_in_ruleAssemblyConnector5148 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleAssemblyConnector5171 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleAssemblyConnector5183 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleProvidedDelegationConnector_in_entryRuleProvidedDelegationConnector5219 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleProvidedDelegationConnector5229 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_56_in_ruleProvidedDelegationConnector5266 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleProvidedDelegationConnector5287 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleProvidedDelegationConnector5299 = new BitSet(new long[]{0x0200000000000000L}); + public static final BitSet FOLLOW_57_in_ruleProvidedDelegationConnector5311 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleProvidedDelegationConnector5334 = new BitSet(new long[]{0x0400000000000000L}); + public static final BitSet FOLLOW_58_in_ruleProvidedDelegationConnector5346 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleProvidedDelegationConnector5369 = new BitSet(new long[]{0x0800000000000000L}); + public static final BitSet FOLLOW_59_in_ruleProvidedDelegationConnector5381 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleProvidedDelegationConnector5404 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleProvidedDelegationConnector5416 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleRequiredDelegationConnector_in_entryRuleRequiredDelegationConnector5452 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleRequiredDelegationConnector5462 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_60_in_ruleRequiredDelegationConnector5499 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleRequiredDelegationConnector5520 = new BitSet(new long[]{0x0000000000001000L}); + public static final BitSet FOLLOW_12_in_ruleRequiredDelegationConnector5532 = new BitSet(new long[]{0x0200000000000000L}); + public static final BitSet FOLLOW_57_in_ruleRequiredDelegationConnector5544 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleRequiredDelegationConnector5567 = new BitSet(new long[]{0x2000000000000000L}); + public static final BitSet FOLLOW_61_in_ruleRequiredDelegationConnector5579 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleRequiredDelegationConnector5602 = new BitSet(new long[]{0x4000000000000000L}); + public static final BitSet FOLLOW_62_in_ruleRequiredDelegationConnector5614 = new BitSet(new long[]{0x0000000000000030L}); + public static final BitSet FOLLOW_ruleEString_in_ruleRequiredDelegationConnector5637 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_15_in_ruleRequiredDelegationConnector5649 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_63_in_rulePrimitiveTypeEnum5699 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_64_in_rulePrimitiveTypeEnum5716 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_65_in_rulePrimitiveTypeEnum5733 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_66_in_rulePrimitiveTypeEnum5750 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_67_in_rulePrimitiveTypeEnum5767 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_68_in_rulePrimitiveTypeEnum5784 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_69_in_rulePrimitiveTypeEnum5801 = new BitSet(new long[]{0x0000000000000002L}); + } + + +} \ No newline at end of file diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/services/MyDslTestGrammarAccess.java b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/services/MyDslTestGrammarAccess.java new file mode 100644 index 0000000000000000000000000000000000000000..233aa049c66258cf8ccd9fef4e8304a7a2576ef2 --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/services/MyDslTestGrammarAccess.java @@ -0,0 +1,2424 @@ +/* +* generated by Xtext +*/ + +package org.xtext.example.mydsl.services; + +import com.google.inject.Singleton; +import com.google.inject.Inject; + +import org.eclipse.xtext.*; +import org.eclipse.xtext.service.GrammarProvider; +import org.eclipse.xtext.service.AbstractElementFinder.*; + +import org.eclipse.xtext.common.services.TerminalsGrammarAccess; + +@Singleton +public class MyDslTestGrammarAccess extends AbstractGrammarElementFinder { + + + public class RepositoryElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Repository"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cRepositoryKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cDatatypesKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); + private final Assignment cDatatypesAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2); + private final RuleCall cDatatypesDataTypeParserRuleCall_3_2_0 = (RuleCall)cDatatypesAssignment_3_2.eContents().get(0); + private final Group cGroup_3_3 = (Group)cGroup_3.eContents().get(3); + private final Keyword cCommaKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0); + private final Assignment cDatatypesAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1); + private final RuleCall cDatatypesDataTypeParserRuleCall_3_3_1_0 = (RuleCall)cDatatypesAssignment_3_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_3_4 = (Keyword)cGroup_3.eContents().get(4); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cInterfacesKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1); + private final Assignment cInterfacesAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2); + private final RuleCall cInterfacesInterfaceParserRuleCall_4_2_0 = (RuleCall)cInterfacesAssignment_4_2.eContents().get(0); + private final Group cGroup_4_3 = (Group)cGroup_4.eContents().get(3); + private final Keyword cCommaKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0); + private final Assignment cInterfacesAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1); + private final RuleCall cInterfacesInterfaceParserRuleCall_4_3_1_0 = (RuleCall)cInterfacesAssignment_4_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_4_4 = (Keyword)cGroup_4.eContents().get(4); + private final Group cGroup_5 = (Group)cGroup.eContents().get(5); + private final Keyword cComponentsKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1); + private final Assignment cComponentsAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2); + private final RuleCall cComponentsRepositoryComponentParserRuleCall_5_2_0 = (RuleCall)cComponentsAssignment_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 cComponentsAssignment_5_3_1 = (Assignment)cGroup_5_3.eContents().get(1); + private final RuleCall cComponentsRepositoryComponentParserRuleCall_5_3_1_0 = (RuleCall)cComponentsAssignment_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); + + //Repository returns repository::Repository: + // "Repository" name=EString "{" ("datatypes" "{" datatypes+=DataType ("," datatypes+=DataType)* "}")? ("interfaces" "{" + // interfaces+=Interface ("," interfaces+=Interface)* "}")? ("components" "{" components+=RepositoryComponent ("," + // components+=RepositoryComponent)* "}")? "}"; + public ParserRule getRule() { return rule; } + + //"Repository" name=EString "{" ("datatypes" "{" datatypes+=DataType ("," datatypes+=DataType)* "}")? ("interfaces" "{" + //interfaces+=Interface ("," interfaces+=Interface)* "}")? ("components" "{" components+=RepositoryComponent ("," + //components+=RepositoryComponent)* "}")? "}" + public Group getGroup() { return cGroup; } + + //"Repository" + public Keyword getRepositoryKeyword_0() { return cRepositoryKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //("datatypes" "{" datatypes+=DataType ("," datatypes+=DataType)* "}")? + public Group getGroup_3() { return cGroup_3; } + + //"datatypes" + public Keyword getDatatypesKeyword_3_0() { return cDatatypesKeyword_3_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; } + + //datatypes+=DataType + public Assignment getDatatypesAssignment_3_2() { return cDatatypesAssignment_3_2; } + + //DataType + public RuleCall getDatatypesDataTypeParserRuleCall_3_2_0() { return cDatatypesDataTypeParserRuleCall_3_2_0; } + + //("," datatypes+=DataType)* + public Group getGroup_3_3() { return cGroup_3_3; } + + //"," + public Keyword getCommaKeyword_3_3_0() { return cCommaKeyword_3_3_0; } + + //datatypes+=DataType + public Assignment getDatatypesAssignment_3_3_1() { return cDatatypesAssignment_3_3_1; } + + //DataType + public RuleCall getDatatypesDataTypeParserRuleCall_3_3_1_0() { return cDatatypesDataTypeParserRuleCall_3_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_3_4() { return cRightCurlyBracketKeyword_3_4; } + + //("interfaces" "{" interfaces+=Interface ("," interfaces+=Interface)* "}")? + public Group getGroup_4() { return cGroup_4; } + + //"interfaces" + public Keyword getInterfacesKeyword_4_0() { return cInterfacesKeyword_4_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; } + + //interfaces+=Interface + public Assignment getInterfacesAssignment_4_2() { return cInterfacesAssignment_4_2; } + + //Interface + public RuleCall getInterfacesInterfaceParserRuleCall_4_2_0() { return cInterfacesInterfaceParserRuleCall_4_2_0; } + + //("," interfaces+=Interface)* + public Group getGroup_4_3() { return cGroup_4_3; } + + //"," + public Keyword getCommaKeyword_4_3_0() { return cCommaKeyword_4_3_0; } + + //interfaces+=Interface + public Assignment getInterfacesAssignment_4_3_1() { return cInterfacesAssignment_4_3_1; } + + //Interface + public RuleCall getInterfacesInterfaceParserRuleCall_4_3_1_0() { return cInterfacesInterfaceParserRuleCall_4_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_4_4() { return cRightCurlyBracketKeyword_4_4; } + + //("components" "{" components+=RepositoryComponent ("," components+=RepositoryComponent)* "}")? + public Group getGroup_5() { return cGroup_5; } + + //"components" + public Keyword getComponentsKeyword_5_0() { return cComponentsKeyword_5_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_5_1() { return cLeftCurlyBracketKeyword_5_1; } + + //components+=RepositoryComponent + public Assignment getComponentsAssignment_5_2() { return cComponentsAssignment_5_2; } + + //RepositoryComponent + public RuleCall getComponentsRepositoryComponentParserRuleCall_5_2_0() { return cComponentsRepositoryComponentParserRuleCall_5_2_0; } + + //("," components+=RepositoryComponent)* + public Group getGroup_5_3() { return cGroup_5_3; } + + //"," + public Keyword getCommaKeyword_5_3_0() { return cCommaKeyword_5_3_0; } + + //components+=RepositoryComponent + public Assignment getComponentsAssignment_5_3_1() { return cComponentsAssignment_5_3_1; } + + //RepositoryComponent + public RuleCall getComponentsRepositoryComponentParserRuleCall_5_3_1_0() { return cComponentsRepositoryComponentParserRuleCall_5_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_5_4() { return cRightCurlyBracketKeyword_5_4; } + + //"}" + public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } + } + + public class DataTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataType"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cCollectionDataTypeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cCompositeDataTypeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cPrimitiveDataTypeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + + //DataType returns repository::DataType: + // CollectionDataType | CompositeDataType | PrimitiveDataType; + public ParserRule getRule() { return rule; } + + //CollectionDataType | CompositeDataType | PrimitiveDataType + public Alternatives getAlternatives() { return cAlternatives; } + + //CollectionDataType + public RuleCall getCollectionDataTypeParserRuleCall_0() { return cCollectionDataTypeParserRuleCall_0; } + + //CompositeDataType + public RuleCall getCompositeDataTypeParserRuleCall_1() { return cCompositeDataTypeParserRuleCall_1; } + + //PrimitiveDataType + public RuleCall getPrimitiveDataTypeParserRuleCall_2() { return cPrimitiveDataTypeParserRuleCall_2; } + } + + public class RepositoryComponentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RepositoryComponent"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cRepositoryComponent_ImplParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cBasicComponentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cCompositeComponentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cSubSystemParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + + //RepositoryComponent returns repository::RepositoryComponent: + // RepositoryComponent_Impl | BasicComponent | CompositeComponent | SubSystem; + public ParserRule getRule() { return rule; } + + //RepositoryComponent_Impl | BasicComponent | CompositeComponent | SubSystem + public Alternatives getAlternatives() { return cAlternatives; } + + //RepositoryComponent_Impl + public RuleCall getRepositoryComponent_ImplParserRuleCall_0() { return cRepositoryComponent_ImplParserRuleCall_0; } + + //BasicComponent + public RuleCall getBasicComponentParserRuleCall_1() { return cBasicComponentParserRuleCall_1; } + + //CompositeComponent + public RuleCall getCompositeComponentParserRuleCall_2() { return cCompositeComponentParserRuleCall_2; } + + //SubSystem + public RuleCall getSubSystemParserRuleCall_3() { return cSubSystemParserRuleCall_3; } + } + + public class EStringElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EString"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cSTRINGTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cIDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //EString returns ecore::EString: + // STRING | ID; + public ParserRule getRule() { return rule; } + + //STRING | ID + public Alternatives getAlternatives() { return cAlternatives; } + + //STRING + public RuleCall getSTRINGTerminalRuleCall_0() { return cSTRINGTerminalRuleCall_0; } + + //ID + public RuleCall getIDTerminalRuleCall_1() { return cIDTerminalRuleCall_1; } + } + + public class InterfaceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Interface"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cInterfaceKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cParentInterfacesKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); + private final Assignment cParentInterfacesAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2); + private final CrossReference cParentInterfacesInterfaceCrossReference_3_2_0 = (CrossReference)cParentInterfacesAssignment_3_2.eContents().get(0); + private final RuleCall cParentInterfacesInterfaceEStringParserRuleCall_3_2_0_1 = (RuleCall)cParentInterfacesInterfaceCrossReference_3_2_0.eContents().get(1); + private final Group cGroup_3_3 = (Group)cGroup_3.eContents().get(3); + private final Keyword cCommaKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0); + private final Assignment cParentInterfacesAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1); + private final CrossReference cParentInterfacesInterfaceCrossReference_3_3_1_0 = (CrossReference)cParentInterfacesAssignment_3_3_1.eContents().get(0); + private final RuleCall cParentInterfacesInterfaceEStringParserRuleCall_3_3_1_0_1 = (RuleCall)cParentInterfacesInterfaceCrossReference_3_3_1_0.eContents().get(1); + private final Keyword cRightParenthesisKeyword_3_4 = (Keyword)cGroup_3.eContents().get(4); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cSignaturesKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1); + private final Assignment cSignaturesAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2); + private final RuleCall cSignaturesSignatureParserRuleCall_4_2_0 = (RuleCall)cSignaturesAssignment_4_2.eContents().get(0); + private final Group cGroup_4_3 = (Group)cGroup_4.eContents().get(3); + private final Keyword cCommaKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0); + private final Assignment cSignaturesAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1); + private final RuleCall cSignaturesSignatureParserRuleCall_4_3_1_0 = (RuleCall)cSignaturesAssignment_4_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_4_4 = (Keyword)cGroup_4.eContents().get(4); + private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //Interface returns repository::Interface: + // "Interface" name=EString "{" ("parentInterfaces" "(" parentInterfaces+=[repository::Interface|EString] ("," + // parentInterfaces+=[repository::Interface|EString])* ")")? ("signatures" "{" signatures+=Signature ("," + // signatures+=Signature)* "}")? "}"; + public ParserRule getRule() { return rule; } + + //"Interface" name=EString "{" ("parentInterfaces" "(" parentInterfaces+=[repository::Interface|EString] ("," + //parentInterfaces+=[repository::Interface|EString])* ")")? ("signatures" "{" signatures+=Signature ("," + //signatures+=Signature)* "}")? "}" + public Group getGroup() { return cGroup; } + + //"Interface" + public Keyword getInterfaceKeyword_0() { return cInterfaceKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //("parentInterfaces" "(" parentInterfaces+=[repository::Interface|EString] ("," + //parentInterfaces+=[repository::Interface|EString])* ")")? + public Group getGroup_3() { return cGroup_3; } + + //"parentInterfaces" + public Keyword getParentInterfacesKeyword_3_0() { return cParentInterfacesKeyword_3_0; } + + //"(" + public Keyword getLeftParenthesisKeyword_3_1() { return cLeftParenthesisKeyword_3_1; } + + //parentInterfaces+=[repository::Interface|EString] + public Assignment getParentInterfacesAssignment_3_2() { return cParentInterfacesAssignment_3_2; } + + //[repository::Interface|EString] + public CrossReference getParentInterfacesInterfaceCrossReference_3_2_0() { return cParentInterfacesInterfaceCrossReference_3_2_0; } + + //EString + public RuleCall getParentInterfacesInterfaceEStringParserRuleCall_3_2_0_1() { return cParentInterfacesInterfaceEStringParserRuleCall_3_2_0_1; } + + //("," parentInterfaces+=[repository::Interface|EString])* + public Group getGroup_3_3() { return cGroup_3_3; } + + //"," + public Keyword getCommaKeyword_3_3_0() { return cCommaKeyword_3_3_0; } + + //parentInterfaces+=[repository::Interface|EString] + public Assignment getParentInterfacesAssignment_3_3_1() { return cParentInterfacesAssignment_3_3_1; } + + //[repository::Interface|EString] + public CrossReference getParentInterfacesInterfaceCrossReference_3_3_1_0() { return cParentInterfacesInterfaceCrossReference_3_3_1_0; } + + //EString + public RuleCall getParentInterfacesInterfaceEStringParserRuleCall_3_3_1_0_1() { return cParentInterfacesInterfaceEStringParserRuleCall_3_3_1_0_1; } + + //")" + public Keyword getRightParenthesisKeyword_3_4() { return cRightParenthesisKeyword_3_4; } + + //("signatures" "{" signatures+=Signature ("," signatures+=Signature)* "}")? + public Group getGroup_4() { return cGroup_4; } + + //"signatures" + public Keyword getSignaturesKeyword_4_0() { return cSignaturesKeyword_4_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; } + + //signatures+=Signature + public Assignment getSignaturesAssignment_4_2() { return cSignaturesAssignment_4_2; } + + //Signature + public RuleCall getSignaturesSignatureParserRuleCall_4_2_0() { return cSignaturesSignatureParserRuleCall_4_2_0; } + + //("," signatures+=Signature)* + public Group getGroup_4_3() { return cGroup_4_3; } + + //"," + public Keyword getCommaKeyword_4_3_0() { return cCommaKeyword_4_3_0; } + + //signatures+=Signature + public Assignment getSignaturesAssignment_4_3_1() { return cSignaturesAssignment_4_3_1; } + + //Signature + public RuleCall getSignaturesSignatureParserRuleCall_4_3_1_0() { return cSignaturesSignatureParserRuleCall_4_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_4_4() { return cRightCurlyBracketKeyword_4_4; } + + //"}" + public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } + } + + public class RepositoryComponent_ImplElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RepositoryComponent_Impl"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cRepositoryComponentKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cRelationshipKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); + private final Assignment cRelationshipAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2); + private final CrossReference cRelationshipRelationshipCrossReference_3_2_0 = (CrossReference)cRelationshipAssignment_3_2.eContents().get(0); + private final RuleCall cRelationshipRelationshipEStringParserRuleCall_3_2_0_1 = (RuleCall)cRelationshipRelationshipCrossReference_3_2_0.eContents().get(1); + private final Group cGroup_3_3 = (Group)cGroup_3.eContents().get(3); + private final Keyword cCommaKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0); + private final Assignment cRelationshipAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1); + private final CrossReference cRelationshipRelationshipCrossReference_3_3_1_0 = (CrossReference)cRelationshipAssignment_3_3_1.eContents().get(0); + private final RuleCall cRelationshipRelationshipEStringParserRuleCall_3_3_1_0_1 = (RuleCall)cRelationshipRelationshipCrossReference_3_3_1_0.eContents().get(1); + private final Keyword cRightParenthesisKeyword_3_4 = (Keyword)cGroup_3.eContents().get(4); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cProvidedRolesKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1); + private final Assignment cProvidedRolesAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2); + private final RuleCall cProvidedRolesProvidedRoleParserRuleCall_4_2_0 = (RuleCall)cProvidedRolesAssignment_4_2.eContents().get(0); + private final Group cGroup_4_3 = (Group)cGroup_4.eContents().get(3); + private final Keyword cCommaKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0); + private final Assignment cProvidedRolesAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1); + private final RuleCall cProvidedRolesProvidedRoleParserRuleCall_4_3_1_0 = (RuleCall)cProvidedRolesAssignment_4_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_4_4 = (Keyword)cGroup_4.eContents().get(4); + private final Group cGroup_5 = (Group)cGroup.eContents().get(5); + private final Keyword cRequiredRolesKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1); + private final Assignment cRequiredRolesAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2); + private final RuleCall cRequiredRolesRequiredRoleParserRuleCall_5_2_0 = (RuleCall)cRequiredRolesAssignment_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 cRequiredRolesAssignment_5_3_1 = (Assignment)cGroup_5_3.eContents().get(1); + private final RuleCall cRequiredRolesRequiredRoleParserRuleCall_5_3_1_0 = (RuleCall)cRequiredRolesAssignment_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); + + //RepositoryComponent_Impl returns repository::RepositoryComponent: + // "RepositoryComponent" name=EString "{" ("relationship" "(" relationship+=[Relationship|EString] ("," + // relationship+=[Relationship|EString])* ")")? ("providedRoles" "{" providedRoles+=ProvidedRole ("," + // providedRoles+=ProvidedRole)* "}")? ("requiredRoles" "{" requiredRoles+=RequiredRole ("," + // requiredRoles+=RequiredRole)* "}")? "}"; + public ParserRule getRule() { return rule; } + + //"RepositoryComponent" name=EString "{" ("relationship" "(" relationship+=[Relationship|EString] ("," + //relationship+=[Relationship|EString])* ")")? ("providedRoles" "{" providedRoles+=ProvidedRole ("," + //providedRoles+=ProvidedRole)* "}")? ("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* + //"}")? "}" + public Group getGroup() { return cGroup; } + + //"RepositoryComponent" + public Keyword getRepositoryComponentKeyword_0() { return cRepositoryComponentKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //("relationship" "(" relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? + public Group getGroup_3() { return cGroup_3; } + + //"relationship" + public Keyword getRelationshipKeyword_3_0() { return cRelationshipKeyword_3_0; } + + //"(" + public Keyword getLeftParenthesisKeyword_3_1() { return cLeftParenthesisKeyword_3_1; } + + //relationship+=[Relationship|EString] + public Assignment getRelationshipAssignment_3_2() { return cRelationshipAssignment_3_2; } + + //[Relationship|EString] + public CrossReference getRelationshipRelationshipCrossReference_3_2_0() { return cRelationshipRelationshipCrossReference_3_2_0; } + + //EString + public RuleCall getRelationshipRelationshipEStringParserRuleCall_3_2_0_1() { return cRelationshipRelationshipEStringParserRuleCall_3_2_0_1; } + + //("," relationship+=[Relationship|EString])* + public Group getGroup_3_3() { return cGroup_3_3; } + + //"," + public Keyword getCommaKeyword_3_3_0() { return cCommaKeyword_3_3_0; } + + //relationship+=[Relationship|EString] + public Assignment getRelationshipAssignment_3_3_1() { return cRelationshipAssignment_3_3_1; } + + //[Relationship|EString] + public CrossReference getRelationshipRelationshipCrossReference_3_3_1_0() { return cRelationshipRelationshipCrossReference_3_3_1_0; } + + //EString + public RuleCall getRelationshipRelationshipEStringParserRuleCall_3_3_1_0_1() { return cRelationshipRelationshipEStringParserRuleCall_3_3_1_0_1; } + + //")" + public Keyword getRightParenthesisKeyword_3_4() { return cRightParenthesisKeyword_3_4; } + + //("providedRoles" "{" providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)* "}")? + public Group getGroup_4() { return cGroup_4; } + + //"providedRoles" + public Keyword getProvidedRolesKeyword_4_0() { return cProvidedRolesKeyword_4_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; } + + //providedRoles+=ProvidedRole + public Assignment getProvidedRolesAssignment_4_2() { return cProvidedRolesAssignment_4_2; } + + //ProvidedRole + public RuleCall getProvidedRolesProvidedRoleParserRuleCall_4_2_0() { return cProvidedRolesProvidedRoleParserRuleCall_4_2_0; } + + //("," providedRoles+=ProvidedRole)* + public Group getGroup_4_3() { return cGroup_4_3; } + + //"," + public Keyword getCommaKeyword_4_3_0() { return cCommaKeyword_4_3_0; } + + //providedRoles+=ProvidedRole + public Assignment getProvidedRolesAssignment_4_3_1() { return cProvidedRolesAssignment_4_3_1; } + + //ProvidedRole + public RuleCall getProvidedRolesProvidedRoleParserRuleCall_4_3_1_0() { return cProvidedRolesProvidedRoleParserRuleCall_4_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_4_4() { return cRightCurlyBracketKeyword_4_4; } + + //("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* "}")? + public Group getGroup_5() { return cGroup_5; } + + //"requiredRoles" + public Keyword getRequiredRolesKeyword_5_0() { return cRequiredRolesKeyword_5_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_5_1() { return cLeftCurlyBracketKeyword_5_1; } + + //requiredRoles+=RequiredRole + public Assignment getRequiredRolesAssignment_5_2() { return cRequiredRolesAssignment_5_2; } + + //RequiredRole + public RuleCall getRequiredRolesRequiredRoleParserRuleCall_5_2_0() { return cRequiredRolesRequiredRoleParserRuleCall_5_2_0; } + + //("," requiredRoles+=RequiredRole)* + public Group getGroup_5_3() { return cGroup_5_3; } + + //"," + public Keyword getCommaKeyword_5_3_0() { return cCommaKeyword_5_3_0; } + + //requiredRoles+=RequiredRole + public Assignment getRequiredRolesAssignment_5_3_1() { return cRequiredRolesAssignment_5_3_1; } + + //RequiredRole + public RuleCall getRequiredRolesRequiredRoleParserRuleCall_5_3_1_0() { return cRequiredRolesRequiredRoleParserRuleCall_5_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_5_4() { return cRightCurlyBracketKeyword_5_4; } + + //"}" + public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } + } + + public class CollectionDataTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CollectionDataType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cCollectionDataTypeKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Keyword cInnerTypeKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cInnerTypeAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final CrossReference cInnerTypeDataTypeCrossReference_4_0 = (CrossReference)cInnerTypeAssignment_4.eContents().get(0); + private final RuleCall cInnerTypeDataTypeEStringParserRuleCall_4_0_1 = (RuleCall)cInnerTypeDataTypeCrossReference_4_0.eContents().get(1); + private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //CollectionDataType returns repository::CollectionDataType: + // "CollectionDataType" name=EString "{" "innerType" innerType=[repository::DataType|EString] "}"; + public ParserRule getRule() { return rule; } + + //"CollectionDataType" name=EString "{" "innerType" innerType=[repository::DataType|EString] "}" + public Group getGroup() { return cGroup; } + + //"CollectionDataType" + public Keyword getCollectionDataTypeKeyword_0() { return cCollectionDataTypeKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //"innerType" + public Keyword getInnerTypeKeyword_3() { return cInnerTypeKeyword_3; } + + //innerType=[repository::DataType|EString] + public Assignment getInnerTypeAssignment_4() { return cInnerTypeAssignment_4; } + + //[repository::DataType|EString] + public CrossReference getInnerTypeDataTypeCrossReference_4_0() { return cInnerTypeDataTypeCrossReference_4_0; } + + //EString + public RuleCall getInnerTypeDataTypeEStringParserRuleCall_4_0_1() { return cInnerTypeDataTypeEStringParserRuleCall_4_0_1; } + + //"}" + public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } + } + + public class CompositeDataTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CompositeDataType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cCompositeDataTypeKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cParentTypesKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); + private final Assignment cParentTypesAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2); + private final CrossReference cParentTypesCompositeDataTypeCrossReference_3_2_0 = (CrossReference)cParentTypesAssignment_3_2.eContents().get(0); + private final RuleCall cParentTypesCompositeDataTypeEStringParserRuleCall_3_2_0_1 = (RuleCall)cParentTypesCompositeDataTypeCrossReference_3_2_0.eContents().get(1); + private final Group cGroup_3_3 = (Group)cGroup_3.eContents().get(3); + private final Keyword cCommaKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0); + private final Assignment cParentTypesAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1); + private final CrossReference cParentTypesCompositeDataTypeCrossReference_3_3_1_0 = (CrossReference)cParentTypesAssignment_3_3_1.eContents().get(0); + private final RuleCall cParentTypesCompositeDataTypeEStringParserRuleCall_3_3_1_0_1 = (RuleCall)cParentTypesCompositeDataTypeCrossReference_3_3_1_0.eContents().get(1); + private final Keyword cRightParenthesisKeyword_3_4 = (Keyword)cGroup_3.eContents().get(4); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cInnerDeclarationsKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1); + private final Assignment cInnerDeclarationsAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2); + private final RuleCall cInnerDeclarationsInnerDeclarationParserRuleCall_4_2_0 = (RuleCall)cInnerDeclarationsAssignment_4_2.eContents().get(0); + private final Group cGroup_4_3 = (Group)cGroup_4.eContents().get(3); + private final Keyword cCommaKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0); + private final Assignment cInnerDeclarationsAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1); + private final RuleCall cInnerDeclarationsInnerDeclarationParserRuleCall_4_3_1_0 = (RuleCall)cInnerDeclarationsAssignment_4_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_4_4 = (Keyword)cGroup_4.eContents().get(4); + private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //CompositeDataType returns repository::CompositeDataType: + // "CompositeDataType" name=EString "{" ("parentTypes" "(" parentTypes+=[repository::CompositeDataType|EString] ("," + // parentTypes+=[repository::CompositeDataType|EString])* ")")? ("innerDeclarations" "{" + // innerDeclarations+=InnerDeclaration ("," innerDeclarations+=InnerDeclaration)* "}")? "}"; + public ParserRule getRule() { return rule; } + + //"CompositeDataType" name=EString "{" ("parentTypes" "(" parentTypes+=[repository::CompositeDataType|EString] ("," + //parentTypes+=[repository::CompositeDataType|EString])* ")")? ("innerDeclarations" "{" + //innerDeclarations+=InnerDeclaration ("," innerDeclarations+=InnerDeclaration)* "}")? "}" + public Group getGroup() { return cGroup; } + + //"CompositeDataType" + public Keyword getCompositeDataTypeKeyword_0() { return cCompositeDataTypeKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //("parentTypes" "(" parentTypes+=[repository::CompositeDataType|EString] ("," + //parentTypes+=[repository::CompositeDataType|EString])* ")")? + public Group getGroup_3() { return cGroup_3; } + + //"parentTypes" + public Keyword getParentTypesKeyword_3_0() { return cParentTypesKeyword_3_0; } + + //"(" + public Keyword getLeftParenthesisKeyword_3_1() { return cLeftParenthesisKeyword_3_1; } + + //parentTypes+=[repository::CompositeDataType|EString] + public Assignment getParentTypesAssignment_3_2() { return cParentTypesAssignment_3_2; } + + //[repository::CompositeDataType|EString] + public CrossReference getParentTypesCompositeDataTypeCrossReference_3_2_0() { return cParentTypesCompositeDataTypeCrossReference_3_2_0; } + + //EString + public RuleCall getParentTypesCompositeDataTypeEStringParserRuleCall_3_2_0_1() { return cParentTypesCompositeDataTypeEStringParserRuleCall_3_2_0_1; } + + //("," parentTypes+=[repository::CompositeDataType|EString])* + public Group getGroup_3_3() { return cGroup_3_3; } + + //"," + public Keyword getCommaKeyword_3_3_0() { return cCommaKeyword_3_3_0; } + + //parentTypes+=[repository::CompositeDataType|EString] + public Assignment getParentTypesAssignment_3_3_1() { return cParentTypesAssignment_3_3_1; } + + //[repository::CompositeDataType|EString] + public CrossReference getParentTypesCompositeDataTypeCrossReference_3_3_1_0() { return cParentTypesCompositeDataTypeCrossReference_3_3_1_0; } + + //EString + public RuleCall getParentTypesCompositeDataTypeEStringParserRuleCall_3_3_1_0_1() { return cParentTypesCompositeDataTypeEStringParserRuleCall_3_3_1_0_1; } + + //")" + public Keyword getRightParenthesisKeyword_3_4() { return cRightParenthesisKeyword_3_4; } + + //("innerDeclarations" "{" innerDeclarations+=InnerDeclaration ("," innerDeclarations+=InnerDeclaration)* "}")? + public Group getGroup_4() { return cGroup_4; } + + //"innerDeclarations" + public Keyword getInnerDeclarationsKeyword_4_0() { return cInnerDeclarationsKeyword_4_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; } + + //innerDeclarations+=InnerDeclaration + public Assignment getInnerDeclarationsAssignment_4_2() { return cInnerDeclarationsAssignment_4_2; } + + //InnerDeclaration + public RuleCall getInnerDeclarationsInnerDeclarationParserRuleCall_4_2_0() { return cInnerDeclarationsInnerDeclarationParserRuleCall_4_2_0; } + + //("," innerDeclarations+=InnerDeclaration)* + public Group getGroup_4_3() { return cGroup_4_3; } + + //"," + public Keyword getCommaKeyword_4_3_0() { return cCommaKeyword_4_3_0; } + + //innerDeclarations+=InnerDeclaration + public Assignment getInnerDeclarationsAssignment_4_3_1() { return cInnerDeclarationsAssignment_4_3_1; } + + //InnerDeclaration + public RuleCall getInnerDeclarationsInnerDeclarationParserRuleCall_4_3_1_0() { return cInnerDeclarationsInnerDeclarationParserRuleCall_4_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_4_4() { return cRightCurlyBracketKeyword_4_4; } + + //"}" + public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } + } + + public class PrimitiveDataTypeElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PrimitiveDataType"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cPrimitiveDataTypeKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Keyword cTypeKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cTypePrimitiveTypeEnumEnumRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0); + private final Keyword cRefKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Assignment cNameAssignment_5 = (Assignment)cGroup.eContents().get(5); + private final RuleCall cNameEStringParserRuleCall_5_0 = (RuleCall)cNameAssignment_5.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); + + //PrimitiveDataType returns repository::PrimitiveDataType: + // "PrimitiveDataType" "{" "type" type=PrimitiveTypeEnum "ref" name=EString "}"; + public ParserRule getRule() { return rule; } + + //"PrimitiveDataType" "{" "type" type=PrimitiveTypeEnum "ref" name=EString "}" + public Group getGroup() { return cGroup; } + + //"PrimitiveDataType" + public Keyword getPrimitiveDataTypeKeyword_0() { return cPrimitiveDataTypeKeyword_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; } + + //"type" + public Keyword getTypeKeyword_2() { return cTypeKeyword_2; } + + //type=PrimitiveTypeEnum + public Assignment getTypeAssignment_3() { return cTypeAssignment_3; } + + //PrimitiveTypeEnum + public RuleCall getTypePrimitiveTypeEnumEnumRuleCall_3_0() { return cTypePrimitiveTypeEnumEnumRuleCall_3_0; } + + //"ref" + public Keyword getRefKeyword_4() { return cRefKeyword_4; } + + //name=EString + public Assignment getNameAssignment_5() { return cNameAssignment_5; } + + //EString + public RuleCall getNameEStringParserRuleCall_5_0() { return cNameEStringParserRuleCall_5_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } + } + + public class InnerDeclarationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "InnerDeclaration"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cInnerDeclarationKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Keyword cDataTypeKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final CrossReference cDataTypeDataTypeCrossReference_4_0 = (CrossReference)cDataTypeAssignment_4.eContents().get(0); + private final RuleCall cDataTypeDataTypeEStringParserRuleCall_4_0_1 = (RuleCall)cDataTypeDataTypeCrossReference_4_0.eContents().get(1); + private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //InnerDeclaration returns repository::InnerDeclaration: + // "InnerDeclaration" name=EString "{" "dataType" dataType=[repository::DataType|EString] "}"; + public ParserRule getRule() { return rule; } + + //"InnerDeclaration" name=EString "{" "dataType" dataType=[repository::DataType|EString] "}" + public Group getGroup() { return cGroup; } + + //"InnerDeclaration" + public Keyword getInnerDeclarationKeyword_0() { return cInnerDeclarationKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //"dataType" + public Keyword getDataTypeKeyword_3() { return cDataTypeKeyword_3; } + + //dataType=[repository::DataType|EString] + public Assignment getDataTypeAssignment_4() { return cDataTypeAssignment_4; } + + //[repository::DataType|EString] + public CrossReference getDataTypeDataTypeCrossReference_4_0() { return cDataTypeDataTypeCrossReference_4_0; } + + //EString + public RuleCall getDataTypeDataTypeEStringParserRuleCall_4_0_1() { return cDataTypeDataTypeEStringParserRuleCall_4_0_1; } + + //"}" + public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } + } + + public class SignatureElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Signature"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Assignment cReturnTypeAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0); + private final CrossReference cReturnTypeDataTypeCrossReference_0_0_0 = (CrossReference)cReturnTypeAssignment_0_0.eContents().get(0); + private final RuleCall cReturnTypeDataTypeEStringParserRuleCall_0_0_0_1 = (RuleCall)cReturnTypeDataTypeCrossReference_0_0_0.eContents().get(1); + private final Keyword cVoidKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Assignment cParametersAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0); + private final RuleCall cParametersParameterParserRuleCall_3_0_0 = (RuleCall)cParametersAssignment_3_0.eContents().get(0); + private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1); + private final Keyword cCommaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0); + private final Assignment cParametersAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1); + private final RuleCall cParametersParameterParserRuleCall_3_1_1_0 = (RuleCall)cParametersAssignment_3_1_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4); + + //Signature returns repository::Signature: + // (returnType=[repository::DataType|EString] | "void") name=EString "(" (parameters+=Parameter ("," + // parameters+=Parameter)*)? ")"; + public ParserRule getRule() { return rule; } + + //(returnType=[repository::DataType|EString] | "void") name=EString "(" (parameters+=Parameter ("," + //parameters+=Parameter)*)? ")" + public Group getGroup() { return cGroup; } + + //returnType=[repository::DataType|EString] | "void" + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //returnType=[repository::DataType|EString] + public Assignment getReturnTypeAssignment_0_0() { return cReturnTypeAssignment_0_0; } + + //[repository::DataType|EString] + public CrossReference getReturnTypeDataTypeCrossReference_0_0_0() { return cReturnTypeDataTypeCrossReference_0_0_0; } + + //EString + public RuleCall getReturnTypeDataTypeEStringParserRuleCall_0_0_0_1() { return cReturnTypeDataTypeEStringParserRuleCall_0_0_0_1; } + + //"void" + public Keyword getVoidKeyword_0_1() { return cVoidKeyword_0_1; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"(" + public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; } + + //(parameters+=Parameter ("," parameters+=Parameter)*)? + public Group getGroup_3() { return cGroup_3; } + + //parameters+=Parameter + public Assignment getParametersAssignment_3_0() { return cParametersAssignment_3_0; } + + //Parameter + public RuleCall getParametersParameterParserRuleCall_3_0_0() { return cParametersParameterParserRuleCall_3_0_0; } + + //("," parameters+=Parameter)* + public Group getGroup_3_1() { return cGroup_3_1; } + + //"," + public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; } + + //parameters+=Parameter + public Assignment getParametersAssignment_3_1_1() { return cParametersAssignment_3_1_1; } + + //Parameter + public RuleCall getParametersParameterParserRuleCall_3_1_1_0() { return cParametersParameterParserRuleCall_3_1_1_0; } + + //")" + public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; } + } + + public class ParameterElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Parameter"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cDataTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cDataTypeDataTypeCrossReference_0_0 = (CrossReference)cDataTypeAssignment_0.eContents().get(0); + private final RuleCall cDataTypeDataTypeEStringParserRuleCall_0_0_1 = (RuleCall)cDataTypeDataTypeCrossReference_0_0.eContents().get(1); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + + //Parameter returns repository::Parameter: + // dataType=[repository::DataType|EString] name=EString; + public ParserRule getRule() { return rule; } + + //dataType=[repository::DataType|EString] name=EString + public Group getGroup() { return cGroup; } + + //dataType=[repository::DataType|EString] + public Assignment getDataTypeAssignment_0() { return cDataTypeAssignment_0; } + + //[repository::DataType|EString] + public CrossReference getDataTypeDataTypeCrossReference_0_0() { return cDataTypeDataTypeCrossReference_0_0; } + + //EString + public RuleCall getDataTypeDataTypeEStringParserRuleCall_0_0_1() { return cDataTypeDataTypeEStringParserRuleCall_0_0_1; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + } + + public class ProvidedRoleElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ProvidedRole"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cProvidedRoleAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cProvidesKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Assignment cInterfaceAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); + private final CrossReference cInterfaceInterfaceCrossReference_2_0_0 = (CrossReference)cInterfaceAssignment_2_0.eContents().get(0); + private final RuleCall cInterfaceInterfaceEStringParserRuleCall_2_0_0_1 = (RuleCall)cInterfaceInterfaceCrossReference_2_0_0.eContents().get(1); + private final Keyword cCommaKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1); + + //ProvidedRole returns repository::ProvidedRole: + // {repository::ProvidedRole} "provides" (interface+=[repository::Interface|EString] ","?)*; + public ParserRule getRule() { return rule; } + + //{repository::ProvidedRole} "provides" (interface+=[repository::Interface|EString] ","?)* + public Group getGroup() { return cGroup; } + + //{repository::ProvidedRole} + public Action getProvidedRoleAction_0() { return cProvidedRoleAction_0; } + + //"provides" + public Keyword getProvidesKeyword_1() { return cProvidesKeyword_1; } + + //(interface+=[repository::Interface|EString] ","?)* + public Group getGroup_2() { return cGroup_2; } + + //interface+=[repository::Interface|EString] + public Assignment getInterfaceAssignment_2_0() { return cInterfaceAssignment_2_0; } + + //[repository::Interface|EString] + public CrossReference getInterfaceInterfaceCrossReference_2_0_0() { return cInterfaceInterfaceCrossReference_2_0_0; } + + //EString + public RuleCall getInterfaceInterfaceEStringParserRuleCall_2_0_0_1() { return cInterfaceInterfaceEStringParserRuleCall_2_0_0_1; } + + //","? + public Keyword getCommaKeyword_2_1() { return cCommaKeyword_2_1; } + } + + public class RequiredRoleElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RequiredRole"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cRequiredRoleAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cRequiresKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Assignment cInterfaceAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); + private final CrossReference cInterfaceInterfaceCrossReference_2_0_0 = (CrossReference)cInterfaceAssignment_2_0.eContents().get(0); + private final RuleCall cInterfaceInterfaceEStringParserRuleCall_2_0_0_1 = (RuleCall)cInterfaceInterfaceCrossReference_2_0_0.eContents().get(1); + private final Keyword cCommaKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1); + + //RequiredRole returns repository::RequiredRole: + // {repository::RequiredRole} "requires" (interface+=[repository::Interface|EString] ","?)*; + public ParserRule getRule() { return rule; } + + //{repository::RequiredRole} "requires" (interface+=[repository::Interface|EString] ","?)* + public Group getGroup() { return cGroup; } + + //{repository::RequiredRole} + public Action getRequiredRoleAction_0() { return cRequiredRoleAction_0; } + + //"requires" + public Keyword getRequiresKeyword_1() { return cRequiresKeyword_1; } + + //(interface+=[repository::Interface|EString] ","?)* + public Group getGroup_2() { return cGroup_2; } + + //interface+=[repository::Interface|EString] + public Assignment getInterfaceAssignment_2_0() { return cInterfaceAssignment_2_0; } + + //[repository::Interface|EString] + public CrossReference getInterfaceInterfaceCrossReference_2_0_0() { return cInterfaceInterfaceCrossReference_2_0_0; } + + //EString + public RuleCall getInterfaceInterfaceEStringParserRuleCall_2_0_0_1() { return cInterfaceInterfaceEStringParserRuleCall_2_0_0_1; } + + //","? + public Keyword getCommaKeyword_2_1() { return cCommaKeyword_2_1; } + } + + public class BasicComponentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BasicComponent"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cBasicComponentKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Assignment cProvidedRolesAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); + private final RuleCall cProvidedRolesProvidedRoleParserRuleCall_2_0_0 = (RuleCall)cProvidedRolesAssignment_2_0.eContents().get(0); + private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); + private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); + private final Assignment cProvidedRolesAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); + private final RuleCall cProvidedRolesProvidedRoleParserRuleCall_2_1_1_0 = (RuleCall)cProvidedRolesAssignment_2_1_1.eContents().get(0); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Assignment cRequiredRolesAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0); + private final RuleCall cRequiredRolesRequiredRoleParserRuleCall_3_0_0 = (RuleCall)cRequiredRolesAssignment_3_0.eContents().get(0); + private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1); + private final Keyword cCommaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0); + private final Assignment cRequiredRolesAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1); + private final RuleCall cRequiredRolesRequiredRoleParserRuleCall_3_1_1_0 = (RuleCall)cRequiredRolesAssignment_3_1_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Group cGroup_5 = (Group)cGroup.eContents().get(5); + private final Keyword cRelationshipKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1); + private final Assignment cRelationshipAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2); + private final CrossReference cRelationshipRelationshipCrossReference_5_2_0 = (CrossReference)cRelationshipAssignment_5_2.eContents().get(0); + private final RuleCall cRelationshipRelationshipEStringParserRuleCall_5_2_0_1 = (RuleCall)cRelationshipRelationshipCrossReference_5_2_0.eContents().get(1); + 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 cRelationshipAssignment_5_3_1 = (Assignment)cGroup_5_3.eContents().get(1); + private final CrossReference cRelationshipRelationshipCrossReference_5_3_1_0 = (CrossReference)cRelationshipAssignment_5_3_1.eContents().get(0); + private final RuleCall cRelationshipRelationshipEStringParserRuleCall_5_3_1_0_1 = (RuleCall)cRelationshipRelationshipCrossReference_5_3_1_0.eContents().get(1); + private final Keyword cRightParenthesisKeyword_5_4 = (Keyword)cGroup_5.eContents().get(4); + private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); + + //BasicComponent returns repository::BasicComponent: + // "BasicComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + // (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" + // relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? "}"; + public ParserRule getRule() { return rule; } + + //"BasicComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + //(requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" + //relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? "}" + public Group getGroup() { return cGroup; } + + //"BasicComponent" + public Keyword getBasicComponentKeyword_0() { return cBasicComponentKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //(providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + public Group getGroup_2() { return cGroup_2; } + + //providedRoles+=ProvidedRole + public Assignment getProvidedRolesAssignment_2_0() { return cProvidedRolesAssignment_2_0; } + + //ProvidedRole + public RuleCall getProvidedRolesProvidedRoleParserRuleCall_2_0_0() { return cProvidedRolesProvidedRoleParserRuleCall_2_0_0; } + + //("," providedRoles+=ProvidedRole)* + public Group getGroup_2_1() { return cGroup_2_1; } + + //"," + public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } + + //providedRoles+=ProvidedRole + public Assignment getProvidedRolesAssignment_2_1_1() { return cProvidedRolesAssignment_2_1_1; } + + //ProvidedRole + public RuleCall getProvidedRolesProvidedRoleParserRuleCall_2_1_1_0() { return cProvidedRolesProvidedRoleParserRuleCall_2_1_1_0; } + + //(requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? + public Group getGroup_3() { return cGroup_3; } + + //requiredRoles+=RequiredRole + public Assignment getRequiredRolesAssignment_3_0() { return cRequiredRolesAssignment_3_0; } + + //RequiredRole + public RuleCall getRequiredRolesRequiredRoleParserRuleCall_3_0_0() { return cRequiredRolesRequiredRoleParserRuleCall_3_0_0; } + + //("," requiredRoles+=RequiredRole)* + public Group getGroup_3_1() { return cGroup_3_1; } + + //"," + public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; } + + //requiredRoles+=RequiredRole + public Assignment getRequiredRolesAssignment_3_1_1() { return cRequiredRolesAssignment_3_1_1; } + + //RequiredRole + public RuleCall getRequiredRolesRequiredRoleParserRuleCall_3_1_1_0() { return cRequiredRolesRequiredRoleParserRuleCall_3_1_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } + + //("relationship" "(" relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? + public Group getGroup_5() { return cGroup_5; } + + //"relationship" + public Keyword getRelationshipKeyword_5_0() { return cRelationshipKeyword_5_0; } + + //"(" + public Keyword getLeftParenthesisKeyword_5_1() { return cLeftParenthesisKeyword_5_1; } + + //relationship+=[Relationship|EString] + public Assignment getRelationshipAssignment_5_2() { return cRelationshipAssignment_5_2; } + + //[Relationship|EString] + public CrossReference getRelationshipRelationshipCrossReference_5_2_0() { return cRelationshipRelationshipCrossReference_5_2_0; } + + //EString + public RuleCall getRelationshipRelationshipEStringParserRuleCall_5_2_0_1() { return cRelationshipRelationshipEStringParserRuleCall_5_2_0_1; } + + //("," relationship+=[Relationship|EString])* + public Group getGroup_5_3() { return cGroup_5_3; } + + //"," + public Keyword getCommaKeyword_5_3_0() { return cCommaKeyword_5_3_0; } + + //relationship+=[Relationship|EString] + public Assignment getRelationshipAssignment_5_3_1() { return cRelationshipAssignment_5_3_1; } + + //[Relationship|EString] + public CrossReference getRelationshipRelationshipCrossReference_5_3_1_0() { return cRelationshipRelationshipCrossReference_5_3_1_0; } + + //EString + public RuleCall getRelationshipRelationshipEStringParserRuleCall_5_3_1_0_1() { return cRelationshipRelationshipEStringParserRuleCall_5_3_1_0_1; } + + //")" + public Keyword getRightParenthesisKeyword_5_4() { return cRightParenthesisKeyword_5_4; } + + //"}" + public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } + } + + public class CompositeComponentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CompositeComponent"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cCompositeComponentKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Assignment cProvidedRolesAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); + private final RuleCall cProvidedRolesProvidedRoleParserRuleCall_2_0_0 = (RuleCall)cProvidedRolesAssignment_2_0.eContents().get(0); + private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); + private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); + private final Assignment cProvidedRolesAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); + private final RuleCall cProvidedRolesProvidedRoleParserRuleCall_2_1_1_0 = (RuleCall)cProvidedRolesAssignment_2_1_1.eContents().get(0); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Assignment cRequiredRolesAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0); + private final RuleCall cRequiredRolesRequiredRoleParserRuleCall_3_0_0 = (RuleCall)cRequiredRolesAssignment_3_0.eContents().get(0); + private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1); + private final Keyword cCommaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0); + private final Assignment cRequiredRolesAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1); + private final RuleCall cRequiredRolesRequiredRoleParserRuleCall_3_1_1_0 = (RuleCall)cRequiredRolesAssignment_3_1_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Group cGroup_5 = (Group)cGroup.eContents().get(5); + private final Keyword cRelationshipKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1); + private final Assignment cRelationshipAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2); + private final CrossReference cRelationshipRelationshipCrossReference_5_2_0 = (CrossReference)cRelationshipAssignment_5_2.eContents().get(0); + private final RuleCall cRelationshipRelationshipEStringParserRuleCall_5_2_0_1 = (RuleCall)cRelationshipRelationshipCrossReference_5_2_0.eContents().get(1); + 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 cRelationshipAssignment_5_3_1 = (Assignment)cGroup_5_3.eContents().get(1); + private final CrossReference cRelationshipRelationshipCrossReference_5_3_1_0 = (CrossReference)cRelationshipAssignment_5_3_1.eContents().get(0); + private final RuleCall cRelationshipRelationshipEStringParserRuleCall_5_3_1_0_1 = (RuleCall)cRelationshipRelationshipCrossReference_5_3_1_0.eContents().get(1); + private final Keyword cRightParenthesisKeyword_5_4 = (Keyword)cGroup_5.eContents().get(4); + private final Group cGroup_6 = (Group)cGroup.eContents().get(6); + private final Keyword cAssemblyKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0); + private final Assignment cAssemblyAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1); + private final RuleCall cAssemblyComposedStructureAssemblyParserRuleCall_6_1_0 = (RuleCall)cAssemblyAssignment_6_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7); + + //CompositeComponent returns repository::CompositeComponent: + // "CompositeComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + // (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" + // relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" + // assembly=ComposedStructureAssembly)? "}"; + public ParserRule getRule() { return rule; } + + //"CompositeComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + //(requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" + //relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" + //assembly=ComposedStructureAssembly)? "}" + public Group getGroup() { return cGroup; } + + //"CompositeComponent" + public Keyword getCompositeComponentKeyword_0() { return cCompositeComponentKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //(providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + public Group getGroup_2() { return cGroup_2; } + + //providedRoles+=ProvidedRole + public Assignment getProvidedRolesAssignment_2_0() { return cProvidedRolesAssignment_2_0; } + + //ProvidedRole + public RuleCall getProvidedRolesProvidedRoleParserRuleCall_2_0_0() { return cProvidedRolesProvidedRoleParserRuleCall_2_0_0; } + + //("," providedRoles+=ProvidedRole)* + public Group getGroup_2_1() { return cGroup_2_1; } + + //"," + public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } + + //providedRoles+=ProvidedRole + public Assignment getProvidedRolesAssignment_2_1_1() { return cProvidedRolesAssignment_2_1_1; } + + //ProvidedRole + public RuleCall getProvidedRolesProvidedRoleParserRuleCall_2_1_1_0() { return cProvidedRolesProvidedRoleParserRuleCall_2_1_1_0; } + + //(requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? + public Group getGroup_3() { return cGroup_3; } + + //requiredRoles+=RequiredRole + public Assignment getRequiredRolesAssignment_3_0() { return cRequiredRolesAssignment_3_0; } + + //RequiredRole + public RuleCall getRequiredRolesRequiredRoleParserRuleCall_3_0_0() { return cRequiredRolesRequiredRoleParserRuleCall_3_0_0; } + + //("," requiredRoles+=RequiredRole)* + public Group getGroup_3_1() { return cGroup_3_1; } + + //"," + public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; } + + //requiredRoles+=RequiredRole + public Assignment getRequiredRolesAssignment_3_1_1() { return cRequiredRolesAssignment_3_1_1; } + + //RequiredRole + public RuleCall getRequiredRolesRequiredRoleParserRuleCall_3_1_1_0() { return cRequiredRolesRequiredRoleParserRuleCall_3_1_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } + + //("relationship" "(" relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? + public Group getGroup_5() { return cGroup_5; } + + //"relationship" + public Keyword getRelationshipKeyword_5_0() { return cRelationshipKeyword_5_0; } + + //"(" + public Keyword getLeftParenthesisKeyword_5_1() { return cLeftParenthesisKeyword_5_1; } + + //relationship+=[Relationship|EString] + public Assignment getRelationshipAssignment_5_2() { return cRelationshipAssignment_5_2; } + + //[Relationship|EString] + public CrossReference getRelationshipRelationshipCrossReference_5_2_0() { return cRelationshipRelationshipCrossReference_5_2_0; } + + //EString + public RuleCall getRelationshipRelationshipEStringParserRuleCall_5_2_0_1() { return cRelationshipRelationshipEStringParserRuleCall_5_2_0_1; } + + //("," relationship+=[Relationship|EString])* + public Group getGroup_5_3() { return cGroup_5_3; } + + //"," + public Keyword getCommaKeyword_5_3_0() { return cCommaKeyword_5_3_0; } + + //relationship+=[Relationship|EString] + public Assignment getRelationshipAssignment_5_3_1() { return cRelationshipAssignment_5_3_1; } + + //[Relationship|EString] + public CrossReference getRelationshipRelationshipCrossReference_5_3_1_0() { return cRelationshipRelationshipCrossReference_5_3_1_0; } + + //EString + public RuleCall getRelationshipRelationshipEStringParserRuleCall_5_3_1_0_1() { return cRelationshipRelationshipEStringParserRuleCall_5_3_1_0_1; } + + //")" + public Keyword getRightParenthesisKeyword_5_4() { return cRightParenthesisKeyword_5_4; } + + //("assembly" assembly=ComposedStructureAssembly)? + public Group getGroup_6() { return cGroup_6; } + + //"assembly" + public Keyword getAssemblyKeyword_6_0() { return cAssemblyKeyword_6_0; } + + //assembly=ComposedStructureAssembly + public Assignment getAssemblyAssignment_6_1() { return cAssemblyAssignment_6_1; } + + //ComposedStructureAssembly + public RuleCall getAssemblyComposedStructureAssemblyParserRuleCall_6_1_0() { return cAssemblyComposedStructureAssemblyParserRuleCall_6_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; } + } + + public class SubSystemElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SubSystem"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cSubSystemKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Keyword cProvidedRolesKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1); + private final Assignment cProvidedRolesAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2); + private final RuleCall cProvidedRolesProvidedRoleParserRuleCall_2_2_0 = (RuleCall)cProvidedRolesAssignment_2_2.eContents().get(0); + private final Group cGroup_2_3 = (Group)cGroup_2.eContents().get(3); + private final Keyword cCommaKeyword_2_3_0 = (Keyword)cGroup_2_3.eContents().get(0); + private final Assignment cProvidedRolesAssignment_2_3_1 = (Assignment)cGroup_2_3.eContents().get(1); + private final RuleCall cProvidedRolesProvidedRoleParserRuleCall_2_3_1_0 = (RuleCall)cProvidedRolesAssignment_2_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_2_4 = (Keyword)cGroup_2.eContents().get(4); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cRequiredRolesKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); + private final Assignment cRequiredRolesAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2); + private final RuleCall cRequiredRolesRequiredRoleParserRuleCall_3_2_0 = (RuleCall)cRequiredRolesAssignment_3_2.eContents().get(0); + private final Group cGroup_3_3 = (Group)cGroup_3.eContents().get(3); + private final Keyword cCommaKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0); + private final Assignment cRequiredRolesAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1); + private final RuleCall cRequiredRolesRequiredRoleParserRuleCall_3_3_1_0 = (RuleCall)cRequiredRolesAssignment_3_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_3_4 = (Keyword)cGroup_3.eContents().get(4); + private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Group cGroup_5 = (Group)cGroup.eContents().get(5); + private final Keyword cRelationshipKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1); + private final Assignment cRelationshipAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2); + private final CrossReference cRelationshipRelationshipCrossReference_5_2_0 = (CrossReference)cRelationshipAssignment_5_2.eContents().get(0); + private final RuleCall cRelationshipRelationshipEStringParserRuleCall_5_2_0_1 = (RuleCall)cRelationshipRelationshipCrossReference_5_2_0.eContents().get(1); + 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 cRelationshipAssignment_5_3_1 = (Assignment)cGroup_5_3.eContents().get(1); + private final CrossReference cRelationshipRelationshipCrossReference_5_3_1_0 = (CrossReference)cRelationshipAssignment_5_3_1.eContents().get(0); + private final RuleCall cRelationshipRelationshipEStringParserRuleCall_5_3_1_0_1 = (RuleCall)cRelationshipRelationshipCrossReference_5_3_1_0.eContents().get(1); + private final Keyword cRightParenthesisKeyword_5_4 = (Keyword)cGroup_5.eContents().get(4); + private final Group cGroup_6 = (Group)cGroup.eContents().get(6); + private final Keyword cAssemblyKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0); + private final Assignment cAssemblyAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1); + private final RuleCall cAssemblyComposedStructureAssemblyParserRuleCall_6_1_0 = (RuleCall)cAssemblyAssignment_6_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7); + + //SubSystem returns repository::SubSystem: + // "SubSystem" name=EString ("providedRoles" "{" providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)* "}")? + // ("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* "}")? "{" ("relationship" "(" + // relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" + // assembly=ComposedStructureAssembly)? "}"; + public ParserRule getRule() { return rule; } + + //"SubSystem" name=EString ("providedRoles" "{" providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)* "}")? + //("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* "}")? "{" ("relationship" "(" + //relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" + //assembly=ComposedStructureAssembly)? "}" + public Group getGroup() { return cGroup; } + + //"SubSystem" + public Keyword getSubSystemKeyword_0() { return cSubSystemKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //("providedRoles" "{" providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)* "}")? + public Group getGroup_2() { return cGroup_2; } + + //"providedRoles" + public Keyword getProvidedRolesKeyword_2_0() { return cProvidedRolesKeyword_2_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2_1() { return cLeftCurlyBracketKeyword_2_1; } + + //providedRoles+=ProvidedRole + public Assignment getProvidedRolesAssignment_2_2() { return cProvidedRolesAssignment_2_2; } + + //ProvidedRole + public RuleCall getProvidedRolesProvidedRoleParserRuleCall_2_2_0() { return cProvidedRolesProvidedRoleParserRuleCall_2_2_0; } + + //("," providedRoles+=ProvidedRole)* + public Group getGroup_2_3() { return cGroup_2_3; } + + //"," + public Keyword getCommaKeyword_2_3_0() { return cCommaKeyword_2_3_0; } + + //providedRoles+=ProvidedRole + public Assignment getProvidedRolesAssignment_2_3_1() { return cProvidedRolesAssignment_2_3_1; } + + //ProvidedRole + public RuleCall getProvidedRolesProvidedRoleParserRuleCall_2_3_1_0() { return cProvidedRolesProvidedRoleParserRuleCall_2_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_2_4() { return cRightCurlyBracketKeyword_2_4; } + + //("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* "}")? + public Group getGroup_3() { return cGroup_3; } + + //"requiredRoles" + public Keyword getRequiredRolesKeyword_3_0() { return cRequiredRolesKeyword_3_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; } + + //requiredRoles+=RequiredRole + public Assignment getRequiredRolesAssignment_3_2() { return cRequiredRolesAssignment_3_2; } + + //RequiredRole + public RuleCall getRequiredRolesRequiredRoleParserRuleCall_3_2_0() { return cRequiredRolesRequiredRoleParserRuleCall_3_2_0; } + + //("," requiredRoles+=RequiredRole)* + public Group getGroup_3_3() { return cGroup_3_3; } + + //"," + public Keyword getCommaKeyword_3_3_0() { return cCommaKeyword_3_3_0; } + + //requiredRoles+=RequiredRole + public Assignment getRequiredRolesAssignment_3_3_1() { return cRequiredRolesAssignment_3_3_1; } + + //RequiredRole + public RuleCall getRequiredRolesRequiredRoleParserRuleCall_3_3_1_0() { return cRequiredRolesRequiredRoleParserRuleCall_3_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_3_4() { return cRightCurlyBracketKeyword_3_4; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } + + //("relationship" "(" relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? + public Group getGroup_5() { return cGroup_5; } + + //"relationship" + public Keyword getRelationshipKeyword_5_0() { return cRelationshipKeyword_5_0; } + + //"(" + public Keyword getLeftParenthesisKeyword_5_1() { return cLeftParenthesisKeyword_5_1; } + + //relationship+=[Relationship|EString] + public Assignment getRelationshipAssignment_5_2() { return cRelationshipAssignment_5_2; } + + //[Relationship|EString] + public CrossReference getRelationshipRelationshipCrossReference_5_2_0() { return cRelationshipRelationshipCrossReference_5_2_0; } + + //EString + public RuleCall getRelationshipRelationshipEStringParserRuleCall_5_2_0_1() { return cRelationshipRelationshipEStringParserRuleCall_5_2_0_1; } + + //("," relationship+=[Relationship|EString])* + public Group getGroup_5_3() { return cGroup_5_3; } + + //"," + public Keyword getCommaKeyword_5_3_0() { return cCommaKeyword_5_3_0; } + + //relationship+=[Relationship|EString] + public Assignment getRelationshipAssignment_5_3_1() { return cRelationshipAssignment_5_3_1; } + + //[Relationship|EString] + public CrossReference getRelationshipRelationshipCrossReference_5_3_1_0() { return cRelationshipRelationshipCrossReference_5_3_1_0; } + + //EString + public RuleCall getRelationshipRelationshipEStringParserRuleCall_5_3_1_0_1() { return cRelationshipRelationshipEStringParserRuleCall_5_3_1_0_1; } + + //")" + public Keyword getRightParenthesisKeyword_5_4() { return cRightParenthesisKeyword_5_4; } + + //("assembly" assembly=ComposedStructureAssembly)? + public Group getGroup_6() { return cGroup_6; } + + //"assembly" + public Keyword getAssemblyKeyword_6_0() { return cAssemblyKeyword_6_0; } + + //assembly=ComposedStructureAssembly + public Assignment getAssemblyAssignment_6_1() { return cAssemblyAssignment_6_1; } + + //ComposedStructureAssembly + public RuleCall getAssemblyComposedStructureAssemblyParserRuleCall_6_1_0() { return cAssemblyComposedStructureAssemblyParserRuleCall_6_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; } + } + + public class ComposedStructureAssemblyElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ComposedStructureAssembly"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cComposedStructureAssemblyAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cComposedStructureAssemblyKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cAssemblyContextsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); + private final Assignment cAssemblyContextsAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2); + private final RuleCall cAssemblyContextsAssemblyContextParserRuleCall_3_2_0 = (RuleCall)cAssemblyContextsAssignment_3_2.eContents().get(0); + private final Group cGroup_3_3 = (Group)cGroup_3.eContents().get(3); + private final Keyword cCommaKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0); + private final Assignment cAssemblyContextsAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1); + private final RuleCall cAssemblyContextsAssemblyContextParserRuleCall_3_3_1_0 = (RuleCall)cAssemblyContextsAssignment_3_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_3_4 = (Keyword)cGroup_3.eContents().get(4); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cAssemblyConnectorsKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1); + private final Assignment cAssemblyConnectorsAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2); + private final RuleCall cAssemblyConnectorsAssemblyConnectorParserRuleCall_4_2_0 = (RuleCall)cAssemblyConnectorsAssignment_4_2.eContents().get(0); + private final Group cGroup_4_3 = (Group)cGroup_4.eContents().get(3); + private final Keyword cCommaKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0); + private final Assignment cAssemblyConnectorsAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1); + private final RuleCall cAssemblyConnectorsAssemblyConnectorParserRuleCall_4_3_1_0 = (RuleCall)cAssemblyConnectorsAssignment_4_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_4_4 = (Keyword)cGroup_4.eContents().get(4); + private final Group cGroup_5 = (Group)cGroup.eContents().get(5); + private final Keyword cProvidedDelegationConnectorsKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1); + private final Assignment cProvidedDelegationConnectorsAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2); + private final RuleCall cProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_2_0 = (RuleCall)cProvidedDelegationConnectorsAssignment_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 cProvidedDelegationConnectorsAssignment_5_3_1 = (Assignment)cGroup_5_3.eContents().get(1); + private final RuleCall cProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_3_1_0 = (RuleCall)cProvidedDelegationConnectorsAssignment_5_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_5_4 = (Keyword)cGroup_5.eContents().get(4); + private final Group cGroup_6 = (Group)cGroup.eContents().get(6); + private final Keyword cRequiredDelegationConnectorsKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1); + private final Assignment cRequiredDelegationConnectorsAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2); + private final RuleCall cRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_2_0 = (RuleCall)cRequiredDelegationConnectorsAssignment_6_2.eContents().get(0); + private final Group cGroup_6_3 = (Group)cGroup_6.eContents().get(3); + private final Keyword cCommaKeyword_6_3_0 = (Keyword)cGroup_6_3.eContents().get(0); + private final Assignment cRequiredDelegationConnectorsAssignment_6_3_1 = (Assignment)cGroup_6_3.eContents().get(1); + private final RuleCall cRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_3_1_0 = (RuleCall)cRequiredDelegationConnectorsAssignment_6_3_1.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_6_4 = (Keyword)cGroup_6.eContents().get(4); + private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7); + + //ComposedStructureAssembly returns repository_composites::ComposedStructureAssembly: + // {repository_composites::ComposedStructureAssembly} "ComposedStructureAssembly" "{" ("assemblyContexts" "{" + // assemblyContexts+=AssemblyContext ("," assemblyContexts+=AssemblyContext)* "}")? ("assemblyConnectors" "{" + // assemblyConnectors+=AssemblyConnector ("," assemblyConnectors+=AssemblyConnector)* "}")? + // ("providedDelegationConnectors" "{" providedDelegationConnectors+=ProvidedDelegationConnector ("," + // providedDelegationConnectors+=ProvidedDelegationConnector)* "}")? ("requiredDelegationConnectors" "{" + // requiredDelegationConnectors+=RequiredDelegationConnector ("," + // requiredDelegationConnectors+=RequiredDelegationConnector)* "}")? "}"; + public ParserRule getRule() { return rule; } + + //{repository_composites::ComposedStructureAssembly} "ComposedStructureAssembly" "{" ("assemblyContexts" "{" + //assemblyContexts+=AssemblyContext ("," assemblyContexts+=AssemblyContext)* "}")? ("assemblyConnectors" "{" + //assemblyConnectors+=AssemblyConnector ("," assemblyConnectors+=AssemblyConnector)* "}")? + //("providedDelegationConnectors" "{" providedDelegationConnectors+=ProvidedDelegationConnector ("," + //providedDelegationConnectors+=ProvidedDelegationConnector)* "}")? ("requiredDelegationConnectors" "{" + //requiredDelegationConnectors+=RequiredDelegationConnector ("," + //requiredDelegationConnectors+=RequiredDelegationConnector)* "}")? "}" + public Group getGroup() { return cGroup; } + + //{repository_composites::ComposedStructureAssembly} + public Action getComposedStructureAssemblyAction_0() { return cComposedStructureAssemblyAction_0; } + + //"ComposedStructureAssembly" + public Keyword getComposedStructureAssemblyKeyword_1() { return cComposedStructureAssemblyKeyword_1; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //("assemblyContexts" "{" assemblyContexts+=AssemblyContext ("," assemblyContexts+=AssemblyContext)* "}")? + public Group getGroup_3() { return cGroup_3; } + + //"assemblyContexts" + public Keyword getAssemblyContextsKeyword_3_0() { return cAssemblyContextsKeyword_3_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; } + + //assemblyContexts+=AssemblyContext + public Assignment getAssemblyContextsAssignment_3_2() { return cAssemblyContextsAssignment_3_2; } + + //AssemblyContext + public RuleCall getAssemblyContextsAssemblyContextParserRuleCall_3_2_0() { return cAssemblyContextsAssemblyContextParserRuleCall_3_2_0; } + + //("," assemblyContexts+=AssemblyContext)* + public Group getGroup_3_3() { return cGroup_3_3; } + + //"," + public Keyword getCommaKeyword_3_3_0() { return cCommaKeyword_3_3_0; } + + //assemblyContexts+=AssemblyContext + public Assignment getAssemblyContextsAssignment_3_3_1() { return cAssemblyContextsAssignment_3_3_1; } + + //AssemblyContext + public RuleCall getAssemblyContextsAssemblyContextParserRuleCall_3_3_1_0() { return cAssemblyContextsAssemblyContextParserRuleCall_3_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_3_4() { return cRightCurlyBracketKeyword_3_4; } + + //("assemblyConnectors" "{" assemblyConnectors+=AssemblyConnector ("," assemblyConnectors+=AssemblyConnector)* "}")? + public Group getGroup_4() { return cGroup_4; } + + //"assemblyConnectors" + public Keyword getAssemblyConnectorsKeyword_4_0() { return cAssemblyConnectorsKeyword_4_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; } + + //assemblyConnectors+=AssemblyConnector + public Assignment getAssemblyConnectorsAssignment_4_2() { return cAssemblyConnectorsAssignment_4_2; } + + //AssemblyConnector + public RuleCall getAssemblyConnectorsAssemblyConnectorParserRuleCall_4_2_0() { return cAssemblyConnectorsAssemblyConnectorParserRuleCall_4_2_0; } + + //("," assemblyConnectors+=AssemblyConnector)* + public Group getGroup_4_3() { return cGroup_4_3; } + + //"," + public Keyword getCommaKeyword_4_3_0() { return cCommaKeyword_4_3_0; } + + //assemblyConnectors+=AssemblyConnector + public Assignment getAssemblyConnectorsAssignment_4_3_1() { return cAssemblyConnectorsAssignment_4_3_1; } + + //AssemblyConnector + public RuleCall getAssemblyConnectorsAssemblyConnectorParserRuleCall_4_3_1_0() { return cAssemblyConnectorsAssemblyConnectorParserRuleCall_4_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_4_4() { return cRightCurlyBracketKeyword_4_4; } + + //("providedDelegationConnectors" "{" providedDelegationConnectors+=ProvidedDelegationConnector ("," + //providedDelegationConnectors+=ProvidedDelegationConnector)* "}")? + public Group getGroup_5() { return cGroup_5; } + + //"providedDelegationConnectors" + public Keyword getProvidedDelegationConnectorsKeyword_5_0() { return cProvidedDelegationConnectorsKeyword_5_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_5_1() { return cLeftCurlyBracketKeyword_5_1; } + + //providedDelegationConnectors+=ProvidedDelegationConnector + public Assignment getProvidedDelegationConnectorsAssignment_5_2() { return cProvidedDelegationConnectorsAssignment_5_2; } + + //ProvidedDelegationConnector + public RuleCall getProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_2_0() { return cProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_2_0; } + + //("," providedDelegationConnectors+=ProvidedDelegationConnector)* + public Group getGroup_5_3() { return cGroup_5_3; } + + //"," + public Keyword getCommaKeyword_5_3_0() { return cCommaKeyword_5_3_0; } + + //providedDelegationConnectors+=ProvidedDelegationConnector + public Assignment getProvidedDelegationConnectorsAssignment_5_3_1() { return cProvidedDelegationConnectorsAssignment_5_3_1; } + + //ProvidedDelegationConnector + public RuleCall getProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_3_1_0() { return cProvidedDelegationConnectorsProvidedDelegationConnectorParserRuleCall_5_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_5_4() { return cRightCurlyBracketKeyword_5_4; } + + //("requiredDelegationConnectors" "{" requiredDelegationConnectors+=RequiredDelegationConnector ("," + //requiredDelegationConnectors+=RequiredDelegationConnector)* "}")? + public Group getGroup_6() { return cGroup_6; } + + //"requiredDelegationConnectors" + public Keyword getRequiredDelegationConnectorsKeyword_6_0() { return cRequiredDelegationConnectorsKeyword_6_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_6_1() { return cLeftCurlyBracketKeyword_6_1; } + + //requiredDelegationConnectors+=RequiredDelegationConnector + public Assignment getRequiredDelegationConnectorsAssignment_6_2() { return cRequiredDelegationConnectorsAssignment_6_2; } + + //RequiredDelegationConnector + public RuleCall getRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_2_0() { return cRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_2_0; } + + //("," requiredDelegationConnectors+=RequiredDelegationConnector)* + public Group getGroup_6_3() { return cGroup_6_3; } + + //"," + public Keyword getCommaKeyword_6_3_0() { return cCommaKeyword_6_3_0; } + + //requiredDelegationConnectors+=RequiredDelegationConnector + public Assignment getRequiredDelegationConnectorsAssignment_6_3_1() { return cRequiredDelegationConnectorsAssignment_6_3_1; } + + //RequiredDelegationConnector + public RuleCall getRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_3_1_0() { return cRequiredDelegationConnectorsRequiredDelegationConnectorParserRuleCall_6_3_1_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_6_4() { return cRightCurlyBracketKeyword_6_4; } + + //"}" + public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; } + } + + public class AssemblyContextElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AssemblyContext"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cAssemblyContextKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Keyword cEncapsulatedComponentKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cEncapsulatedComponentAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final CrossReference cEncapsulatedComponentRepositoryComponentCrossReference_4_0 = (CrossReference)cEncapsulatedComponentAssignment_4.eContents().get(0); + private final RuleCall cEncapsulatedComponentRepositoryComponentEStringParserRuleCall_4_0_1 = (RuleCall)cEncapsulatedComponentRepositoryComponentCrossReference_4_0.eContents().get(1); + private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //AssemblyContext returns repository_composites::AssemblyContext: + // "AssemblyContext" name=EString "{" "encapsulatedComponent" + // encapsulatedComponent=[repository::RepositoryComponent|EString] "}"; + public ParserRule getRule() { return rule; } + + //"AssemblyContext" name=EString "{" "encapsulatedComponent" + //encapsulatedComponent=[repository::RepositoryComponent|EString] "}" + public Group getGroup() { return cGroup; } + + //"AssemblyContext" + public Keyword getAssemblyContextKeyword_0() { return cAssemblyContextKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //"encapsulatedComponent" + public Keyword getEncapsulatedComponentKeyword_3() { return cEncapsulatedComponentKeyword_3; } + + //encapsulatedComponent=[repository::RepositoryComponent|EString] + public Assignment getEncapsulatedComponentAssignment_4() { return cEncapsulatedComponentAssignment_4; } + + //[repository::RepositoryComponent|EString] + public CrossReference getEncapsulatedComponentRepositoryComponentCrossReference_4_0() { return cEncapsulatedComponentRepositoryComponentCrossReference_4_0; } + + //EString + public RuleCall getEncapsulatedComponentRepositoryComponentEStringParserRuleCall_4_0_1() { return cEncapsulatedComponentRepositoryComponentEStringParserRuleCall_4_0_1; } + + //"}" + public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } + } + + public class AssemblyConnectorElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AssemblyConnector"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cAssemblyConnectorKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Keyword cRequiredRoleKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cRequiredRoleAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final CrossReference cRequiredRoleRequiredRoleCrossReference_4_0 = (CrossReference)cRequiredRoleAssignment_4.eContents().get(0); + private final RuleCall cRequiredRoleRequiredRoleEStringParserRuleCall_4_0_1 = (RuleCall)cRequiredRoleRequiredRoleCrossReference_4_0.eContents().get(1); + private final Keyword cProvidedRoleKeyword_5 = (Keyword)cGroup.eContents().get(5); + private final Assignment cProvidedRoleAssignment_6 = (Assignment)cGroup.eContents().get(6); + private final CrossReference cProvidedRoleProvidedRoleCrossReference_6_0 = (CrossReference)cProvidedRoleAssignment_6.eContents().get(0); + private final RuleCall cProvidedRoleProvidedRoleEStringParserRuleCall_6_0_1 = (RuleCall)cProvidedRoleProvidedRoleCrossReference_6_0.eContents().get(1); + private final Keyword cProvidingAssemblyContextKeyword_7 = (Keyword)cGroup.eContents().get(7); + private final Assignment cProvidingAssemblyContextAssignment_8 = (Assignment)cGroup.eContents().get(8); + private final CrossReference cProvidingAssemblyContextAssemblyContextCrossReference_8_0 = (CrossReference)cProvidingAssemblyContextAssignment_8.eContents().get(0); + private final RuleCall cProvidingAssemblyContextAssemblyContextEStringParserRuleCall_8_0_1 = (RuleCall)cProvidingAssemblyContextAssemblyContextCrossReference_8_0.eContents().get(1); + private final Keyword cRequiringAssemblyContextKeyword_9 = (Keyword)cGroup.eContents().get(9); + private final Assignment cRequiringAssemblyContextAssignment_10 = (Assignment)cGroup.eContents().get(10); + private final CrossReference cRequiringAssemblyContextAssemblyContextCrossReference_10_0 = (CrossReference)cRequiringAssemblyContextAssignment_10.eContents().get(0); + private final RuleCall cRequiringAssemblyContextAssemblyContextEStringParserRuleCall_10_0_1 = (RuleCall)cRequiringAssemblyContextAssemblyContextCrossReference_10_0.eContents().get(1); + private final Keyword cRightCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11); + + //AssemblyConnector returns repository_composites::AssemblyConnector: + // "AssemblyConnector" name=EString "{" "requiredRole" requiredRole=[repository::RequiredRole|EString] "providedRole" + // providedRole=[repository::ProvidedRole|EString] "providingAssemblyContext" + // providingAssemblyContext=[repository_composites::AssemblyContext|EString] "requiringAssemblyContext" + // requiringAssemblyContext=[repository_composites::AssemblyContext|EString] "}"; + public ParserRule getRule() { return rule; } + + //"AssemblyConnector" name=EString "{" "requiredRole" requiredRole=[repository::RequiredRole|EString] "providedRole" + //providedRole=[repository::ProvidedRole|EString] "providingAssemblyContext" + //providingAssemblyContext=[repository_composites::AssemblyContext|EString] "requiringAssemblyContext" + //requiringAssemblyContext=[repository_composites::AssemblyContext|EString] "}" + public Group getGroup() { return cGroup; } + + //"AssemblyConnector" + public Keyword getAssemblyConnectorKeyword_0() { return cAssemblyConnectorKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //"requiredRole" + public Keyword getRequiredRoleKeyword_3() { return cRequiredRoleKeyword_3; } + + //requiredRole=[repository::RequiredRole|EString] + public Assignment getRequiredRoleAssignment_4() { return cRequiredRoleAssignment_4; } + + //[repository::RequiredRole|EString] + public CrossReference getRequiredRoleRequiredRoleCrossReference_4_0() { return cRequiredRoleRequiredRoleCrossReference_4_0; } + + //EString + public RuleCall getRequiredRoleRequiredRoleEStringParserRuleCall_4_0_1() { return cRequiredRoleRequiredRoleEStringParserRuleCall_4_0_1; } + + //"providedRole" + public Keyword getProvidedRoleKeyword_5() { return cProvidedRoleKeyword_5; } + + //providedRole=[repository::ProvidedRole|EString] + public Assignment getProvidedRoleAssignment_6() { return cProvidedRoleAssignment_6; } + + //[repository::ProvidedRole|EString] + public CrossReference getProvidedRoleProvidedRoleCrossReference_6_0() { return cProvidedRoleProvidedRoleCrossReference_6_0; } + + //EString + public RuleCall getProvidedRoleProvidedRoleEStringParserRuleCall_6_0_1() { return cProvidedRoleProvidedRoleEStringParserRuleCall_6_0_1; } + + //"providingAssemblyContext" + public Keyword getProvidingAssemblyContextKeyword_7() { return cProvidingAssemblyContextKeyword_7; } + + //providingAssemblyContext=[repository_composites::AssemblyContext|EString] + public Assignment getProvidingAssemblyContextAssignment_8() { return cProvidingAssemblyContextAssignment_8; } + + //[repository_composites::AssemblyContext|EString] + public CrossReference getProvidingAssemblyContextAssemblyContextCrossReference_8_0() { return cProvidingAssemblyContextAssemblyContextCrossReference_8_0; } + + //EString + public RuleCall getProvidingAssemblyContextAssemblyContextEStringParserRuleCall_8_0_1() { return cProvidingAssemblyContextAssemblyContextEStringParserRuleCall_8_0_1; } + + //"requiringAssemblyContext" + public Keyword getRequiringAssemblyContextKeyword_9() { return cRequiringAssemblyContextKeyword_9; } + + //requiringAssemblyContext=[repository_composites::AssemblyContext|EString] + public Assignment getRequiringAssemblyContextAssignment_10() { return cRequiringAssemblyContextAssignment_10; } + + //[repository_composites::AssemblyContext|EString] + public CrossReference getRequiringAssemblyContextAssemblyContextCrossReference_10_0() { return cRequiringAssemblyContextAssemblyContextCrossReference_10_0; } + + //EString + public RuleCall getRequiringAssemblyContextAssemblyContextEStringParserRuleCall_10_0_1() { return cRequiringAssemblyContextAssemblyContextEStringParserRuleCall_10_0_1; } + + //"}" + public Keyword getRightCurlyBracketKeyword_11() { return cRightCurlyBracketKeyword_11; } + } + + public class ProvidedDelegationConnectorElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ProvidedDelegationConnector"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cProvidedDelegationConnectorKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Keyword cAssemblyContextKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cAssemblyContextAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final CrossReference cAssemblyContextAssemblyContextCrossReference_4_0 = (CrossReference)cAssemblyContextAssignment_4.eContents().get(0); + private final RuleCall cAssemblyContextAssemblyContextEStringParserRuleCall_4_0_1 = (RuleCall)cAssemblyContextAssemblyContextCrossReference_4_0.eContents().get(1); + private final Keyword cInnerProvidedRoleKeyword_5 = (Keyword)cGroup.eContents().get(5); + private final Assignment cInnerProvidedRoleAssignment_6 = (Assignment)cGroup.eContents().get(6); + private final CrossReference cInnerProvidedRoleProvidedRoleCrossReference_6_0 = (CrossReference)cInnerProvidedRoleAssignment_6.eContents().get(0); + private final RuleCall cInnerProvidedRoleProvidedRoleEStringParserRuleCall_6_0_1 = (RuleCall)cInnerProvidedRoleProvidedRoleCrossReference_6_0.eContents().get(1); + private final Keyword cOuterProvidedRoleKeyword_7 = (Keyword)cGroup.eContents().get(7); + private final Assignment cOuterProvidedRoleAssignment_8 = (Assignment)cGroup.eContents().get(8); + private final CrossReference cOuterProvidedRoleProvidedRoleCrossReference_8_0 = (CrossReference)cOuterProvidedRoleAssignment_8.eContents().get(0); + private final RuleCall cOuterProvidedRoleProvidedRoleEStringParserRuleCall_8_0_1 = (RuleCall)cOuterProvidedRoleProvidedRoleCrossReference_8_0.eContents().get(1); + private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9); + + //ProvidedDelegationConnector returns repository_composites::ProvidedDelegationConnector: + // "ProvidedDelegationConnector" name=EString "{" "assemblyContext" + // assemblyContext=[repository_composites::AssemblyContext|EString] "innerProvidedRole" + // innerProvidedRole=[repository::ProvidedRole|EString] "outerProvidedRole" + // outerProvidedRole=[repository::ProvidedRole|EString] "}"; + public ParserRule getRule() { return rule; } + + //"ProvidedDelegationConnector" name=EString "{" "assemblyContext" + //assemblyContext=[repository_composites::AssemblyContext|EString] "innerProvidedRole" + //innerProvidedRole=[repository::ProvidedRole|EString] "outerProvidedRole" + //outerProvidedRole=[repository::ProvidedRole|EString] "}" + public Group getGroup() { return cGroup; } + + //"ProvidedDelegationConnector" + public Keyword getProvidedDelegationConnectorKeyword_0() { return cProvidedDelegationConnectorKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //"assemblyContext" + public Keyword getAssemblyContextKeyword_3() { return cAssemblyContextKeyword_3; } + + //assemblyContext=[repository_composites::AssemblyContext|EString] + public Assignment getAssemblyContextAssignment_4() { return cAssemblyContextAssignment_4; } + + //[repository_composites::AssemblyContext|EString] + public CrossReference getAssemblyContextAssemblyContextCrossReference_4_0() { return cAssemblyContextAssemblyContextCrossReference_4_0; } + + //EString + public RuleCall getAssemblyContextAssemblyContextEStringParserRuleCall_4_0_1() { return cAssemblyContextAssemblyContextEStringParserRuleCall_4_0_1; } + + //"innerProvidedRole" + public Keyword getInnerProvidedRoleKeyword_5() { return cInnerProvidedRoleKeyword_5; } + + //innerProvidedRole=[repository::ProvidedRole|EString] + public Assignment getInnerProvidedRoleAssignment_6() { return cInnerProvidedRoleAssignment_6; } + + //[repository::ProvidedRole|EString] + public CrossReference getInnerProvidedRoleProvidedRoleCrossReference_6_0() { return cInnerProvidedRoleProvidedRoleCrossReference_6_0; } + + //EString + public RuleCall getInnerProvidedRoleProvidedRoleEStringParserRuleCall_6_0_1() { return cInnerProvidedRoleProvidedRoleEStringParserRuleCall_6_0_1; } + + //"outerProvidedRole" + public Keyword getOuterProvidedRoleKeyword_7() { return cOuterProvidedRoleKeyword_7; } + + //outerProvidedRole=[repository::ProvidedRole|EString] + public Assignment getOuterProvidedRoleAssignment_8() { return cOuterProvidedRoleAssignment_8; } + + //[repository::ProvidedRole|EString] + public CrossReference getOuterProvidedRoleProvidedRoleCrossReference_8_0() { return cOuterProvidedRoleProvidedRoleCrossReference_8_0; } + + //EString + public RuleCall getOuterProvidedRoleProvidedRoleEStringParserRuleCall_8_0_1() { return cOuterProvidedRoleProvidedRoleEStringParserRuleCall_8_0_1; } + + //"}" + public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; } + } + + public class RequiredDelegationConnectorElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RequiredDelegationConnector"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cRequiredDelegationConnectorKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Keyword cAssemblyContextKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cAssemblyContextAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final CrossReference cAssemblyContextAssemblyContextCrossReference_4_0 = (CrossReference)cAssemblyContextAssignment_4.eContents().get(0); + private final RuleCall cAssemblyContextAssemblyContextEStringParserRuleCall_4_0_1 = (RuleCall)cAssemblyContextAssemblyContextCrossReference_4_0.eContents().get(1); + private final Keyword cInnerRequiredRoleKeyword_5 = (Keyword)cGroup.eContents().get(5); + private final Assignment cInnerRequiredRoleAssignment_6 = (Assignment)cGroup.eContents().get(6); + private final CrossReference cInnerRequiredRoleRequiredRoleCrossReference_6_0 = (CrossReference)cInnerRequiredRoleAssignment_6.eContents().get(0); + private final RuleCall cInnerRequiredRoleRequiredRoleEStringParserRuleCall_6_0_1 = (RuleCall)cInnerRequiredRoleRequiredRoleCrossReference_6_0.eContents().get(1); + private final Keyword cOuterRequiredRoleKeyword_7 = (Keyword)cGroup.eContents().get(7); + private final Assignment cOuterRequiredRoleAssignment_8 = (Assignment)cGroup.eContents().get(8); + private final CrossReference cOuterRequiredRoleRequiredRoleCrossReference_8_0 = (CrossReference)cOuterRequiredRoleAssignment_8.eContents().get(0); + private final RuleCall cOuterRequiredRoleRequiredRoleEStringParserRuleCall_8_0_1 = (RuleCall)cOuterRequiredRoleRequiredRoleCrossReference_8_0.eContents().get(1); + private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9); + + //RequiredDelegationConnector returns repository_composites::RequiredDelegationConnector: + // "RequiredDelegationConnector" name=EString "{" "assemblyContext" + // assemblyContext=[repository_composites::AssemblyContext|EString] "innerRequiredRole" + // innerRequiredRole=[repository::RequiredRole|EString] "outerRequiredRole" + // outerRequiredRole=[repository::RequiredRole|EString] "}"; + public ParserRule getRule() { return rule; } + + //"RequiredDelegationConnector" name=EString "{" "assemblyContext" + //assemblyContext=[repository_composites::AssemblyContext|EString] "innerRequiredRole" + //innerRequiredRole=[repository::RequiredRole|EString] "outerRequiredRole" + //outerRequiredRole=[repository::RequiredRole|EString] "}" + public Group getGroup() { return cGroup; } + + //"RequiredDelegationConnector" + public Keyword getRequiredDelegationConnectorKeyword_0() { return cRequiredDelegationConnectorKeyword_0; } + + //name=EString + public Assignment getNameAssignment_1() { return cNameAssignment_1; } + + //EString + public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + + //"assemblyContext" + public Keyword getAssemblyContextKeyword_3() { return cAssemblyContextKeyword_3; } + + //assemblyContext=[repository_composites::AssemblyContext|EString] + public Assignment getAssemblyContextAssignment_4() { return cAssemblyContextAssignment_4; } + + //[repository_composites::AssemblyContext|EString] + public CrossReference getAssemblyContextAssemblyContextCrossReference_4_0() { return cAssemblyContextAssemblyContextCrossReference_4_0; } + + //EString + public RuleCall getAssemblyContextAssemblyContextEStringParserRuleCall_4_0_1() { return cAssemblyContextAssemblyContextEStringParserRuleCall_4_0_1; } + + //"innerRequiredRole" + public Keyword getInnerRequiredRoleKeyword_5() { return cInnerRequiredRoleKeyword_5; } + + //innerRequiredRole=[repository::RequiredRole|EString] + public Assignment getInnerRequiredRoleAssignment_6() { return cInnerRequiredRoleAssignment_6; } + + //[repository::RequiredRole|EString] + public CrossReference getInnerRequiredRoleRequiredRoleCrossReference_6_0() { return cInnerRequiredRoleRequiredRoleCrossReference_6_0; } + + //EString + public RuleCall getInnerRequiredRoleRequiredRoleEStringParserRuleCall_6_0_1() { return cInnerRequiredRoleRequiredRoleEStringParserRuleCall_6_0_1; } + + //"outerRequiredRole" + public Keyword getOuterRequiredRoleKeyword_7() { return cOuterRequiredRoleKeyword_7; } + + //outerRequiredRole=[repository::RequiredRole|EString] + public Assignment getOuterRequiredRoleAssignment_8() { return cOuterRequiredRoleAssignment_8; } + + //[repository::RequiredRole|EString] + public CrossReference getOuterRequiredRoleRequiredRoleCrossReference_8_0() { return cOuterRequiredRoleRequiredRoleCrossReference_8_0; } + + //EString + public RuleCall getOuterRequiredRoleRequiredRoleEStringParserRuleCall_8_0_1() { return cOuterRequiredRoleRequiredRoleEStringParserRuleCall_8_0_1; } + + //"}" + public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; } + } + + + public class PrimitiveTypeEnumElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "PrimitiveTypeEnum"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cINTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cINTINTKeyword_0_0 = (Keyword)cINTEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cSTRINGEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cSTRINGSTRINGKeyword_1_0 = (Keyword)cSTRINGEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cBOOLEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cBOOLBOOLKeyword_2_0 = (Keyword)cBOOLEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cDOUBLEEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cDOUBLEDOUBLEKeyword_3_0 = (Keyword)cDOUBLEEnumLiteralDeclaration_3.eContents().get(0); + private final EnumLiteralDeclaration cCHAREnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); + private final Keyword cCHARCHARKeyword_4_0 = (Keyword)cCHAREnumLiteralDeclaration_4.eContents().get(0); + private final EnumLiteralDeclaration cBYTEEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); + private final Keyword cBYTEBYTEKeyword_5_0 = (Keyword)cBYTEEnumLiteralDeclaration_5.eContents().get(0); + private final EnumLiteralDeclaration cLONGEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6); + private final Keyword cLONGLONGKeyword_6_0 = (Keyword)cLONGEnumLiteralDeclaration_6.eContents().get(0); + + //enum PrimitiveTypeEnum returns repository::PrimitiveTypeEnum: + // INT | STRING | BOOL | DOUBLE | CHAR | BYTE | LONG; + public EnumRule getRule() { return rule; } + + //INT | STRING | BOOL | DOUBLE | CHAR | BYTE | LONG + public Alternatives getAlternatives() { return cAlternatives; } + + //INT + public EnumLiteralDeclaration getINTEnumLiteralDeclaration_0() { return cINTEnumLiteralDeclaration_0; } + + //"INT" + public Keyword getINTINTKeyword_0_0() { return cINTINTKeyword_0_0; } + + //STRING + public EnumLiteralDeclaration getSTRINGEnumLiteralDeclaration_1() { return cSTRINGEnumLiteralDeclaration_1; } + + //"STRING" + public Keyword getSTRINGSTRINGKeyword_1_0() { return cSTRINGSTRINGKeyword_1_0; } + + //BOOL + public EnumLiteralDeclaration getBOOLEnumLiteralDeclaration_2() { return cBOOLEnumLiteralDeclaration_2; } + + //"BOOL" + public Keyword getBOOLBOOLKeyword_2_0() { return cBOOLBOOLKeyword_2_0; } + + //DOUBLE + public EnumLiteralDeclaration getDOUBLEEnumLiteralDeclaration_3() { return cDOUBLEEnumLiteralDeclaration_3; } + + //"DOUBLE" + public Keyword getDOUBLEDOUBLEKeyword_3_0() { return cDOUBLEDOUBLEKeyword_3_0; } + + //CHAR + public EnumLiteralDeclaration getCHAREnumLiteralDeclaration_4() { return cCHAREnumLiteralDeclaration_4; } + + //"CHAR" + public Keyword getCHARCHARKeyword_4_0() { return cCHARCHARKeyword_4_0; } + + //BYTE + public EnumLiteralDeclaration getBYTEEnumLiteralDeclaration_5() { return cBYTEEnumLiteralDeclaration_5; } + + //"BYTE" + public Keyword getBYTEBYTEKeyword_5_0() { return cBYTEBYTEKeyword_5_0; } + + //LONG + public EnumLiteralDeclaration getLONGEnumLiteralDeclaration_6() { return cLONGEnumLiteralDeclaration_6; } + + //"LONG" + public Keyword getLONGLONGKeyword_6_0() { return cLONGLONGKeyword_6_0; } + } + + private RepositoryElements pRepository; + private DataTypeElements pDataType; + private RepositoryComponentElements pRepositoryComponent; + private EStringElements pEString; + private InterfaceElements pInterface; + private RepositoryComponent_ImplElements pRepositoryComponent_Impl; + private CollectionDataTypeElements pCollectionDataType; + private CompositeDataTypeElements pCompositeDataType; + private PrimitiveDataTypeElements pPrimitiveDataType; + private InnerDeclarationElements pInnerDeclaration; + private PrimitiveTypeEnumElements unknownRulePrimitiveTypeEnum; + private SignatureElements pSignature; + private ParameterElements pParameter; + private ProvidedRoleElements pProvidedRole; + private RequiredRoleElements pRequiredRole; + private BasicComponentElements pBasicComponent; + private CompositeComponentElements pCompositeComponent; + private SubSystemElements pSubSystem; + private ComposedStructureAssemblyElements pComposedStructureAssembly; + private AssemblyContextElements pAssemblyContext; + private AssemblyConnectorElements pAssemblyConnector; + private ProvidedDelegationConnectorElements pProvidedDelegationConnector; + private RequiredDelegationConnectorElements pRequiredDelegationConnector; + + private final GrammarProvider grammarProvider; + + private TerminalsGrammarAccess gaTerminals; + + @Inject + public MyDslTestGrammarAccess(GrammarProvider grammarProvider, + TerminalsGrammarAccess gaTerminals) { + this.grammarProvider = grammarProvider; + this.gaTerminals = gaTerminals; + } + + public Grammar getGrammar() { + return grammarProvider.getGrammar(this); + } + + + public TerminalsGrammarAccess getTerminalsGrammarAccess() { + return gaTerminals; + } + + + //Repository returns repository::Repository: + // "Repository" name=EString "{" ("datatypes" "{" datatypes+=DataType ("," datatypes+=DataType)* "}")? ("interfaces" "{" + // interfaces+=Interface ("," interfaces+=Interface)* "}")? ("components" "{" components+=RepositoryComponent ("," + // components+=RepositoryComponent)* "}")? "}"; + public RepositoryElements getRepositoryAccess() { + return (pRepository != null) ? pRepository : (pRepository = new RepositoryElements()); + } + + public ParserRule getRepositoryRule() { + return getRepositoryAccess().getRule(); + } + + //DataType returns repository::DataType: + // CollectionDataType | CompositeDataType | PrimitiveDataType; + public DataTypeElements getDataTypeAccess() { + return (pDataType != null) ? pDataType : (pDataType = new DataTypeElements()); + } + + public ParserRule getDataTypeRule() { + return getDataTypeAccess().getRule(); + } + + //RepositoryComponent returns repository::RepositoryComponent: + // RepositoryComponent_Impl | BasicComponent | CompositeComponent | SubSystem; + public RepositoryComponentElements getRepositoryComponentAccess() { + return (pRepositoryComponent != null) ? pRepositoryComponent : (pRepositoryComponent = new RepositoryComponentElements()); + } + + public ParserRule getRepositoryComponentRule() { + return getRepositoryComponentAccess().getRule(); + } + + //EString returns ecore::EString: + // STRING | ID; + public EStringElements getEStringAccess() { + return (pEString != null) ? pEString : (pEString = new EStringElements()); + } + + public ParserRule getEStringRule() { + return getEStringAccess().getRule(); + } + + //Interface returns repository::Interface: + // "Interface" name=EString "{" ("parentInterfaces" "(" parentInterfaces+=[repository::Interface|EString] ("," + // parentInterfaces+=[repository::Interface|EString])* ")")? ("signatures" "{" signatures+=Signature ("," + // signatures+=Signature)* "}")? "}"; + public InterfaceElements getInterfaceAccess() { + return (pInterface != null) ? pInterface : (pInterface = new InterfaceElements()); + } + + public ParserRule getInterfaceRule() { + return getInterfaceAccess().getRule(); + } + + //RepositoryComponent_Impl returns repository::RepositoryComponent: + // "RepositoryComponent" name=EString "{" ("relationship" "(" relationship+=[Relationship|EString] ("," + // relationship+=[Relationship|EString])* ")")? ("providedRoles" "{" providedRoles+=ProvidedRole ("," + // providedRoles+=ProvidedRole)* "}")? ("requiredRoles" "{" requiredRoles+=RequiredRole ("," + // requiredRoles+=RequiredRole)* "}")? "}"; + public RepositoryComponent_ImplElements getRepositoryComponent_ImplAccess() { + return (pRepositoryComponent_Impl != null) ? pRepositoryComponent_Impl : (pRepositoryComponent_Impl = new RepositoryComponent_ImplElements()); + } + + public ParserRule getRepositoryComponent_ImplRule() { + return getRepositoryComponent_ImplAccess().getRule(); + } + + //CollectionDataType returns repository::CollectionDataType: + // "CollectionDataType" name=EString "{" "innerType" innerType=[repository::DataType|EString] "}"; + public CollectionDataTypeElements getCollectionDataTypeAccess() { + return (pCollectionDataType != null) ? pCollectionDataType : (pCollectionDataType = new CollectionDataTypeElements()); + } + + public ParserRule getCollectionDataTypeRule() { + return getCollectionDataTypeAccess().getRule(); + } + + //CompositeDataType returns repository::CompositeDataType: + // "CompositeDataType" name=EString "{" ("parentTypes" "(" parentTypes+=[repository::CompositeDataType|EString] ("," + // parentTypes+=[repository::CompositeDataType|EString])* ")")? ("innerDeclarations" "{" + // innerDeclarations+=InnerDeclaration ("," innerDeclarations+=InnerDeclaration)* "}")? "}"; + public CompositeDataTypeElements getCompositeDataTypeAccess() { + return (pCompositeDataType != null) ? pCompositeDataType : (pCompositeDataType = new CompositeDataTypeElements()); + } + + public ParserRule getCompositeDataTypeRule() { + return getCompositeDataTypeAccess().getRule(); + } + + //PrimitiveDataType returns repository::PrimitiveDataType: + // "PrimitiveDataType" "{" "type" type=PrimitiveTypeEnum "ref" name=EString "}"; + public PrimitiveDataTypeElements getPrimitiveDataTypeAccess() { + return (pPrimitiveDataType != null) ? pPrimitiveDataType : (pPrimitiveDataType = new PrimitiveDataTypeElements()); + } + + public ParserRule getPrimitiveDataTypeRule() { + return getPrimitiveDataTypeAccess().getRule(); + } + + //InnerDeclaration returns repository::InnerDeclaration: + // "InnerDeclaration" name=EString "{" "dataType" dataType=[repository::DataType|EString] "}"; + public InnerDeclarationElements getInnerDeclarationAccess() { + return (pInnerDeclaration != null) ? pInnerDeclaration : (pInnerDeclaration = new InnerDeclarationElements()); + } + + public ParserRule getInnerDeclarationRule() { + return getInnerDeclarationAccess().getRule(); + } + + //enum PrimitiveTypeEnum returns repository::PrimitiveTypeEnum: + // INT | STRING | BOOL | DOUBLE | CHAR | BYTE | LONG; + public PrimitiveTypeEnumElements getPrimitiveTypeEnumAccess() { + return (unknownRulePrimitiveTypeEnum != null) ? unknownRulePrimitiveTypeEnum : (unknownRulePrimitiveTypeEnum = new PrimitiveTypeEnumElements()); + } + + public EnumRule getPrimitiveTypeEnumRule() { + return getPrimitiveTypeEnumAccess().getRule(); + } + + //Signature returns repository::Signature: + // (returnType=[repository::DataType|EString] | "void") name=EString "(" (parameters+=Parameter ("," + // parameters+=Parameter)*)? ")"; + public SignatureElements getSignatureAccess() { + return (pSignature != null) ? pSignature : (pSignature = new SignatureElements()); + } + + public ParserRule getSignatureRule() { + return getSignatureAccess().getRule(); + } + + //Parameter returns repository::Parameter: + // dataType=[repository::DataType|EString] name=EString; + public ParameterElements getParameterAccess() { + return (pParameter != null) ? pParameter : (pParameter = new ParameterElements()); + } + + public ParserRule getParameterRule() { + return getParameterAccess().getRule(); + } + + //ProvidedRole returns repository::ProvidedRole: + // {repository::ProvidedRole} "provides" (interface+=[repository::Interface|EString] ","?)*; + public ProvidedRoleElements getProvidedRoleAccess() { + return (pProvidedRole != null) ? pProvidedRole : (pProvidedRole = new ProvidedRoleElements()); + } + + public ParserRule getProvidedRoleRule() { + return getProvidedRoleAccess().getRule(); + } + + //RequiredRole returns repository::RequiredRole: + // {repository::RequiredRole} "requires" (interface+=[repository::Interface|EString] ","?)*; + public RequiredRoleElements getRequiredRoleAccess() { + return (pRequiredRole != null) ? pRequiredRole : (pRequiredRole = new RequiredRoleElements()); + } + + public ParserRule getRequiredRoleRule() { + return getRequiredRoleAccess().getRule(); + } + + //BasicComponent returns repository::BasicComponent: + // "BasicComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + // (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" + // relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? "}"; + public BasicComponentElements getBasicComponentAccess() { + return (pBasicComponent != null) ? pBasicComponent : (pBasicComponent = new BasicComponentElements()); + } + + public ParserRule getBasicComponentRule() { + return getBasicComponentAccess().getRule(); + } + + //CompositeComponent returns repository::CompositeComponent: + // "CompositeComponent" name=EString (providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)*)? + // (requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)*)? "{" ("relationship" "(" + // relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" + // assembly=ComposedStructureAssembly)? "}"; + public CompositeComponentElements getCompositeComponentAccess() { + return (pCompositeComponent != null) ? pCompositeComponent : (pCompositeComponent = new CompositeComponentElements()); + } + + public ParserRule getCompositeComponentRule() { + return getCompositeComponentAccess().getRule(); + } + + //SubSystem returns repository::SubSystem: + // "SubSystem" name=EString ("providedRoles" "{" providedRoles+=ProvidedRole ("," providedRoles+=ProvidedRole)* "}")? + // ("requiredRoles" "{" requiredRoles+=RequiredRole ("," requiredRoles+=RequiredRole)* "}")? "{" ("relationship" "(" + // relationship+=[Relationship|EString] ("," relationship+=[Relationship|EString])* ")")? ("assembly" + // assembly=ComposedStructureAssembly)? "}"; + public SubSystemElements getSubSystemAccess() { + return (pSubSystem != null) ? pSubSystem : (pSubSystem = new SubSystemElements()); + } + + public ParserRule getSubSystemRule() { + return getSubSystemAccess().getRule(); + } + + //ComposedStructureAssembly returns repository_composites::ComposedStructureAssembly: + // {repository_composites::ComposedStructureAssembly} "ComposedStructureAssembly" "{" ("assemblyContexts" "{" + // assemblyContexts+=AssemblyContext ("," assemblyContexts+=AssemblyContext)* "}")? ("assemblyConnectors" "{" + // assemblyConnectors+=AssemblyConnector ("," assemblyConnectors+=AssemblyConnector)* "}")? + // ("providedDelegationConnectors" "{" providedDelegationConnectors+=ProvidedDelegationConnector ("," + // providedDelegationConnectors+=ProvidedDelegationConnector)* "}")? ("requiredDelegationConnectors" "{" + // requiredDelegationConnectors+=RequiredDelegationConnector ("," + // requiredDelegationConnectors+=RequiredDelegationConnector)* "}")? "}"; + public ComposedStructureAssemblyElements getComposedStructureAssemblyAccess() { + return (pComposedStructureAssembly != null) ? pComposedStructureAssembly : (pComposedStructureAssembly = new ComposedStructureAssemblyElements()); + } + + public ParserRule getComposedStructureAssemblyRule() { + return getComposedStructureAssemblyAccess().getRule(); + } + + //AssemblyContext returns repository_composites::AssemblyContext: + // "AssemblyContext" name=EString "{" "encapsulatedComponent" + // encapsulatedComponent=[repository::RepositoryComponent|EString] "}"; + public AssemblyContextElements getAssemblyContextAccess() { + return (pAssemblyContext != null) ? pAssemblyContext : (pAssemblyContext = new AssemblyContextElements()); + } + + public ParserRule getAssemblyContextRule() { + return getAssemblyContextAccess().getRule(); + } + + //AssemblyConnector returns repository_composites::AssemblyConnector: + // "AssemblyConnector" name=EString "{" "requiredRole" requiredRole=[repository::RequiredRole|EString] "providedRole" + // providedRole=[repository::ProvidedRole|EString] "providingAssemblyContext" + // providingAssemblyContext=[repository_composites::AssemblyContext|EString] "requiringAssemblyContext" + // requiringAssemblyContext=[repository_composites::AssemblyContext|EString] "}"; + public AssemblyConnectorElements getAssemblyConnectorAccess() { + return (pAssemblyConnector != null) ? pAssemblyConnector : (pAssemblyConnector = new AssemblyConnectorElements()); + } + + public ParserRule getAssemblyConnectorRule() { + return getAssemblyConnectorAccess().getRule(); + } + + //ProvidedDelegationConnector returns repository_composites::ProvidedDelegationConnector: + // "ProvidedDelegationConnector" name=EString "{" "assemblyContext" + // assemblyContext=[repository_composites::AssemblyContext|EString] "innerProvidedRole" + // innerProvidedRole=[repository::ProvidedRole|EString] "outerProvidedRole" + // outerProvidedRole=[repository::ProvidedRole|EString] "}"; + public ProvidedDelegationConnectorElements getProvidedDelegationConnectorAccess() { + return (pProvidedDelegationConnector != null) ? pProvidedDelegationConnector : (pProvidedDelegationConnector = new ProvidedDelegationConnectorElements()); + } + + public ParserRule getProvidedDelegationConnectorRule() { + return getProvidedDelegationConnectorAccess().getRule(); + } + + //RequiredDelegationConnector returns repository_composites::RequiredDelegationConnector: + // "RequiredDelegationConnector" name=EString "{" "assemblyContext" + // assemblyContext=[repository_composites::AssemblyContext|EString] "innerRequiredRole" + // innerRequiredRole=[repository::RequiredRole|EString] "outerRequiredRole" + // outerRequiredRole=[repository::RequiredRole|EString] "}"; + public RequiredDelegationConnectorElements getRequiredDelegationConnectorAccess() { + return (pRequiredDelegationConnector != null) ? pRequiredDelegationConnector : (pRequiredDelegationConnector = new RequiredDelegationConnectorElements()); + } + + public ParserRule getRequiredDelegationConnectorRule() { + return getRequiredDelegationConnectorAccess().getRule(); + } + + //terminal ID: + // "^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*; + public TerminalRule getIDRule() { + return gaTerminals.getIDRule(); + } + + //terminal INT returns ecore::EInt: + // "0".."9"+; + public TerminalRule getINTRule() { + return gaTerminals.getINTRule(); + } + + //terminal STRING: + // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" | + // "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'"; + public TerminalRule getSTRINGRule() { + return gaTerminals.getSTRINGRule(); + } + + //terminal ML_COMMENT: + // "/ *"->"* /"; + public TerminalRule getML_COMMENTRule() { + return gaTerminals.getML_COMMENTRule(); + } + + //terminal SL_COMMENT: + // "//" !("\n" | "\r")* ("\r"? "\n")?; + public TerminalRule getSL_COMMENTRule() { + return gaTerminals.getSL_COMMENTRule(); + } + + //terminal WS: + // (" " | "\t" | "\r" | "\n")+; + public TerminalRule getWSRule() { + return gaTerminals.getWSRule(); + } + + //terminal ANY_OTHER: + // .; + public TerminalRule getANY_OTHERRule() { + return gaTerminals.getANY_OTHERRule(); + } +} diff --git a/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/validation/AbstractMyDslTestJavaValidator.java b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/validation/AbstractMyDslTestJavaValidator.java new file mode 100644 index 0000000000000000000000000000000000000000..e88d3ceb173b4af8be81223e68fd0d0189bf40c8 --- /dev/null +++ b/org.xtext.example.mydslTest/src-gen/org/xtext/example/mydsl/validation/AbstractMyDslTestJavaValidator.java @@ -0,0 +1,19 @@ +package org.xtext.example.mydsl.validation; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.validation.AbstractDeclarativeValidator; + +public class AbstractMyDslTestJavaValidator extends AbstractDeclarativeValidator { + + @Override + protected List<EPackage> getEPackages() { + List<EPackage> result = new ArrayList<EPackage>(); + result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.descartes-research.net/metamodel/repository/0.1")); + result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.descartes-research.net/metamodel/repository_composites/0.1")); + return result; + } + +} diff --git a/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/GenerateMyDslTest.mwe2 b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/GenerateMyDslTest.mwe2 new file mode 100644 index 0000000000000000000000000000000000000000..49b45432df1e216191a7095465f0914100393e13 --- /dev/null +++ b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/GenerateMyDslTest.mwe2 @@ -0,0 +1,122 @@ +module org.xtext.example.mydsl.MyDslTest + +import org.eclipse.emf.mwe.utils.* +import org.eclipse.xtext.generator.* +import org.eclipse.xtext.ui.generator.* + +var grammarURI = "classpath:/org/xtext/example/mydsl/MyDslTest.xtext" +var file.extensions = "mydslTest" +var projectName = "org.xtext.example.mydslTest" +var runtimeProject = "../${projectName}" + +Workflow { + bean = StandaloneSetup { + scanClassPath = true + platformUri = "${runtimeProject}/.." + registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.parameterdependencies.ParameterdependenciesPackage" + registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.system.SystemPackage" + registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.repository.RepositoryPackage" + registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.repository_composites.RepositoryCompositesPackage" + registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.servicebehavior.ServicebehaviorPackage" + registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.functions.FunctionsPackage" + + // registerGenModelFile = "platform:/resource/edu.kit.ipd.descartes.mm/model/applicationlevel.genmodel" + + } + + component = DirectoryCleaner { + directory = "${runtimeProject}/src-gen" + } + + component = DirectoryCleaner { + directory = "${runtimeProject}.ui/src-gen" + } + + component = Generator { + pathRtProject = runtimeProject + pathUiProject = "${runtimeProject}.ui" + projectNameRt = projectName + projectNameUi = "${projectName}.ui" + language = { + uri = grammarURI + fileExtensions = file.extensions + + // Java API to access grammar elements (required by several other fragments) + fragment = grammarAccess.GrammarAccessFragment {} + + // generates Java API for the generated EPackages + // fragment = ecore.EcoreGeneratorFragment {} + + // the serialization component + fragment = parseTreeConstructor.ParseTreeConstructorFragment {} + + // a custom ResourceFactory for use with EMF + fragment = resourceFactory.ResourceFactoryFragment { + fileExtensions = file.extensions + } + + // the Antlr parser + fragment = parser.antlr.XtextAntlrGeneratorFragment { + options = { + classSplitting = true + } + } + + // the Ecore2Xtext specific terminal converter + fragment = ecore2xtext.Ecore2XtextValueConverterServiceFragment {} + + // java-based API for validation + fragment = validation.JavaValidatorFragment { + // composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + } + + // scoping and exporting API + fragment = scoping.ImportURIScopingFragment {} + fragment = exporting.SimpleNamesFragment {} + + // scoping and exporting API + + // fragment = scoping.ImportNamespacesScopingFragment {} + // fragment = exporting.QualifiedNamesFragment {} + + + // formatter API + fragment = ecore2xtext.FormatterFragment {} + + // labeling API + fragment = labeling.LabelProviderFragment {} + + // outline API + fragment = outline.OutlineTreeProviderFragment {} + fragment = outline.QuickOutlineFragment {} + + // java-based API for content assistance + fragment = contentAssist.JavaBasedContentAssistFragment {} + + // antlr parser generator tailored for content assist + fragment = parser.antlr.XtextAntlrUiGeneratorFragment { + options = { + classSplitting = true + } + } + + // provides a compare view + fragment = compare.CompareFragment { + fileExtensions = file.extensions + } + + fragment = builder.BuilderIntegrationFragment {} + + // project wizard (optional) + + // fragment = projectWizard.SimpleProjectWizardFragment { + // generatorProjectName = "${projectName}.generator" + // modelFileExtension = file.extensions + // } + + // quickfix API + fragment = quickfix.QuickfixProviderFragment {} + } + } +} diff --git a/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/MyDslTest.xtext b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/MyDslTest.xtext new file mode 100644 index 0000000000000000000000000000000000000000..e94f998b71f7d3f39fccef3d91a6763ebd880f9f --- /dev/null +++ b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/MyDslTest.xtext @@ -0,0 +1,190 @@ +// automatically generated by Xtext +grammar org.xtext.example.mydsl.MyDslTest with org.eclipse.xtext.common.Terminals + +import "platform:/resource/edu.kit.ipd.descartes.mm/model/parameterdependency.ecore" + +import "platform:/resource/edu.kit.ipd.descartes.mm/model/servicebehavior.ecore" as servicebehavior + +import "http://www.eclipse.org/emf/2002/Ecore" as ecore + +import "platform:/resource/edu.kit.ipd.descartes.mm/model/repository.ecore" as repository + +import "platform:/resource/edu.kit.ipd.descartes.mm/model/repository_composites.ecore" as repository_composites + +import "platform:/resource/edu.kit.ipd.descartes.mm/model/functions.ecore" as functions + +import "platform:/resource/edu.kit.ipd.descartes.mm/model/system.ecore" as system + +import "platform:/resource/edu.kit.ipd.descartes.mm/model/resourceconfiguration.ecore" as resourceconfiguration + +import "platform:/resource/edu.kit.ipd.descartes.mm/model/resourcetype.ecore" as resourcetype + +Repository returns repository::Repository: + 'Repository' + name=EString + '{' + ('datatypes' '{' datatypes+=DataType ( "," datatypes+=DataType)* '}' )? + ('interfaces' '{' interfaces+=Interface ( "," interfaces+=Interface)* '}' )? + ('components' '{' components+=RepositoryComponent ( "," components+=RepositoryComponent)* '}' )? + '}'; + + +DataType returns repository::DataType: + CollectionDataType | CompositeDataType | PrimitiveDataType; + +RepositoryComponent returns repository::RepositoryComponent: + RepositoryComponent_Impl | BasicComponent | CompositeComponent | SubSystem; + +EString returns ecore::EString: + STRING | ID; + +Interface returns repository::Interface: + 'Interface' + name=EString + '{' + ('parentInterfaces' '(' parentInterfaces+=[repository::Interface|EString] ( "," parentInterfaces+=[repository::Interface|EString])* ')' )? + ('signatures' '{' signatures+=Signature ( "," signatures+=Signature)* '}' )? + '}'; + +RepositoryComponent_Impl returns repository::RepositoryComponent: + 'RepositoryComponent' + name=EString + '{' + ('relationship' '(' relationship+=[Relationship|EString] ( "," relationship+=[Relationship|EString])* ')' )? + ('providedRoles' '{' providedRoles+=ProvidedRole ( "," providedRoles+=ProvidedRole)* '}' )? + ('requiredRoles' '{' requiredRoles+=RequiredRole ( "," requiredRoles+=RequiredRole)* '}' )? + '}'; + +CollectionDataType returns repository::CollectionDataType: + 'CollectionDataType' + name=EString + '{' + 'innerType' innerType=[repository::DataType|EString] + '}'; + +CompositeDataType returns repository::CompositeDataType: + 'CompositeDataType' + name=EString + '{' + ('parentTypes' '(' parentTypes+=[repository::CompositeDataType|EString] ( "," parentTypes+=[repository::CompositeDataType|EString])* ')' )? + ('innerDeclarations' '{' innerDeclarations+=InnerDeclaration ( "," innerDeclarations+=InnerDeclaration)* '}' )? + '}'; + +PrimitiveDataType returns repository::PrimitiveDataType: + 'PrimitiveDataType' + '{' + 'type' type=PrimitiveTypeEnum + 'ref' name = EString + '}'; + +InnerDeclaration returns repository::InnerDeclaration: + 'InnerDeclaration' + name=EString + '{' + 'dataType' dataType=[repository::DataType|EString] + '}'; + +enum PrimitiveTypeEnum returns repository::PrimitiveTypeEnum: + INT = 'INT' | STRING = 'STRING' | BOOL = 'BOOL' | DOUBLE = 'DOUBLE' | CHAR = 'CHAR' | BYTE = 'BYTE' | LONG = 'LONG'; + +Signature returns repository::Signature: + ((returnType=[repository::DataType|EString])|('void')) + name=EString + '(' + (parameters+=Parameter ( "," parameters+=Parameter)*)? + ')' + ; + +Parameter returns repository::Parameter: + dataType=[repository::DataType|EString] + name=EString + ; + +ProvidedRole returns repository::ProvidedRole: + {repository::ProvidedRole} + 'provides' + ((interface+=[repository::Interface|EString]) (',')?)* + ; + +RequiredRole returns repository::RequiredRole: + {repository::RequiredRole} + 'requires' + ((interface+=[repository::Interface|EString]) (',')?)* + ; + +BasicComponent returns repository::BasicComponent: + 'BasicComponent' + name=EString + (providedRoles+=ProvidedRole ( "," providedRoles+=ProvidedRole)*)? + (requiredRoles+=RequiredRole ( "," requiredRoles+=RequiredRole)*)? + '{' + ('relationship' '(' relationship+=[Relationship|EString] ( "," relationship+=[Relationship|EString])* ')' )? + '}' + ; + +CompositeComponent returns repository::CompositeComponent: + 'CompositeComponent' + name=EString + (providedRoles+=ProvidedRole ( "," providedRoles+=ProvidedRole)*)? + (requiredRoles+=RequiredRole ( "," requiredRoles+=RequiredRole)*)? + '{' + ('relationship' '(' relationship+=[Relationship|EString] ( "," relationship+=[Relationship|EString])* ')' )? + ('assembly' assembly=ComposedStructureAssembly)? + '}' + ; + +SubSystem returns repository::SubSystem: + 'SubSystem' + name=EString + ('providedRoles' '{' providedRoles+=ProvidedRole ( "," providedRoles+=ProvidedRole)* '}' )? + ('requiredRoles' '{' requiredRoles+=RequiredRole ( "," requiredRoles+=RequiredRole)* '}' )? + '{' + ('relationship' '(' relationship+=[Relationship|EString] ( "," relationship+=[Relationship|EString])* ')' )? + ('assembly' assembly=ComposedStructureAssembly)? + '}' + ; + +ComposedStructureAssembly returns repository_composites::ComposedStructureAssembly: + {repository_composites::ComposedStructureAssembly} + 'ComposedStructureAssembly' + '{' + ('assemblyContexts' '{' assemblyContexts+=AssemblyContext ( "," assemblyContexts+=AssemblyContext)* '}' )? + ('assemblyConnectors' '{' assemblyConnectors+=AssemblyConnector ( "," assemblyConnectors+=AssemblyConnector)* '}' )? + ('providedDelegationConnectors' '{' providedDelegationConnectors+=ProvidedDelegationConnector ( "," providedDelegationConnectors+=ProvidedDelegationConnector)* '}' )? + ('requiredDelegationConnectors' '{' requiredDelegationConnectors+=RequiredDelegationConnector ( "," requiredDelegationConnectors+=RequiredDelegationConnector)* '}' )? + '}'; + +AssemblyContext returns repository_composites::AssemblyContext: + 'AssemblyContext' + name=EString + '{' + 'encapsulatedComponent' encapsulatedComponent=[repository::RepositoryComponent|EString] + '}'; + +AssemblyConnector returns repository_composites::AssemblyConnector: + 'AssemblyConnector' + name=EString + '{' + 'requiredRole' requiredRole=[repository::RequiredRole|EString] + 'providedRole' providedRole=[repository::ProvidedRole|EString] + 'providingAssemblyContext' providingAssemblyContext=[repository_composites::AssemblyContext|EString] + 'requiringAssemblyContext' requiringAssemblyContext=[repository_composites::AssemblyContext|EString] + '}'; + +ProvidedDelegationConnector returns repository_composites::ProvidedDelegationConnector: + 'ProvidedDelegationConnector' + name=EString + '{' + 'assemblyContext' assemblyContext=[repository_composites::AssemblyContext|EString] + 'innerProvidedRole' innerProvidedRole=[repository::ProvidedRole|EString] + 'outerProvidedRole' outerProvidedRole=[repository::ProvidedRole|EString] + '}'; + +RequiredDelegationConnector returns repository_composites::RequiredDelegationConnector: + 'RequiredDelegationConnector' + name=EString + '{' + 'assemblyContext' assemblyContext=[repository_composites::AssemblyContext|EString] + 'innerRequiredRole' innerRequiredRole=[repository::RequiredRole|EString] + 'outerRequiredRole' outerRequiredRole=[repository::RequiredRole|EString] + '}'; diff --git a/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/MyDslTestRuntimeModule.java b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/MyDslTestRuntimeModule.java new file mode 100644 index 0000000000000000000000000000000000000000..7aa22fc3bb0827878d00569452c0564f93db948a --- /dev/null +++ b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/MyDslTestRuntimeModule.java @@ -0,0 +1,11 @@ +/* + * generated by Xtext + */ +package org.xtext.example.mydsl; + +/** + * Use this class to register components to be used at runtime / without the Equinox extension registry. + */ +public class MyDslTestRuntimeModule extends org.xtext.example.mydsl.AbstractMyDslTestRuntimeModule { + +} diff --git a/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/MyDslTestStandaloneSetup.java b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/MyDslTestStandaloneSetup.java new file mode 100644 index 0000000000000000000000000000000000000000..72cc25525c270843e4d72ed80cd16e0630dc9648 --- /dev/null +++ b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/MyDslTestStandaloneSetup.java @@ -0,0 +1,14 @@ + +package org.xtext.example.mydsl; + +/** + * Initialization support for running Xtext languages + * without equinox extension registry + */ +public class MyDslTestStandaloneSetup extends MyDslTestStandaloneSetupGenerated{ + + public static void doSetup() { + new MyDslTestStandaloneSetup().createInjectorAndDoEMFRegistration(); + } +} + diff --git a/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/formatting/MyDslTestFormatter.java b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/formatting/MyDslTestFormatter.java new file mode 100644 index 0000000000000000000000000000000000000000..7996cd8a8228ed0a8ae104778f24375f4a68b0f4 --- /dev/null +++ b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/formatting/MyDslTestFormatter.java @@ -0,0 +1,39 @@ +/* + * generated by Xtext + */ +package org.xtext.example.mydsl.formatting; + +import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter; +import org.eclipse.xtext.formatting.impl.FormattingConfig; +import org.eclipse.xtext.Keyword; +import org.eclipse.xtext.util.Pair; + +/** + * This class contains custom formatting description. + * + * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting + * on how and when to use it + * + * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example + */ +public class MyDslTestFormatter extends AbstractDeclarativeFormatter { + + @Override + protected void configureFormatting(FormattingConfig c) { + org.xtext.example.mydsl.services.MyDslTestGrammarAccess f = (org.xtext.example.mydsl.services.MyDslTestGrammarAccess) getGrammarAccess(); + for(Pair<Keyword, Keyword> pair: f.findKeywordPairs("{", "}")) { + c.setIndentation(pair.getFirst(), pair.getSecond()); + c.setLinewrap(1).after(pair.getFirst()); + c.setLinewrap(1).before(pair.getSecond()); + c.setLinewrap(1).after(pair.getSecond()); + } + for(Keyword comma: f.findKeywords(",")) { + c.setNoLinewrap().before(comma); + c.setNoSpace().before(comma); + c.setLinewrap().after(comma); + } + c.setLinewrap(0, 1, 2).before(f.getSL_COMMENTRule()); + c.setLinewrap(0, 1, 2).before(f.getML_COMMENTRule()); + c.setLinewrap(0, 1, 1).after(f.getML_COMMENTRule()); + } +} diff --git a/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/scoping/MyDslTestScopeProvider.java b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/scoping/MyDslTestScopeProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..20f3604b36b677875ac469de1cbe665be85cf43f --- /dev/null +++ b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/scoping/MyDslTestScopeProvider.java @@ -0,0 +1,17 @@ +/* + * generated by Xtext + */ +package org.xtext.example.mydsl.scoping; + +import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; + +/** + * This class contains custom scoping description. + * + * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#scoping + * on how and when to use it + * + */ +public class MyDslTestScopeProvider extends AbstractDeclarativeScopeProvider { + +} diff --git a/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/validation/MyDslTestJavaValidator.java b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/validation/MyDslTestJavaValidator.java new file mode 100644 index 0000000000000000000000000000000000000000..b392fff17d12e353ccdf7d9183edbe09ff9af3b8 --- /dev/null +++ b/org.xtext.example.mydslTest/src/org/xtext/example/mydsl/validation/MyDslTestJavaValidator.java @@ -0,0 +1,13 @@ +package org.xtext.example.mydsl.validation; + + +public class MyDslTestJavaValidator extends AbstractMyDslTestJavaValidator { + +// @Check +// public void checkGreetingStartsWithCapital(Greeting greeting) { +// if (!Character.isUpperCase(greeting.getName().charAt(0))) { +// warning("Name should start with a capital", MyDslPackage.Literals.GREETING__NAME); +// } +// } + +}