Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2012-05-02 04:50:37 -0400
committerHenrik Rentz-Reichert2012-05-02 04:50:37 -0400
commit6f521ceedc818fa1a45b4ffeeba1f1badcb12572 (patch)
tree9a3804152643d14c8f9b8d105cb901d1cdf77d60 /plugins/org.eclipse.etrice.core.config/src-gen
parent1b0c3ef0efd3aff268c480d58a90350a142f3d34 (diff)
downloadorg.eclipse.etrice-6f521ceedc818fa1a45b4ffeeba1f1badcb12572.tar.gz
org.eclipse.etrice-6f521ceedc818fa1a45b4ffeeba1f1badcb12572.tar.xz
org.eclipse.etrice-6f521ceedc818fa1a45b4ffeeba1f1badcb12572.zip
[config] generated Xtext infrastructure
Diffstat (limited to 'plugins/org.eclipse.etrice.core.config/src-gen')
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/AbstractConfigRuntimeModule.java172
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.ecore15
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.genmodel20
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.xmi208
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/ConfigStandaloneSetupGenerated.java44
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ActorClassConfig.java57
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigFactory.java56
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigModel.java64
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigPackage.java251
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ActorClassConfigImpl.java178
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigFactoryImpl.java122
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigModelImpl.java225
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigPackageImpl.java244
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/util/ConfigAdapterFactory.java156
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/util/ConfigSwitch.java146
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/ConfigAntlrTokenFileProvider.java15
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/ConfigParser.java39
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g222
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.tokens15
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfigLexer.java895
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfigParser.java465
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/serializer/AbstractConfigSemanticSequencer.java88
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/serializer/AbstractConfigSyntacticSequencer.java40
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/services/ConfigGrammarAccess.java214
-rw-r--r--plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/validation/AbstractConfigJavaValidator.java18
25 files changed, 3969 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/AbstractConfigRuntimeModule.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/AbstractConfigRuntimeModule.java
new file mode 100644
index 000000000..3d7784a48
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/AbstractConfigRuntimeModule.java
@@ -0,0 +1,172 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core;
+
+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.eclipse.etrice.core.ConfigRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractConfigRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/eclipse/etrice/core/Config.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.etrice.core.Config");
+ }
+
+ 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("config");
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.eclipse.etrice.core.services.ConfigGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+ return org.eclipse.etrice.core.serializer.AbstractConfigSemanticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+ return org.eclipse.etrice.core.serializer.AbstractConfigSyntacticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.ISerializer> bindISerializer() {
+ return org.eclipse.xtext.serializer.impl.Serializer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+ return org.eclipse.etrice.core.parser.antlr.ConfigParser.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.eclipse.etrice.core.parser.antlr.ConfigAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.eclipse.etrice.core.parser.antlr.internal.InternalConfigLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.etrice.core.parser.antlr.internal.InternalConfigLexer> provideInternalConfigLexer() {
+ return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.etrice.core.parser.antlr.internal.InternalConfigLexer.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.eclipse.etrice.core.parser.antlr.internal.InternalConfigLexer.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.validation.JavaValidatorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.etrice.core.validation.ConfigJavaValidator> bindConfigJavaValidator() {
+ return org.eclipse.etrice.core.validation.ConfigJavaValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+ return org.eclipse.etrice.core.scoping.ConfigScopeProvider.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.ImportedNamespaceAwareLocalScopeProvider.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.QualifiedNamesFragment
+ public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+ return org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider.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);
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
+ return org.eclipse.etrice.core.generator.ConfigGenerator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.eclipse.etrice.core.formatting.ConfigFormatter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public java.lang.ClassLoader bindClassLoaderToInstance() {
+ return getClass().getClassLoader();
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public org.eclipse.xtext.common.types.TypesFactory bindTypesFactoryToInstance() {
+ return org.eclipse.xtext.common.types.TypesFactory.eINSTANCE;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+ return org.eclipse.xtext.common.types.access.ClasspathTypeProviderFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.ClasspathBasedTypeScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class;
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.ecore b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.ecore
new file mode 100644
index 000000000..f9ec98047
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.ecore
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage 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" name="config"
+ nsURI="http://www.eclipse.org/etrice/core/Config" nsPrefix="config">
+ <eClassifiers xsi:type="ecore:EClass" name="ConfigModel">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actorClassConfigs" upperBound="-1"
+ eType="#//ActorClassConfig" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actorInstanceConfigs" unique="false"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActorClassConfig">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actorClass" eType="ecore:EClass ../../../../../../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.ecore#//ActorClass"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.genmodel b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.genmodel
new file mode 100644
index 000000000..53ecbdd08
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.genmodel
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.etrice.core.config/src-gen"
+ editDirectory="/org.eclipse.etrice.core.config.edit/src" editorDirectory="/org.eclipse.etrice.core.config.editor/src"
+ modelPluginID="org.eclipse.etrice.core.config" forceOverwrite="true" modelName="Config"
+ updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ complianceLevel="5.0" copyrightFields="false" editPluginID="org.eclipse.etrice.core.config.edit"
+ editorPluginID="org.eclipse.etrice.core.config.editor" usedGenPackages="../../../../../../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.genmodel#//room">
+ <genPackages prefix="Config" basePackage="org.eclipse.etrice.core" disposableProviderFactory="true"
+ ecorePackage="Config.ecore#/">
+ <genClasses ecoreClass="Config.ecore#//ConfigModel">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Config.ecore#//ConfigModel/actorClassConfigs"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Config.ecore#//ConfigModel/actorInstanceConfigs"/>
+ </genClasses>
+ <genClasses ecoreClass="Config.ecore#//ActorClassConfig">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Config.ecore#//ActorClassConfig/actorClass"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.xmi b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.xmi
new file mode 100644
index 000000000..ff1304b63
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/Config.xmi
@@ -0,0 +1,208 @@
+<?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.eclipse.etrice.core.Config" usedGrammars="/1">
+ <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="config">
+ <ePackage href="http://www.eclipse.org/etrice/core/Config#/"/>
+ </metamodelDeclarations>
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
+ <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ </metamodelDeclarations>
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="room">
+ <ePackage href="http://www.eclipse.org/etrice/Room#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:ParserRule" name="ConfigModel">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/core/Config#//ConfigModel"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="actorClassConfigs" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="actorInstanceConfigs" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ActorClassConfig">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/core/Config#//ActorClassConfig"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="ActorClassConfig"/>
+ <elements xsi:type="xtext:Assignment" feature="actorClass" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.2">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/etrice/Room#//ActorClass"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ActorInstanceConfig">
+ <type metamodel="/0/@metamodelDeclarations.1">
+ <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="ActorInstanceConfig"/>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <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="&quot;"/>
+ <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="&quot;"/>
+ <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="&quot;"/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ </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="&quot;"/>
+ <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="&#xA;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ </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="&#x9;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ </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/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/ConfigStandaloneSetupGenerated.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/ConfigStandaloneSetupGenerated.java
new file mode 100644
index 000000000..aa48b185e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/ConfigStandaloneSetupGenerated.java
@@ -0,0 +1,44 @@
+
+package org.eclipse.etrice.core;
+
+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 ConfigStandaloneSetupGenerated 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.eclipse.etrice.core.ConfigRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/etrice/core/Config")) {
+ EPackage.Registry.INSTANCE.put("http://www.eclipse.org/etrice/core/Config", org.eclipse.etrice.core.config.ConfigPackage.eINSTANCE);
+ }
+
+ 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("config", resourceFactory);
+ org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("config", serviceProvider);
+
+
+
+
+
+ }
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ActorClassConfig.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ActorClassConfig.java
new file mode 100644
index 000000000..6ee868669
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ActorClassConfig.java
@@ -0,0 +1,57 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.etrice.core.room.ActorClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Actor Class Config</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.core.config.ActorClassConfig#getActorClass <em>Actor Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.core.config.ConfigPackage#getActorClassConfig()
+ * @model
+ * @generated
+ */
+public interface ActorClassConfig extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Actor Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actor Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actor Class</em>' reference.
+ * @see #setActorClass(ActorClass)
+ * @see org.eclipse.etrice.core.config.ConfigPackage#getActorClassConfig_ActorClass()
+ * @model
+ * @generated
+ */
+ ActorClass getActorClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.etrice.core.config.ActorClassConfig#getActorClass <em>Actor Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Actor Class</em>' reference.
+ * @see #getActorClass()
+ * @generated
+ */
+ void setActorClass(ActorClass value);
+
+} // ActorClassConfig
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigFactory.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigFactory.java
new file mode 100644
index 000000000..09163a347
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigFactory.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.core.config.ConfigPackage
+ * @generated
+ */
+public interface ConfigFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ConfigFactory eINSTANCE = org.eclipse.etrice.core.config.impl.ConfigFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model</em>'.
+ * @generated
+ */
+ ConfigModel createConfigModel();
+
+ /**
+ * Returns a new object of class '<em>Actor Class Config</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Actor Class Config</em>'.
+ * @generated
+ */
+ ActorClassConfig createActorClassConfig();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ConfigPackage getConfigPackage();
+
+} //ConfigFactory
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigModel.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigModel.java
new file mode 100644
index 000000000..27c9244c6
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigModel.java
@@ -0,0 +1,64 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.core.config.ConfigModel#getActorClassConfigs <em>Actor Class Configs</em>}</li>
+ * <li>{@link org.eclipse.etrice.core.config.ConfigModel#getActorInstanceConfigs <em>Actor Instance Configs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.etrice.core.config.ConfigPackage#getConfigModel()
+ * @model
+ * @generated
+ */
+public interface ConfigModel extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Actor Class Configs</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.etrice.core.config.ActorClassConfig}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actor Class Configs</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actor Class Configs</em>' containment reference list.
+ * @see org.eclipse.etrice.core.config.ConfigPackage#getConfigModel_ActorClassConfigs()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ActorClassConfig> getActorClassConfigs();
+
+ /**
+ * Returns the value of the '<em><b>Actor Instance Configs</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actor Instance Configs</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actor Instance Configs</em>' attribute list.
+ * @see org.eclipse.etrice.core.config.ConfigPackage#getConfigModel_ActorInstanceConfigs()
+ * @model unique="false"
+ * @generated
+ */
+ EList<String> getActorInstanceConfigs();
+
+} // ConfigModel
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigPackage.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigPackage.java
new file mode 100644
index 000000000..def7ed449
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/ConfigPackage.java
@@ -0,0 +1,251 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.core.config.ConfigFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ConfigPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "config";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/etrice/core/Config";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "config";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ConfigPackage eINSTANCE = org.eclipse.etrice.core.config.impl.ConfigPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.core.config.impl.ConfigModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.core.config.impl.ConfigModelImpl
+ * @see org.eclipse.etrice.core.config.impl.ConfigPackageImpl#getConfigModel()
+ * @generated
+ */
+ int CONFIG_MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Actor Class Configs</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIG_MODEL__ACTOR_CLASS_CONFIGS = 0;
+
+ /**
+ * The feature id for the '<em><b>Actor Instance Configs</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIG_MODEL__ACTOR_INSTANCE_CONFIGS = 1;
+
+ /**
+ * The number of structural features of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIG_MODEL_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.etrice.core.config.impl.ActorClassConfigImpl <em>Actor Class Config</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.core.config.impl.ActorClassConfigImpl
+ * @see org.eclipse.etrice.core.config.impl.ConfigPackageImpl#getActorClassConfig()
+ * @generated
+ */
+ int ACTOR_CLASS_CONFIG = 1;
+
+ /**
+ * The feature id for the '<em><b>Actor Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTOR_CLASS_CONFIG__ACTOR_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Actor Class Config</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACTOR_CLASS_CONFIG_FEATURE_COUNT = 1;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.core.config.ConfigModel <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model</em>'.
+ * @see org.eclipse.etrice.core.config.ConfigModel
+ * @generated
+ */
+ EClass getConfigModel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.etrice.core.config.ConfigModel#getActorClassConfigs <em>Actor Class Configs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Actor Class Configs</em>'.
+ * @see org.eclipse.etrice.core.config.ConfigModel#getActorClassConfigs()
+ * @see #getConfigModel()
+ * @generated
+ */
+ EReference getConfigModel_ActorClassConfigs();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.etrice.core.config.ConfigModel#getActorInstanceConfigs <em>Actor Instance Configs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Actor Instance Configs</em>'.
+ * @see org.eclipse.etrice.core.config.ConfigModel#getActorInstanceConfigs()
+ * @see #getConfigModel()
+ * @generated
+ */
+ EAttribute getConfigModel_ActorInstanceConfigs();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.etrice.core.config.ActorClassConfig <em>Actor Class Config</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Actor Class Config</em>'.
+ * @see org.eclipse.etrice.core.config.ActorClassConfig
+ * @generated
+ */
+ EClass getActorClassConfig();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.etrice.core.config.ActorClassConfig#getActorClass <em>Actor Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Actor Class</em>'.
+ * @see org.eclipse.etrice.core.config.ActorClassConfig#getActorClass()
+ * @see #getActorClassConfig()
+ * @generated
+ */
+ EReference getActorClassConfig_ActorClass();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ConfigFactory getConfigFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.core.config.impl.ConfigModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.core.config.impl.ConfigModelImpl
+ * @see org.eclipse.etrice.core.config.impl.ConfigPackageImpl#getConfigModel()
+ * @generated
+ */
+ EClass CONFIG_MODEL = eINSTANCE.getConfigModel();
+
+ /**
+ * The meta object literal for the '<em><b>Actor Class Configs</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONFIG_MODEL__ACTOR_CLASS_CONFIGS = eINSTANCE.getConfigModel_ActorClassConfigs();
+
+ /**
+ * The meta object literal for the '<em><b>Actor Instance Configs</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONFIG_MODEL__ACTOR_INSTANCE_CONFIGS = eINSTANCE.getConfigModel_ActorInstanceConfigs();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.etrice.core.config.impl.ActorClassConfigImpl <em>Actor Class Config</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.core.config.impl.ActorClassConfigImpl
+ * @see org.eclipse.etrice.core.config.impl.ConfigPackageImpl#getActorClassConfig()
+ * @generated
+ */
+ EClass ACTOR_CLASS_CONFIG = eINSTANCE.getActorClassConfig();
+
+ /**
+ * The meta object literal for the '<em><b>Actor Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ACTOR_CLASS_CONFIG__ACTOR_CLASS = eINSTANCE.getActorClassConfig_ActorClass();
+
+ }
+
+} //ConfigPackage
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ActorClassConfigImpl.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ActorClassConfigImpl.java
new file mode 100644
index 000000000..093369978
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ActorClassConfigImpl.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.etrice.core.config.ActorClassConfig;
+import org.eclipse.etrice.core.config.ConfigPackage;
+
+import org.eclipse.etrice.core.room.ActorClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Actor Class Config</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.core.config.impl.ActorClassConfigImpl#getActorClass <em>Actor Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActorClassConfigImpl extends MinimalEObjectImpl.Container implements ActorClassConfig
+{
+ /**
+ * The cached value of the '{@link #getActorClass() <em>Actor Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActorClass()
+ * @generated
+ * @ordered
+ */
+ protected ActorClass actorClass;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActorClassConfigImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ConfigPackage.Literals.ACTOR_CLASS_CONFIG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActorClass getActorClass()
+ {
+ if (actorClass != null && actorClass.eIsProxy())
+ {
+ InternalEObject oldActorClass = (InternalEObject)actorClass;
+ actorClass = (ActorClass)eResolveProxy(oldActorClass);
+ if (actorClass != oldActorClass)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigPackage.ACTOR_CLASS_CONFIG__ACTOR_CLASS, oldActorClass, actorClass));
+ }
+ }
+ return actorClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActorClass basicGetActorClass()
+ {
+ return actorClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setActorClass(ActorClass newActorClass)
+ {
+ ActorClass oldActorClass = actorClass;
+ actorClass = newActorClass;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ConfigPackage.ACTOR_CLASS_CONFIG__ACTOR_CLASS, oldActorClass, actorClass));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ConfigPackage.ACTOR_CLASS_CONFIG__ACTOR_CLASS:
+ if (resolve) return getActorClass();
+ return basicGetActorClass();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ConfigPackage.ACTOR_CLASS_CONFIG__ACTOR_CLASS:
+ setActorClass((ActorClass)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ConfigPackage.ACTOR_CLASS_CONFIG__ACTOR_CLASS:
+ setActorClass((ActorClass)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ConfigPackage.ACTOR_CLASS_CONFIG__ACTOR_CLASS:
+ return actorClass != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ActorClassConfigImpl
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigFactoryImpl.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigFactoryImpl.java
new file mode 100644
index 000000000..0f2cd8400
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigFactoryImpl.java
@@ -0,0 +1,122 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.etrice.core.config.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConfigFactoryImpl extends EFactoryImpl implements ConfigFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ConfigFactory init()
+ {
+ try
+ {
+ ConfigFactory theConfigFactory = (ConfigFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/etrice/core/Config");
+ if (theConfigFactory != null)
+ {
+ return theConfigFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ConfigFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case ConfigPackage.CONFIG_MODEL: return createConfigModel();
+ case ConfigPackage.ACTOR_CLASS_CONFIG: return createActorClassConfig();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigModel createConfigModel()
+ {
+ ConfigModelImpl configModel = new ConfigModelImpl();
+ return configModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActorClassConfig createActorClassConfig()
+ {
+ ActorClassConfigImpl actorClassConfig = new ActorClassConfigImpl();
+ return actorClassConfig;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigPackage getConfigPackage()
+ {
+ return (ConfigPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ConfigPackage getPackage()
+ {
+ return ConfigPackage.eINSTANCE;
+ }
+
+} //ConfigFactoryImpl
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigModelImpl.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigModelImpl.java
new file mode 100644
index 000000000..47672debc
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigModelImpl.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.etrice.core.config.ActorClassConfig;
+import org.eclipse.etrice.core.config.ConfigModel;
+import org.eclipse.etrice.core.config.ConfigPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.etrice.core.config.impl.ConfigModelImpl#getActorClassConfigs <em>Actor Class Configs</em>}</li>
+ * <li>{@link org.eclipse.etrice.core.config.impl.ConfigModelImpl#getActorInstanceConfigs <em>Actor Instance Configs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConfigModelImpl extends MinimalEObjectImpl.Container implements ConfigModel
+{
+ /**
+ * The cached value of the '{@link #getActorClassConfigs() <em>Actor Class Configs</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActorClassConfigs()
+ * @generated
+ * @ordered
+ */
+ protected EList<ActorClassConfig> actorClassConfigs;
+
+ /**
+ * The cached value of the '{@link #getActorInstanceConfigs() <em>Actor Instance Configs</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActorInstanceConfigs()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> actorInstanceConfigs;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigModelImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ConfigPackage.Literals.CONFIG_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ActorClassConfig> getActorClassConfigs()
+ {
+ if (actorClassConfigs == null)
+ {
+ actorClassConfigs = new EObjectContainmentEList<ActorClassConfig>(ActorClassConfig.class, this, ConfigPackage.CONFIG_MODEL__ACTOR_CLASS_CONFIGS);
+ }
+ return actorClassConfigs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getActorInstanceConfigs()
+ {
+ if (actorInstanceConfigs == null)
+ {
+ actorInstanceConfigs = new EDataTypeEList<String>(String.class, this, ConfigPackage.CONFIG_MODEL__ACTOR_INSTANCE_CONFIGS);
+ }
+ return actorInstanceConfigs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ConfigPackage.CONFIG_MODEL__ACTOR_CLASS_CONFIGS:
+ return ((InternalEList<?>)getActorClassConfigs()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ConfigPackage.CONFIG_MODEL__ACTOR_CLASS_CONFIGS:
+ return getActorClassConfigs();
+ case ConfigPackage.CONFIG_MODEL__ACTOR_INSTANCE_CONFIGS:
+ return getActorInstanceConfigs();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ConfigPackage.CONFIG_MODEL__ACTOR_CLASS_CONFIGS:
+ getActorClassConfigs().clear();
+ getActorClassConfigs().addAll((Collection<? extends ActorClassConfig>)newValue);
+ return;
+ case ConfigPackage.CONFIG_MODEL__ACTOR_INSTANCE_CONFIGS:
+ getActorInstanceConfigs().clear();
+ getActorInstanceConfigs().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ConfigPackage.CONFIG_MODEL__ACTOR_CLASS_CONFIGS:
+ getActorClassConfigs().clear();
+ return;
+ case ConfigPackage.CONFIG_MODEL__ACTOR_INSTANCE_CONFIGS:
+ getActorInstanceConfigs().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ConfigPackage.CONFIG_MODEL__ACTOR_CLASS_CONFIGS:
+ return actorClassConfigs != null && !actorClassConfigs.isEmpty();
+ case ConfigPackage.CONFIG_MODEL__ACTOR_INSTANCE_CONFIGS:
+ return actorInstanceConfigs != null && !actorInstanceConfigs.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (actorInstanceConfigs: ");
+ result.append(actorInstanceConfigs);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ConfigModelImpl
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigPackageImpl.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigPackageImpl.java
new file mode 100644
index 000000000..57206db03
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/impl/ConfigPackageImpl.java
@@ -0,0 +1,244 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.etrice.core.config.ActorClassConfig;
+import org.eclipse.etrice.core.config.ConfigFactory;
+import org.eclipse.etrice.core.config.ConfigModel;
+import org.eclipse.etrice.core.config.ConfigPackage;
+
+import org.eclipse.etrice.core.room.RoomPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConfigPackageImpl extends EPackageImpl implements ConfigPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass configModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass actorClassConfigEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.etrice.core.config.ConfigPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ConfigPackageImpl()
+ {
+ super(eNS_URI, ConfigFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link ConfigPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ConfigPackage init()
+ {
+ if (isInited) return (ConfigPackage)EPackage.Registry.INSTANCE.getEPackage(ConfigPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ConfigPackageImpl theConfigPackage = (ConfigPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ConfigPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ConfigPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ RoomPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theConfigPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theConfigPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theConfigPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ConfigPackage.eNS_URI, theConfigPackage);
+ return theConfigPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConfigModel()
+ {
+ return configModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConfigModel_ActorClassConfigs()
+ {
+ return (EReference)configModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getConfigModel_ActorInstanceConfigs()
+ {
+ return (EAttribute)configModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActorClassConfig()
+ {
+ return actorClassConfigEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActorClassConfig_ActorClass()
+ {
+ return (EReference)actorClassConfigEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigFactory getConfigFactory()
+ {
+ return (ConfigFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ configModelEClass = createEClass(CONFIG_MODEL);
+ createEReference(configModelEClass, CONFIG_MODEL__ACTOR_CLASS_CONFIGS);
+ createEAttribute(configModelEClass, CONFIG_MODEL__ACTOR_INSTANCE_CONFIGS);
+
+ actorClassConfigEClass = createEClass(ACTOR_CLASS_CONFIG);
+ createEReference(actorClassConfigEClass, ACTOR_CLASS_CONFIG__ACTOR_CLASS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ RoomPackage theRoomPackage = (RoomPackage)EPackage.Registry.INSTANCE.getEPackage(RoomPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(configModelEClass, ConfigModel.class, "ConfigModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConfigModel_ActorClassConfigs(), this.getActorClassConfig(), null, "actorClassConfigs", null, 0, -1, ConfigModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getConfigModel_ActorInstanceConfigs(), ecorePackage.getEString(), "actorInstanceConfigs", null, 0, -1, ConfigModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(actorClassConfigEClass, ActorClassConfig.class, "ActorClassConfig", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getActorClassConfig_ActorClass(), theRoomPackage.getActorClass(), null, "actorClass", null, 0, 1, ActorClassConfig.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //ConfigPackageImpl
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/util/ConfigAdapterFactory.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/util/ConfigAdapterFactory.java
new file mode 100644
index 000000000..1497f42ff
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/util/ConfigAdapterFactory.java
@@ -0,0 +1,156 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.etrice.core.config.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.core.config.ConfigPackage
+ * @generated
+ */
+public class ConfigAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ConfigPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ConfigPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigSwitch<Adapter> modelSwitch =
+ new ConfigSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseConfigModel(ConfigModel object)
+ {
+ return createConfigModelAdapter();
+ }
+ @Override
+ public Adapter caseActorClassConfig(ActorClassConfig object)
+ {
+ return createActorClassConfigAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.core.config.ConfigModel <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.etrice.core.config.ConfigModel
+ * @generated
+ */
+ public Adapter createConfigModelAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.etrice.core.config.ActorClassConfig <em>Actor Class Config</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.etrice.core.config.ActorClassConfig
+ * @generated
+ */
+ public Adapter createActorClassConfigAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //ConfigAdapterFactory
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/util/ConfigSwitch.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/util/ConfigSwitch.java
new file mode 100644
index 000000000..210dd4db6
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/config/util/ConfigSwitch.java
@@ -0,0 +1,146 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+
+ */
+package org.eclipse.etrice.core.config.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.etrice.core.config.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.etrice.core.config.ConfigPackage
+ * @generated
+ */
+public class ConfigSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ConfigPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ConfigPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case ConfigPackage.CONFIG_MODEL:
+ {
+ ConfigModel configModel = (ConfigModel)theEObject;
+ T result = caseConfigModel(configModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ConfigPackage.ACTOR_CLASS_CONFIG:
+ {
+ ActorClassConfig actorClassConfig = (ActorClassConfig)theEObject;
+ T result = caseActorClassConfig(actorClassConfig);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigModel(ConfigModel object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Actor Class Config</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Actor Class Config</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseActorClassConfig(ActorClassConfig object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //ConfigSwitch
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/ConfigAntlrTokenFileProvider.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/ConfigAntlrTokenFileProvider.java
new file mode 100644
index 000000000..fdd47642c
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/ConfigAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class ConfigAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.tokens");
+ }
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/ConfigParser.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/ConfigParser.java
new file mode 100644
index 000000000..2b7ad294f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/ConfigParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.etrice.core.services.ConfigGrammarAccess;
+
+public class ConfigParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private ConfigGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected org.eclipse.etrice.core.parser.antlr.internal.InternalConfigParser createParser(XtextTokenStream stream) {
+ return new org.eclipse.etrice.core.parser.antlr.internal.InternalConfigParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "ConfigModel";
+ }
+
+ public ConfigGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(ConfigGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g
new file mode 100644
index 000000000..fc9c87e5d
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g
@@ -0,0 +1,222 @@
+/*
+* generated by Xtext
+*/
+grammar InternalConfig;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.etrice.core.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.eclipse.etrice.core.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.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.eclipse.etrice.core.services.ConfigGrammarAccess;
+
+}
+
+@parser::members {
+
+ private ConfigGrammarAccess grammarAccess;
+
+ public InternalConfigParser(TokenStream input, ConfigGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "ConfigModel";
+ }
+
+ @Override
+ protected ConfigGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleConfigModel
+entryRuleConfigModel returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getConfigModelRule()); }
+ iv_ruleConfigModel=ruleConfigModel
+ { $current=$iv_ruleConfigModel.current; }
+ EOF
+;
+
+// Rule ConfigModel
+ruleConfigModel returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getConfigModelAccess().getActorClassConfigsActorClassConfigParserRuleCall_0_0());
+ }
+ lv_actorClassConfigs_0_0=ruleActorClassConfig {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConfigModelRule());
+ }
+ add(
+ $current,
+ "actorClassConfigs",
+ lv_actorClassConfigs_0_0,
+ "ActorClassConfig");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*(
+(
+ {
+ newCompositeNode(grammarAccess.getConfigModelAccess().getActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0());
+ }
+ lv_actorInstanceConfigs_1_0=ruleActorInstanceConfig {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getConfigModelRule());
+ }
+ add(
+ $current,
+ "actorInstanceConfigs",
+ lv_actorInstanceConfigs_1_0,
+ "ActorInstanceConfig");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*)
+;
+
+
+
+
+
+// Entry rule entryRuleActorClassConfig
+entryRuleActorClassConfig returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getActorClassConfigRule()); }
+ iv_ruleActorClassConfig=ruleActorClassConfig
+ { $current=$iv_ruleActorClassConfig.current; }
+ EOF
+;
+
+// Rule ActorClassConfig
+ruleActorClassConfig returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='ActorClassConfig'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getActorClassConfigAccess().getActorClassConfigKeyword_0());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getActorClassConfigRule());
+ }
+ }
+ otherlv_1=RULE_ID
+ {
+ newLeafNode(otherlv_1, grammarAccess.getActorClassConfigAccess().getActorClassActorClassCrossReference_1_0());
+ }
+
+)
+) otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getActorClassConfigAccess().getLeftCurlyBracketKeyword_2());
+ }
+ otherlv_3='}'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getActorClassConfigAccess().getRightCurlyBracketKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleActorInstanceConfig
+entryRuleActorInstanceConfig returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getActorInstanceConfigRule()); }
+ iv_ruleActorInstanceConfig=ruleActorInstanceConfig
+ { $current=$iv_ruleActorInstanceConfig.current.getText(); }
+ EOF
+;
+
+// Rule ActorInstanceConfig
+ruleActorInstanceConfig returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='ActorInstanceConfig'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getActorInstanceConfigAccess().getActorInstanceConfigKeyword_0());
+ }
+
+ kw='{'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getActorInstanceConfigAccess().getLeftCurlyBracketKeyword_1());
+ }
+
+ kw='}'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getActorInstanceConfigAccess().getRightCurlyBracketKeyword_2());
+ }
+)
+ ;
+
+
+
+
+
+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/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.tokens b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.tokens
new file mode 100644
index 000000000..536f0772f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.tokens
@@ -0,0 +1,15 @@
+RULE_ID=4
+RULE_STRING=6
+T__12=12
+T__11=11
+T__14=14
+T__13=13
+RULE_ANY_OTHER=10
+RULE_INT=5
+RULE_WS=9
+RULE_SL_COMMENT=8
+RULE_ML_COMMENT=7
+'ActorInstanceConfig'=14
+'}'=13
+'ActorClassConfig'=11
+'{'=12
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfigLexer.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfigLexer.java
new file mode 100644
index 000000000..0a2b913cd
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfigLexer.java
@@ -0,0 +1,895 @@
+package org.eclipse.etrice.core.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 InternalConfigLexer extends Lexer {
+ public static final int RULE_ID=4;
+ public static final int RULE_STRING=6;
+ 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 RULE_ANY_OTHER=10;
+ public static final int RULE_INT=5;
+ public static final int RULE_WS=9;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int EOF=-1;
+ public static final int RULE_ML_COMMENT=7;
+
+ // delegates
+ // delegators
+
+ public InternalConfigLexer() {;}
+ public InternalConfigLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalConfigLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:11:7: ( 'ActorClassConfig' )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:11:9: 'ActorClassConfig'
+ {
+ match("ActorClassConfig");
+
+
+ }
+
+ 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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:12:7: ( '{' )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:13:7: ( '}' )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:13:9: '}'
+ {
+ match('}');
+
+ }
+
+ 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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:14:7: ( 'ActorInstanceConfig' )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:14:9: 'ActorInstanceConfig'
+ {
+ match("ActorInstanceConfig");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:208:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:208:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:208:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:208: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:208: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:210:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:210:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:210: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:210: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:212: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:214:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:214:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:214: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:214: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:216:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:216:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:216: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:216: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:216: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:216:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:216:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:216: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:218:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:218:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:218: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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.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.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:220:16: ( . )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:220:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:8: ( T__11 | T__12 | T__13 | T__14 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=11;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:34: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:42: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:51: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:63: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:79: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:95: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:1:103: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\1\15\2\uffff\1\13\2\uffff\3\13\2\uffff\1\15\10\uffff\27"+
+ "\15\1\56\1\15\1\uffff\2\15\1\62\1\uffff";
+ static final String DFA12_eofS =
+ "\63\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\143\2\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\164\10\uffff"+
+ "\1\157\1\162\1\103\1\154\1\156\1\141\2\163\1\164\1\163\1\141\1\103"+
+ "\1\156\1\157\1\143\1\156\1\145\1\146\1\103\1\151\1\157\1\147\1\156"+
+ "\1\60\1\146\1\uffff\1\151\1\147\1\60\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\143\2\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\164"+
+ "\10\uffff\1\157\1\162\1\111\1\154\1\156\1\141\2\163\1\164\1\163"+
+ "\1\141\1\103\1\156\1\157\1\143\1\156\1\145\1\146\1\103\1\151\1\157"+
+ "\1\147\1\156\1\172\1\146\1\uffff\1\151\1\147\1\172\1\uffff";
+ static final String DFA12_acceptS =
+ "\2\uffff\1\2\1\3\1\uffff\1\5\1\6\3\uffff\1\12\1\13\1\uffff\1\5"+
+ "\1\2\1\3\1\6\1\7\1\10\1\11\1\12\31\uffff\1\1\3\uffff\1\4";
+ static final String DFA12_specialS =
+ "\1\2\6\uffff\1\0\1\1\52\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\13\2\12\2\13\1\12\22\13\1\12\1\13\1\7\4\13\1\10\7\13\1"+
+ "\11\12\6\7\13\1\1\31\5\3\13\1\4\1\5\1\13\32\5\1\2\1\13\1\3\uff82"+
+ "\13",
+ "\1\14",
+ "",
+ "",
+ "\32\15\4\uffff\1\15\1\uffff\32\15",
+ "",
+ "",
+ "\0\21",
+ "\0\21",
+ "\1\22\4\uffff\1\23",
+ "",
+ "",
+ "\1\25",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\26",
+ "\1\27",
+ "\1\30\5\uffff\1\31",
+ "\1\32",
+ "\1\33",
+ "\1\34",
+ "\1\35",
+ "\1\36",
+ "\1\37",
+ "\1\40",
+ "\1\41",
+ "\1\42",
+ "\1\43",
+ "\1\44",
+ "\1\45",
+ "\1\46",
+ "\1\47",
+ "\1\50",
+ "\1\51",
+ "\1\52",
+ "\1\53",
+ "\1\54",
+ "\1\55",
+ "\12\15\7\uffff\32\15\4\uffff\1\15\1\uffff\32\15",
+ "\1\57",
+ "",
+ "\1\60",
+ "\1\61",
+ "\12\15\7\uffff\32\15\4\uffff\1\15\1\uffff\32\15",
+ ""
+ };
+
+ 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]);
+ }
+ }
+
+ 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 | 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_7 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_7>='\u0000' && LA12_7<='\uFFFF')) ) {s = 17;}
+
+ else s = 11;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_8 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_8>='\u0000' && LA12_8<='\uFFFF')) ) {s = 17;}
+
+ else s = 11;
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='A') ) {s = 1;}
+
+ else if ( (LA12_0=='{') ) {s = 2;}
+
+ else if ( (LA12_0=='}') ) {s = 3;}
+
+ else if ( (LA12_0=='^') ) {s = 4;}
+
+ else if ( ((LA12_0>='B' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='z')) ) {s = 5;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 6;}
+
+ else if ( (LA12_0=='\"') ) {s = 7;}
+
+ else if ( (LA12_0=='\'') ) {s = 8;}
+
+ else if ( (LA12_0=='/') ) {s = 9;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 10;}
+
+ 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<='\uFFFF')) ) {s = 11;}
+
+ 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/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfigParser.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfigParser.java
new file mode 100644
index 000000000..c232925ec
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfigParser.java
@@ -0,0 +1,465 @@
+package org.eclipse.etrice.core.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.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.eclipse.etrice.core.services.ConfigGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalConfigParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'ActorClassConfig'", "'{'", "'}'", "'ActorInstanceConfig'"
+ };
+ public static final int RULE_ID=4;
+ public static final int RULE_STRING=6;
+ 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 RULE_ANY_OTHER=10;
+ public static final int RULE_INT=5;
+ public static final int RULE_WS=9;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int EOF=-1;
+ public static final int RULE_ML_COMMENT=7;
+
+ // delegates
+ // delegators
+
+
+ public InternalConfigParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalConfigParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalConfigParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g"; }
+
+
+
+ private ConfigGrammarAccess grammarAccess;
+
+ public InternalConfigParser(TokenStream input, ConfigGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "ConfigModel";
+ }
+
+ @Override
+ protected ConfigGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+ // $ANTLR start "entryRuleConfigModel"
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:67:1: entryRuleConfigModel returns [EObject current=null] : iv_ruleConfigModel= ruleConfigModel EOF ;
+ public final EObject entryRuleConfigModel() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleConfigModel = null;
+
+
+ try {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:68:2: (iv_ruleConfigModel= ruleConfigModel EOF )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:69:2: iv_ruleConfigModel= ruleConfigModel EOF
+ {
+ newCompositeNode(grammarAccess.getConfigModelRule());
+ pushFollow(FOLLOW_ruleConfigModel_in_entryRuleConfigModel75);
+ iv_ruleConfigModel=ruleConfigModel();
+
+ state._fsp--;
+
+ current =iv_ruleConfigModel;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleConfigModel85);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleConfigModel"
+
+
+ // $ANTLR start "ruleConfigModel"
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:76:1: ruleConfigModel returns [EObject current=null] : ( ( (lv_actorClassConfigs_0_0= ruleActorClassConfig ) )* ( (lv_actorInstanceConfigs_1_0= ruleActorInstanceConfig ) )* ) ;
+ public final EObject ruleConfigModel() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_actorClassConfigs_0_0 = null;
+
+ AntlrDatatypeRuleToken lv_actorInstanceConfigs_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:79:28: ( ( ( (lv_actorClassConfigs_0_0= ruleActorClassConfig ) )* ( (lv_actorInstanceConfigs_1_0= ruleActorInstanceConfig ) )* ) )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:80:1: ( ( (lv_actorClassConfigs_0_0= ruleActorClassConfig ) )* ( (lv_actorInstanceConfigs_1_0= ruleActorInstanceConfig ) )* )
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:80:1: ( ( (lv_actorClassConfigs_0_0= ruleActorClassConfig ) )* ( (lv_actorInstanceConfigs_1_0= ruleActorInstanceConfig ) )* )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:80:2: ( (lv_actorClassConfigs_0_0= ruleActorClassConfig ) )* ( (lv_actorInstanceConfigs_1_0= ruleActorInstanceConfig ) )*
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:80:2: ( (lv_actorClassConfigs_0_0= ruleActorClassConfig ) )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==11) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:81:1: (lv_actorClassConfigs_0_0= ruleActorClassConfig )
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:81:1: (lv_actorClassConfigs_0_0= ruleActorClassConfig )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:82:3: lv_actorClassConfigs_0_0= ruleActorClassConfig
+ {
+
+ newCompositeNode(grammarAccess.getConfigModelAccess().getActorClassConfigsActorClassConfigParserRuleCall_0_0());
+
+ pushFollow(FOLLOW_ruleActorClassConfig_in_ruleConfigModel131);
+ lv_actorClassConfigs_0_0=ruleActorClassConfig();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConfigModelRule());
+ }
+ add(
+ current,
+ "actorClassConfigs",
+ lv_actorClassConfigs_0_0,
+ "ActorClassConfig");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:98:3: ( (lv_actorInstanceConfigs_1_0= ruleActorInstanceConfig ) )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==14) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:99:1: (lv_actorInstanceConfigs_1_0= ruleActorInstanceConfig )
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:99:1: (lv_actorInstanceConfigs_1_0= ruleActorInstanceConfig )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:100:3: lv_actorInstanceConfigs_1_0= ruleActorInstanceConfig
+ {
+
+ newCompositeNode(grammarAccess.getConfigModelAccess().getActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0());
+
+ pushFollow(FOLLOW_ruleActorInstanceConfig_in_ruleConfigModel153);
+ lv_actorInstanceConfigs_1_0=ruleActorInstanceConfig();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getConfigModelRule());
+ }
+ add(
+ current,
+ "actorInstanceConfigs",
+ lv_actorInstanceConfigs_1_0,
+ "ActorInstanceConfig");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleConfigModel"
+
+
+ // $ANTLR start "entryRuleActorClassConfig"
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:124:1: entryRuleActorClassConfig returns [EObject current=null] : iv_ruleActorClassConfig= ruleActorClassConfig EOF ;
+ public final EObject entryRuleActorClassConfig() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleActorClassConfig = null;
+
+
+ try {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:125:2: (iv_ruleActorClassConfig= ruleActorClassConfig EOF )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:126:2: iv_ruleActorClassConfig= ruleActorClassConfig EOF
+ {
+ newCompositeNode(grammarAccess.getActorClassConfigRule());
+ pushFollow(FOLLOW_ruleActorClassConfig_in_entryRuleActorClassConfig190);
+ iv_ruleActorClassConfig=ruleActorClassConfig();
+
+ state._fsp--;
+
+ current =iv_ruleActorClassConfig;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleActorClassConfig200);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleActorClassConfig"
+
+
+ // $ANTLR start "ruleActorClassConfig"
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:133:1: ruleActorClassConfig returns [EObject current=null] : (otherlv_0= 'ActorClassConfig' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' otherlv_3= '}' ) ;
+ public final EObject ruleActorClassConfig() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:136:28: ( (otherlv_0= 'ActorClassConfig' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' otherlv_3= '}' ) )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:137:1: (otherlv_0= 'ActorClassConfig' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' otherlv_3= '}' )
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:137:1: (otherlv_0= 'ActorClassConfig' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' otherlv_3= '}' )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:137:3: otherlv_0= 'ActorClassConfig' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' otherlv_3= '}'
+ {
+ otherlv_0=(Token)match(input,11,FOLLOW_11_in_ruleActorClassConfig237);
+
+ newLeafNode(otherlv_0, grammarAccess.getActorClassConfigAccess().getActorClassConfigKeyword_0());
+
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:141:1: ( (otherlv_1= RULE_ID ) )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:142:1: (otherlv_1= RULE_ID )
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:142:1: (otherlv_1= RULE_ID )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:143:3: otherlv_1= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getActorClassConfigRule());
+ }
+
+ otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActorClassConfig257);
+
+ newLeafNode(otherlv_1, grammarAccess.getActorClassConfigAccess().getActorClassActorClassCrossReference_1_0());
+
+
+ }
+
+
+ }
+
+ otherlv_2=(Token)match(input,12,FOLLOW_12_in_ruleActorClassConfig269);
+
+ newLeafNode(otherlv_2, grammarAccess.getActorClassConfigAccess().getLeftCurlyBracketKeyword_2());
+
+ otherlv_3=(Token)match(input,13,FOLLOW_13_in_ruleActorClassConfig281);
+
+ newLeafNode(otherlv_3, grammarAccess.getActorClassConfigAccess().getRightCurlyBracketKeyword_3());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleActorClassConfig"
+
+
+ // $ANTLR start "entryRuleActorInstanceConfig"
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:170:1: entryRuleActorInstanceConfig returns [String current=null] : iv_ruleActorInstanceConfig= ruleActorInstanceConfig EOF ;
+ public final String entryRuleActorInstanceConfig() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleActorInstanceConfig = null;
+
+
+ try {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:171:2: (iv_ruleActorInstanceConfig= ruleActorInstanceConfig EOF )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:172:2: iv_ruleActorInstanceConfig= ruleActorInstanceConfig EOF
+ {
+ newCompositeNode(grammarAccess.getActorInstanceConfigRule());
+ pushFollow(FOLLOW_ruleActorInstanceConfig_in_entryRuleActorInstanceConfig318);
+ iv_ruleActorInstanceConfig=ruleActorInstanceConfig();
+
+ state._fsp--;
+
+ current =iv_ruleActorInstanceConfig.getText();
+ match(input,EOF,FOLLOW_EOF_in_entryRuleActorInstanceConfig329);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleActorInstanceConfig"
+
+
+ // $ANTLR start "ruleActorInstanceConfig"
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:179:1: ruleActorInstanceConfig returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'ActorInstanceConfig' kw= '{' kw= '}' ) ;
+ public final AntlrDatatypeRuleToken ruleActorInstanceConfig() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:182:28: ( (kw= 'ActorInstanceConfig' kw= '{' kw= '}' ) )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:183:1: (kw= 'ActorInstanceConfig' kw= '{' kw= '}' )
+ {
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:183:1: (kw= 'ActorInstanceConfig' kw= '{' kw= '}' )
+ // ../org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalConfig.g:184:2: kw= 'ActorInstanceConfig' kw= '{' kw= '}'
+ {
+ kw=(Token)match(input,14,FOLLOW_14_in_ruleActorInstanceConfig367);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getActorInstanceConfigAccess().getActorInstanceConfigKeyword_0());
+
+ kw=(Token)match(input,12,FOLLOW_12_in_ruleActorInstanceConfig380);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getActorInstanceConfigAccess().getLeftCurlyBracketKeyword_1());
+
+ kw=(Token)match(input,13,FOLLOW_13_in_ruleActorInstanceConfig393);
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getActorInstanceConfigAccess().getRightCurlyBracketKeyword_2());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleActorInstanceConfig"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_ruleConfigModel_in_entryRuleConfigModel75 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleConfigModel85 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleActorClassConfig_in_ruleConfigModel131 = new BitSet(new long[]{0x0000000000004802L});
+ public static final BitSet FOLLOW_ruleActorInstanceConfig_in_ruleConfigModel153 = new BitSet(new long[]{0x0000000000004002L});
+ public static final BitSet FOLLOW_ruleActorClassConfig_in_entryRuleActorClassConfig190 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleActorClassConfig200 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_ruleActorClassConfig237 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleActorClassConfig257 = new BitSet(new long[]{0x0000000000001000L});
+ public static final BitSet FOLLOW_12_in_ruleActorClassConfig269 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_13_in_ruleActorClassConfig281 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleActorInstanceConfig_in_entryRuleActorInstanceConfig318 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleActorInstanceConfig329 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_14_in_ruleActorInstanceConfig367 = new BitSet(new long[]{0x0000000000001000L});
+ public static final BitSet FOLLOW_12_in_ruleActorInstanceConfig380 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_13_in_ruleActorInstanceConfig393 = new BitSet(new long[]{0x0000000000000002L});
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/serializer/AbstractConfigSemanticSequencer.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/serializer/AbstractConfigSemanticSequencer.java
new file mode 100644
index 000000000..9641b9be5
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/serializer/AbstractConfigSemanticSequencer.java
@@ -0,0 +1,88 @@
+package org.eclipse.etrice.core.serializer;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.etrice.core.config.ActorClassConfig;
+import org.eclipse.etrice.core.config.ConfigModel;
+import org.eclipse.etrice.core.config.ConfigPackage;
+import org.eclipse.etrice.core.services.ConfigGrammarAccess;
+import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider;
+import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
+import org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.GenericSequencer;
+import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider;
+import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+
+@SuppressWarnings("restriction")
+public class AbstractConfigSemanticSequencer extends AbstractSemanticSequencer {
+
+ @Inject
+ protected ConfigGrammarAccess grammarAccess;
+
+ @Inject
+ protected ISemanticSequencerDiagnosticProvider diagnosticProvider;
+
+ @Inject
+ protected ITransientValueService transientValues;
+
+ @Inject
+ @GenericSequencer
+ protected Provider<ISemanticSequencer> genericSequencerProvider;
+
+ protected ISemanticSequencer genericSequencer;
+
+
+ @Override
+ public void init(ISemanticSequencer sequencer, ISemanticSequenceAcceptor sequenceAcceptor, Acceptor errorAcceptor) {
+ super.init(sequencer, sequenceAcceptor, errorAcceptor);
+ this.genericSequencer = genericSequencerProvider.get();
+ this.genericSequencer.init(sequencer, sequenceAcceptor, errorAcceptor);
+ }
+
+ public void createSequence(EObject context, EObject semanticObject) {
+ if(semanticObject.eClass().getEPackage() == ConfigPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+ case ConfigPackage.ACTOR_CLASS_CONFIG:
+ if(context == grammarAccess.getActorClassConfigRule()) {
+ sequence_ActorClassConfig(context, (ActorClassConfig) semanticObject);
+ return;
+ }
+ else break;
+ case ConfigPackage.CONFIG_MODEL:
+ if(context == grammarAccess.getConfigModelRule()) {
+ sequence_ConfigModel(context, (ConfigModel) semanticObject);
+ return;
+ }
+ else break;
+ }
+ if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+ }
+
+ /**
+ * Constraint:
+ * actorClass=[ActorClass|ID]
+ */
+ protected void sequence_ActorClassConfig(EObject context, ActorClassConfig semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, ConfigPackage.Literals.ACTOR_CLASS_CONFIG__ACTOR_CLASS) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ConfigPackage.Literals.ACTOR_CLASS_CONFIG__ACTOR_CLASS));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getActorClassConfigAccess().getActorClassActorClassIDTerminalRuleCall_1_0_1(), semanticObject.getActorClass());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * (actorClassConfigs+=ActorClassConfig* actorInstanceConfigs+=ActorInstanceConfig*)
+ */
+ protected void sequence_ConfigModel(EObject context, ConfigModel semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/serializer/AbstractConfigSyntacticSequencer.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/serializer/AbstractConfigSyntacticSequencer.java
new file mode 100644
index 000000000..af77eb774
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/serializer/AbstractConfigSyntacticSequencer.java
@@ -0,0 +1,40 @@
+package org.eclipse.etrice.core.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.etrice.core.services.ConfigGrammarAccess;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+
+@SuppressWarnings("restriction")
+public class AbstractConfigSyntacticSequencer extends AbstractSyntacticSequencer {
+
+ protected ConfigGrammarAccess grammarAccess;
+
+ @Inject
+ protected void init(IGrammarAccess access) {
+ grammarAccess = (ConfigGrammarAccess) access;
+ }
+
+ @Override
+ protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ return "";
+ }
+
+
+ @Override
+ protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+ if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+ List<INode> transitionNodes = collectNodes(fromNode, toNode);
+ for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+ List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+ acceptNodes(getLastNavigableState(), syntaxNodes);
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/services/ConfigGrammarAccess.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/services/ConfigGrammarAccess.java
new file mode 100644
index 000000000..cf713a8bd
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/services/ConfigGrammarAccess.java
@@ -0,0 +1,214 @@
+/*
+* generated by Xtext
+*/
+
+package org.eclipse.etrice.core.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 ConfigGrammarAccess extends AbstractGrammarElementFinder {
+
+
+ public class ConfigModelElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ConfigModel");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cActorClassConfigsAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cActorClassConfigsActorClassConfigParserRuleCall_0_0 = (RuleCall)cActorClassConfigsAssignment_0.eContents().get(0);
+ private final Assignment cActorInstanceConfigsAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0 = (RuleCall)cActorInstanceConfigsAssignment_1.eContents().get(0);
+
+ //ConfigModel:
+ // actorClassConfigs+=ActorClassConfig* actorInstanceConfigs+=ActorInstanceConfig*;
+ public ParserRule getRule() { return rule; }
+
+ //actorClassConfigs+=ActorClassConfig* actorInstanceConfigs+=ActorInstanceConfig*
+ public Group getGroup() { return cGroup; }
+
+ //actorClassConfigs+=ActorClassConfig*
+ public Assignment getActorClassConfigsAssignment_0() { return cActorClassConfigsAssignment_0; }
+
+ //ActorClassConfig
+ public RuleCall getActorClassConfigsActorClassConfigParserRuleCall_0_0() { return cActorClassConfigsActorClassConfigParserRuleCall_0_0; }
+
+ //actorInstanceConfigs+=ActorInstanceConfig*
+ public Assignment getActorInstanceConfigsAssignment_1() { return cActorInstanceConfigsAssignment_1; }
+
+ //ActorInstanceConfig
+ public RuleCall getActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0() { return cActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0; }
+ }
+
+ public class ActorClassConfigElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActorClassConfig");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cActorClassConfigKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cActorClassAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final CrossReference cActorClassActorClassCrossReference_1_0 = (CrossReference)cActorClassAssignment_1.eContents().get(0);
+ private final RuleCall cActorClassActorClassIDTerminalRuleCall_1_0_1 = (RuleCall)cActorClassActorClassCrossReference_1_0.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+
+ //ActorClassConfig:
+ // "ActorClassConfig" actorClass=[room::ActorClass] "{" "}";
+ public ParserRule getRule() { return rule; }
+
+ //"ActorClassConfig" actorClass=[room::ActorClass] "{" "}"
+ public Group getGroup() { return cGroup; }
+
+ //"ActorClassConfig"
+ public Keyword getActorClassConfigKeyword_0() { return cActorClassConfigKeyword_0; }
+
+ //actorClass=[room::ActorClass]
+ public Assignment getActorClassAssignment_1() { return cActorClassAssignment_1; }
+
+ //[room::ActorClass]
+ public CrossReference getActorClassActorClassCrossReference_1_0() { return cActorClassActorClassCrossReference_1_0; }
+
+ //ID
+ public RuleCall getActorClassActorClassIDTerminalRuleCall_1_0_1() { return cActorClassActorClassIDTerminalRuleCall_1_0_1; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
+ }
+
+ public class ActorInstanceConfigElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActorInstanceConfig");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cActorInstanceConfigKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cRightCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+
+ //// ActorInstanceConfig MySS.AR1.AR2 {
+ //// min = 1
+ //// max = 5
+ //// }
+ //ActorInstanceConfig:
+ // "ActorInstanceConfig" / * root=[room::SubSystemClass|FQN] '/' path=RefPath * / "{" "}";
+ public ParserRule getRule() { return rule; }
+
+ //"ActorInstanceConfig" / * root=[room::SubSystemClass|FQN] '/' path=RefPath * / "{" "}"
+ public Group getGroup() { return cGroup; }
+
+ //"ActorInstanceConfig"
+ public Keyword getActorInstanceConfigKeyword_0() { return cActorInstanceConfigKeyword_0; }
+
+ /// * root=[room::SubSystemClass|FQN] '/' path=RefPath * / "{"
+ public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_2() { return cRightCurlyBracketKeyword_2; }
+ }
+
+
+ private ConfigModelElements pConfigModel;
+ private ActorClassConfigElements pActorClassConfig;
+ private ActorInstanceConfigElements pActorInstanceConfig;
+
+ private final GrammarProvider grammarProvider;
+
+ private TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public ConfigGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammarProvider = grammarProvider;
+ this.gaTerminals = gaTerminals;
+ }
+
+ public Grammar getGrammar() {
+ return grammarProvider.getGrammar(this);
+ }
+
+
+ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ //ConfigModel:
+ // actorClassConfigs+=ActorClassConfig* actorInstanceConfigs+=ActorInstanceConfig*;
+ public ConfigModelElements getConfigModelAccess() {
+ return (pConfigModel != null) ? pConfigModel : (pConfigModel = new ConfigModelElements());
+ }
+
+ public ParserRule getConfigModelRule() {
+ return getConfigModelAccess().getRule();
+ }
+
+ //ActorClassConfig:
+ // "ActorClassConfig" actorClass=[room::ActorClass] "{" "}";
+ public ActorClassConfigElements getActorClassConfigAccess() {
+ return (pActorClassConfig != null) ? pActorClassConfig : (pActorClassConfig = new ActorClassConfigElements());
+ }
+
+ public ParserRule getActorClassConfigRule() {
+ return getActorClassConfigAccess().getRule();
+ }
+
+ //// ActorInstanceConfig MySS.AR1.AR2 {
+ //// min = 1
+ //// max = 5
+ //// }
+ //ActorInstanceConfig:
+ // "ActorInstanceConfig" / * root=[room::SubSystemClass|FQN] '/' path=RefPath * / "{" "}";
+ public ActorInstanceConfigElements getActorInstanceConfigAccess() {
+ return (pActorInstanceConfig != null) ? pActorInstanceConfig : (pActorInstanceConfig = new ActorInstanceConfigElements());
+ }
+
+ public ParserRule getActorInstanceConfigRule() {
+ return getActorInstanceConfigAccess().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/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/validation/AbstractConfigJavaValidator.java b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/validation/AbstractConfigJavaValidator.java
new file mode 100644
index 000000000..9eabc98a7
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src-gen/org/eclipse/etrice/core/validation/AbstractConfigJavaValidator.java
@@ -0,0 +1,18 @@
+package org.eclipse.etrice.core.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+
+public class AbstractConfigJavaValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.eclipse.etrice.core.config.ConfigPackage.eINSTANCE);
+ return result;
+ }
+
+}

Back to the top