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
parent1b0c3ef0efd3aff268c480d58a90350a142f3d34 (diff)
downloadorg.eclipse.etrice-6f521ceedc818fa1a45b4ffeeba1f1badcb12572.tar.gz
org.eclipse.etrice-6f521ceedc818fa1a45b4ffeeba1f1badcb12572.tar.xz
org.eclipse.etrice-6f521ceedc818fa1a45b4ffeeba1f1badcb12572.zip
[config] generated Xtext infrastructure
-rw-r--r--plugins/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigInjectorProvider.java38
-rw-r--r--plugins/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigUiInjectorProvider.java16
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/META-INF/MANIFEST.MF38
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/AbstractConfigUiModule.classbin0 -> 14160 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/ConfigExecutableExtensionFactory.classbin0 -> 895 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/ConfigUiModule.classbin0 -> 461 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/AbstractConfigProposalProvider.classbin0 -> 2561 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.classbin0 -> 428 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser$1.classbin0 -> 2503 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser.classbin0 -> 3304 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/PartialConfigContentAssistParser.classbin0 -> 2399 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g499
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.tokens15
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer$DFA12.classbin0 -> 2846 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer.classbin0 -> 10567 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigParser.classbin0 -> 17917 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/internal/ConfigActivator.classbin0 -> 3370 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/labeling/ConfigDescriptionLabelProvider.classbin0 -> 429 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/labeling/ConfigLabelProvider.classbin0 -> 614 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/outline/ConfigOutlineTreeProvider.classbin0 -> 421 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/quickfix/ConfigQuickfixProvider.classbin0 -> 407 bytes
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/plugin.xml281
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/plugin.xml_gen281
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/AbstractConfigUiModule.java242
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/ConfigExecutableExtensionFactory.java27
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/AbstractConfigProposalProvider.java39
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser.java75
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/PartialConfigContentAssistParser.java37
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g499
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.tokens15
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer.java895
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigParser.java1202
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/internal/ConfigActivator.java82
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/ConfigUiModule.java15
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.java12
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/labeling/ConfigDescriptionLabelProvider.java27
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/labeling/ConfigLabelProvider.java34
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/outline/ConfigOutlineTreeProvider.java14
-rw-r--r--plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/quickfix/ConfigQuickfixProvider.java19
-rw-r--r--plugins/org.eclipse.etrice.core.config/.gitignore3
-rw-r--r--plugins/org.eclipse.etrice.core.config/META-INF/MANIFEST.MF56
-rw-r--r--plugins/org.eclipse.etrice.core.config/plugin.xml18
-rw-r--r--plugins/org.eclipse.etrice.core.config/plugin.xml_gen18
-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
-rw-r--r--plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/Config.xtext21
-rw-r--r--plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/ConfigRuntimeModule.java11
-rw-r--r--plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/ConfigStandaloneSetup.java14
-rw-r--r--plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/GenerateConfig.mwe215
-rw-r--r--plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/formatting/ConfigFormatter.java27
-rw-r--r--plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/generator/ConfigGenerator.xtend15
-rw-r--r--plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/scoping/ConfigScopeProvider.java17
-rw-r--r--plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/validation/ConfigJavaValidator.java13
-rw-r--r--plugins/org.eclipse.etrice.core.config/xtend-gen/org/eclipse/etrice/core/generator/ConfigGenerator.java11
-rw-r--r--tests/org.eclipse.etrice.core.config.tests/META-INF/MANIFEST.MF6
-rw-r--r--tests/org.eclipse.etrice.core.config.tests/bin/org/eclipse/etrice/core/ConfigInjectorProvider.classbin0 -> 1528 bytes
-rw-r--r--tests/org.eclipse.etrice.core.config.tests/bin/org/eclipse/etrice/core/ConfigUiInjectorProvider.classbin0 -> 743 bytes
-rw-r--r--tests/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigInjectorProvider.java38
-rw-r--r--tests/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigUiInjectorProvider.java16
82 files changed, 8602 insertions, 68 deletions
diff --git a/plugins/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigInjectorProvider.java b/plugins/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigInjectorProvider.java
new file mode 100644
index 000000000..a7c3c34a0
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigInjectorProvider.java
@@ -0,0 +1,38 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core;
+
+import org.eclipse.xtext.junit4.GlobalRegistries;
+import org.eclipse.xtext.junit4.GlobalRegistries.GlobalStateMemento;
+import org.eclipse.xtext.junit4.IInjectorProvider;
+import org.eclipse.xtext.junit4.IRegistryConfigurator;
+
+import com.google.inject.Injector;
+
+public class ConfigInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
+ protected GlobalStateMemento globalStateMemento;
+ protected Injector injector;
+
+ static {
+ GlobalRegistries.initializeDefaults();
+ }
+
+ public Injector getInjector() {
+ if (injector == null) {
+ this.injector = new ConfigStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+ return injector;
+ }
+
+ public void restoreRegistry() {
+ globalStateMemento.restoreGlobalState();
+ }
+
+ public void setupRegistry() {
+ globalStateMemento = GlobalRegistries.makeCopyOfGlobalState();
+ if (injector != null)
+ new ConfigStandaloneSetup().register(injector);
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigUiInjectorProvider.java b/plugins/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigUiInjectorProvider.java
new file mode 100644
index 000000000..34b7a4cd5
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigUiInjectorProvider.java
@@ -0,0 +1,16 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class ConfigUiInjectorProvider implements IInjectorProvider {
+
+ public Injector getInjector() {
+ return org.eclipse.etrice.core.ui.internal.ConfigActivator.getInstance().getInjector("org.eclipse.etrice.core.Config");
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.core.config.ui/META-INF/MANIFEST.MF
index af52eaaca..ca86f88bd 100644
--- a/plugins/org.eclipse.etrice.core.config.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.etrice.core.config.ui/META-INF/MANIFEST.MF
@@ -1,14 +1,24 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: org.eclipse.etrice.core.config.ui
-Bundle-Vendor: My Company
-Bundle-Version: 1.0.0
-Bundle-SymbolicName: org.eclipse.etrice.core.config.ui; singleton:=true
-Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.etrice.core.config;visibility:=reexport,
- org.eclipse.xtext.ui,
- org.eclipse.ui.editors;bundle-version="3.5.0",
- org.eclipse.ui.ide;bundle-version="3.5.0"
-Import-Package: org.apache.log4j,
- org.apache.commons.logging
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: eTrice Config DSL UI
+Bundle-Vendor: eTrice (Incubation)
+Bundle-Version: 0.2.0.qualifier
+Bundle-SymbolicName: org.eclipse.etrice.core.config.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.etrice.core.config;visibility:=reexport,
+ org.eclipse.xtext.ui,
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.ui,
+ org.eclipse.xtext.builder,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types.ui,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.compare
+Import-Package: org.apache.log4j,
+ org.apache.commons.logging
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.etrice.core.ui.contentassist.antlr,
+ org.eclipse.etrice.core.ui.internal
+Bundle-Activator: org.eclipse.etrice.core.ui.internal.ConfigActivator
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/AbstractConfigUiModule.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/AbstractConfigUiModule.class
new file mode 100644
index 000000000..d6f6c1b20
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/AbstractConfigUiModule.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/ConfigExecutableExtensionFactory.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/ConfigExecutableExtensionFactory.class
new file mode 100644
index 000000000..201b4d34e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/ConfigExecutableExtensionFactory.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/ConfigUiModule.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/ConfigUiModule.class
new file mode 100644
index 000000000..dd75e558b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/ConfigUiModule.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/AbstractConfigProposalProvider.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/AbstractConfigProposalProvider.class
new file mode 100644
index 000000000..910b3cb3b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/AbstractConfigProposalProvider.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.class
new file mode 100644
index 000000000..571742d4a
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser$1.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser$1.class
new file mode 100644
index 000000000..517da2134
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser$1.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser.class
new file mode 100644
index 000000000..8f2ca5ac0
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/PartialConfigContentAssistParser.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/PartialConfigContentAssistParser.class
new file mode 100644
index 000000000..5dd89f8fc
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/PartialConfigContentAssistParser.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g
new file mode 100644
index 000000000..a023a2bdf
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g
@@ -0,0 +1,499 @@
+/*
+* generated by Xtext
+*/
+grammar InternalConfig;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+
+}
+
+@lexer::header {
+package org.eclipse.etrice.core.ui.contentassist.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.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.eclipse.etrice.core.ui.contentassist.antlr.internal;
+
+import java.io.InputStream;
+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.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.etrice.core.services.ConfigGrammarAccess;
+
+}
+
+@parser::members {
+
+ private ConfigGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(ConfigGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+}
+
+
+
+
+// Entry rule entryRuleConfigModel
+entryRuleConfigModel
+:
+{ before(grammarAccess.getConfigModelRule()); }
+ ruleConfigModel
+{ after(grammarAccess.getConfigModelRule()); }
+ EOF
+;
+
+// Rule ConfigModel
+ruleConfigModel
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getConfigModelAccess().getGroup()); }
+(rule__ConfigModel__Group__0)
+{ after(grammarAccess.getConfigModelAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActorClassConfig
+entryRuleActorClassConfig
+:
+{ before(grammarAccess.getActorClassConfigRule()); }
+ ruleActorClassConfig
+{ after(grammarAccess.getActorClassConfigRule()); }
+ EOF
+;
+
+// Rule ActorClassConfig
+ruleActorClassConfig
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getActorClassConfigAccess().getGroup()); }
+(rule__ActorClassConfig__Group__0)
+{ after(grammarAccess.getActorClassConfigAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActorInstanceConfig
+entryRuleActorInstanceConfig
+:
+{ before(grammarAccess.getActorInstanceConfigRule()); }
+ ruleActorInstanceConfig
+{ after(grammarAccess.getActorInstanceConfigRule()); }
+ EOF
+;
+
+// Rule ActorInstanceConfig
+ruleActorInstanceConfig
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getActorInstanceConfigAccess().getGroup()); }
+(rule__ActorInstanceConfig__Group__0)
+{ after(grammarAccess.getActorInstanceConfigAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConfigModel__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ConfigModel__Group__0__Impl
+ rule__ConfigModel__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ConfigModel__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getConfigModelAccess().getActorClassConfigsAssignment_0()); }
+(rule__ConfigModel__ActorClassConfigsAssignment_0)*
+{ after(grammarAccess.getConfigModelAccess().getActorClassConfigsAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ConfigModel__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ConfigModel__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ConfigModel__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getConfigModelAccess().getActorInstanceConfigsAssignment_1()); }
+(rule__ConfigModel__ActorInstanceConfigsAssignment_1)*
+{ after(grammarAccess.getConfigModelAccess().getActorInstanceConfigsAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActorClassConfig__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorClassConfig__Group__0__Impl
+ rule__ActorClassConfig__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getActorClassConfigKeyword_0()); }
+
+ 'ActorClassConfig'
+
+{ after(grammarAccess.getActorClassConfigAccess().getActorClassConfigKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorClassConfig__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorClassConfig__Group__1__Impl
+ rule__ActorClassConfig__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getActorClassAssignment_1()); }
+(rule__ActorClassConfig__ActorClassAssignment_1)
+{ after(grammarAccess.getActorClassConfigAccess().getActorClassAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorClassConfig__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorClassConfig__Group__2__Impl
+ rule__ActorClassConfig__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getLeftCurlyBracketKeyword_2()); }
+
+ '{'
+
+{ after(grammarAccess.getActorClassConfigAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorClassConfig__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorClassConfig__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getRightCurlyBracketKeyword_3()); }
+
+ '}'
+
+{ after(grammarAccess.getActorClassConfigAccess().getRightCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__ActorInstanceConfig__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorInstanceConfig__Group__0__Impl
+ rule__ActorInstanceConfig__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorInstanceConfig__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorInstanceConfigAccess().getActorInstanceConfigKeyword_0()); }
+
+ 'ActorInstanceConfig'
+
+{ after(grammarAccess.getActorInstanceConfigAccess().getActorInstanceConfigKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorInstanceConfig__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorInstanceConfig__Group__1__Impl
+ rule__ActorInstanceConfig__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorInstanceConfig__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorInstanceConfigAccess().getLeftCurlyBracketKeyword_1()); }
+
+ '{'
+
+{ after(grammarAccess.getActorInstanceConfigAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorInstanceConfig__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorInstanceConfig__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorInstanceConfig__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorInstanceConfigAccess().getRightCurlyBracketKeyword_2()); }
+
+ '}'
+
+{ after(grammarAccess.getActorInstanceConfigAccess().getRightCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+rule__ConfigModel__ActorClassConfigsAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getConfigModelAccess().getActorClassConfigsActorClassConfigParserRuleCall_0_0()); }
+ ruleActorClassConfig{ after(grammarAccess.getConfigModelAccess().getActorClassConfigsActorClassConfigParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ConfigModel__ActorInstanceConfigsAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getConfigModelAccess().getActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0()); }
+ ruleActorInstanceConfig{ after(grammarAccess.getConfigModelAccess().getActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__ActorClassAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getActorClassActorClassCrossReference_1_0()); }
+(
+{ before(grammarAccess.getActorClassConfigAccess().getActorClassActorClassIDTerminalRuleCall_1_0_1()); }
+ RULE_ID{ after(grammarAccess.getActorClassConfigAccess().getActorClassActorClassIDTerminalRuleCall_1_0_1()); }
+)
+{ after(grammarAccess.getActorClassConfigAccess().getActorClassActorClassCrossReference_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+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.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.tokens b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.tokens
new file mode 100644
index 000000000..536f0772f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/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.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer$DFA12.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer$DFA12.class
new file mode 100644
index 000000000..6089a2ec3
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer$DFA12.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer.class
new file mode 100644
index 000000000..4980ae994
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigParser.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigParser.class
new file mode 100644
index 000000000..b3228cfd3
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigParser.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/internal/ConfigActivator.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/internal/ConfigActivator.class
new file mode 100644
index 000000000..a9f01e902
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/internal/ConfigActivator.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/labeling/ConfigDescriptionLabelProvider.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/labeling/ConfigDescriptionLabelProvider.class
new file mode 100644
index 000000000..6ecdae988
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/labeling/ConfigDescriptionLabelProvider.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/labeling/ConfigLabelProvider.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/labeling/ConfigLabelProvider.class
new file mode 100644
index 000000000..9facd877d
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/labeling/ConfigLabelProvider.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/outline/ConfigOutlineTreeProvider.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/outline/ConfigOutlineTreeProvider.class
new file mode 100644
index 000000000..d59117e2c
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/outline/ConfigOutlineTreeProvider.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/quickfix/ConfigQuickfixProvider.class b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/quickfix/ConfigQuickfixProvider.class
new file mode 100644
index 000000000..093ae5559
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/bin/org/eclipse/etrice/core/ui/quickfix/ConfigQuickfixProvider.class
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.config.ui/plugin.xml b/plugins/org.eclipse.etrice.core.config.ui/plugin.xml
new file mode 100644
index 000000000..88804d58a
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/plugin.xml
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="config"
+ id="org.eclipse.etrice.core.Config"
+ name="Config Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.etrice.core.Config.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.etrice.core.Config.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.etrice.core.Config"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.etrice.core.Config"
+ name="Config">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.etrice.core.Config.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.etrice.core.Config.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.etrice.core.Config"
+ name="Config">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.eclipse.etrice.core.ui.keyword_Config"
+ label="Config"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.etrice.core.Config.validate"
+ name="Validate">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.etrice.core.Config.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="config">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="config">
+ </resourceServiceProvider>
+ </extension>
+
+
+
+ <extension
+ point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+ </participant>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.etrice.core.Config.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.etrice.core.Config.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.etrice.core.Config.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator">
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.IRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="org.eclipse.etrice.core.Config.refactoring"
+ name="Refactoring">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ </extension>
+
+
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="org.eclipse.etrice.core.Config.compare.contentViewers"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="config">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="org.eclipse.etrice.core.Config.compare.contentMergeViewers"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="config" label="Config Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="org.eclipse.etrice.core.Config.editors.documentProviders"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="config">
+ </provider>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.etrice.core.config.ui/plugin.xml_gen b/plugins/org.eclipse.etrice.core.config.ui/plugin.xml_gen
new file mode 100644
index 000000000..88804d58a
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/plugin.xml_gen
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="config"
+ id="org.eclipse.etrice.core.Config"
+ name="Config Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.etrice.core.Config.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.etrice.core.Config.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.etrice.core.Config"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.etrice.core.Config"
+ name="Config">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.etrice.core.Config.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.etrice.core.Config.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.etrice.core.Config"
+ name="Config">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.eclipse.etrice.core.ui.keyword_Config"
+ label="Config"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.etrice.core.Config.validate"
+ name="Validate">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.etrice.core.Config.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="config">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="config">
+ </resourceServiceProvider>
+ </extension>
+
+
+
+ <extension
+ point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+ </participant>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.etrice.core.Config.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.etrice.core.Config.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.etrice.core.Config.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator">
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.IRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.etrice.core.Config.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.etrice.core.Config"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="org.eclipse.etrice.core.Config.refactoring"
+ name="Refactoring">
+ <keywordReference id="org.eclipse.etrice.core.ui.keyword_Config"/>
+ </page>
+ </extension>
+
+
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="org.eclipse.etrice.core.Config.compare.contentViewers"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="config">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="org.eclipse.etrice.core.Config.compare.contentMergeViewers"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="config" label="Config Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="org.eclipse.etrice.core.Config.editors.documentProviders"
+ class="org.eclipse.etrice.core.ui.ConfigExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="config">
+ </provider>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/AbstractConfigUiModule.java b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/AbstractConfigUiModule.java
new file mode 100644
index 000000000..5f1ee0bd1
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/AbstractConfigUiModule.java
@@ -0,0 +1,242 @@
+
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.eclipse.etrice.core.ui.ConfigUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractConfigUiModule extends DefaultUiModule {
+
+ public AbstractConfigUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+
+ // contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+ public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
+ return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState();
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() {
+ return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureHighlightingLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.etrice.core.parser.antlr.internal.InternalConfigLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator.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.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
+ return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+ return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+ return org.eclipse.xtext.builder.BuilderParticipant.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
+ return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+ public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+ return org.eclipse.etrice.core.ui.labeling.ConfigLabelProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+ public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(org.eclipse.etrice.core.ui.labeling.ConfigDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return org.eclipse.etrice.core.ui.outline.ConfigOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+ return org.eclipse.etrice.core.ui.outline.ConfigOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+ return org.eclipse.etrice.core.ui.quickfix.ConfigQuickfixProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.contentAssist.JavaBasedContentAssistFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+ return org.eclipse.etrice.core.ui.contentassist.ConfigProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+ return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
+ return org.eclipse.etrice.core.ui.contentassist.antlr.ConfigParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.etrice.core.ui.contentassist.antlr.internal.InternalConfigLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.etrice.core.ui.contentassist.antlr.internal.InternalConfigLexer.class));
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.eclipse.etrice.core.ui.contentassist.antlr.internal.InternalConfigLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() {
+ return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport.Factory.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameElementHandler> bindIRenameElementHandler() {
+ return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler.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 Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+ return org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderFactory.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.ui.JdtBasedSimpleTypeScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider> bindITypesProposalProvider() {
+ return org.eclipse.xtext.common.types.xtext.ui.JdtTypesProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.access.jdt.IJavaProjectProvider> bindIJavaProjectProvider() {
+ return org.eclipse.xtext.common.types.xtext.ui.XtextResourceSetBasedProjectProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper> bindIHyperlinkHelper() {
+ return org.eclipse.xtext.common.types.xtext.ui.TypeAwareHyperlinkHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() {
+ return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider.ReferenceProposalCreator> bindAbstractJavaBasedContentProposalProvider$ReferenceProposalCreator() {
+ return org.eclipse.xtext.common.types.xtext.ui.TypeAwareReferenceProposalCreator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.IValidationJobScheduler> bindIValidationJobScheduler() {
+ return org.eclipse.xtext.common.types.xtext.ui.JdtValidationJobScheduler.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.impl.RefactoringResourceSetProvider> bindRefactoringResourceSetProvider() {
+ return org.eclipse.xtext.common.types.ui.refactoring.JvmRefactoringResourceSetProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+ return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() {
+ return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry();
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() {
+ return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+ return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
+ return org.eclipse.etrice.core.ui.contentassist.antlr.PartialConfigContentAssistParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+ public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() {
+ return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class;
+ }
+
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/ConfigExecutableExtensionFactory.java b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/ConfigExecutableExtensionFactory.java
new file mode 100644
index 000000000..492ef4f22
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/ConfigExecutableExtensionFactory.java
@@ -0,0 +1,27 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class ConfigExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return org.eclipse.etrice.core.ui.internal.ConfigActivator.getInstance().getBundle();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return org.eclipse.etrice.core.ui.internal.ConfigActivator.getInstance().getInjector("org.eclipse.etrice.core.Config");
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/AbstractConfigProposalProvider.java b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/AbstractConfigProposalProvider.java
new file mode 100644
index 000000000..5d78da65b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/AbstractConfigProposalProvider.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of interface {@link IProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them
+ * with a more concrete subtype.
+ */
+@SuppressWarnings("all")
+public class AbstractConfigProposalProvider extends TerminalsProposalProvider {
+
+ public void completeConfigModel_ActorClassConfigs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeConfigModel_ActorInstanceConfigs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeActorClassConfig_ActorClass(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+
+ public void complete_ConfigModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ActorClassConfig(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ActorInstanceConfig(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser.java b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser.java
new file mode 100644
index 000000000..802d834b3
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/ConfigParser.java
@@ -0,0 +1,75 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.RecognitionException;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+
+import com.google.inject.Inject;
+
+import org.eclipse.etrice.core.services.ConfigGrammarAccess;
+
+public class ConfigParser extends AbstractContentAssistParser {
+
+ @Inject
+ private ConfigGrammarAccess grammarAccess;
+
+ private Map<AbstractElement, String> nameMappings;
+
+ @Override
+ protected org.eclipse.etrice.core.ui.contentassist.antlr.internal.InternalConfigParser createParser() {
+ org.eclipse.etrice.core.ui.contentassist.antlr.internal.InternalConfigParser result = new org.eclipse.etrice.core.ui.contentassist.antlr.internal.InternalConfigParser(null);
+ result.setGrammarAccess(grammarAccess);
+ return result;
+ }
+
+ @Override
+ protected String getRuleName(AbstractElement element) {
+ if (nameMappings == null) {
+ nameMappings = new HashMap<AbstractElement, String>() {
+ private static final long serialVersionUID = 1L;
+ {
+ put(grammarAccess.getConfigModelAccess().getGroup(), "rule__ConfigModel__Group__0");
+ put(grammarAccess.getActorClassConfigAccess().getGroup(), "rule__ActorClassConfig__Group__0");
+ put(grammarAccess.getActorInstanceConfigAccess().getGroup(), "rule__ActorInstanceConfig__Group__0");
+ put(grammarAccess.getConfigModelAccess().getActorClassConfigsAssignment_0(), "rule__ConfigModel__ActorClassConfigsAssignment_0");
+ put(grammarAccess.getConfigModelAccess().getActorInstanceConfigsAssignment_1(), "rule__ConfigModel__ActorInstanceConfigsAssignment_1");
+ put(grammarAccess.getActorClassConfigAccess().getActorClassAssignment_1(), "rule__ActorClassConfig__ActorClassAssignment_1");
+ }
+ };
+ }
+ return nameMappings.get(element);
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ try {
+ org.eclipse.etrice.core.ui.contentassist.antlr.internal.InternalConfigParser typedParser = (org.eclipse.etrice.core.ui.contentassist.antlr.internal.InternalConfigParser) parser;
+ typedParser.entryRuleConfigModel();
+ return typedParser.getFollowElements();
+ } catch(RecognitionException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
+ @Override
+ protected String[] getInitialHiddenTokens() {
+ return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+ }
+
+ public ConfigGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(ConfigGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/PartialConfigContentAssistParser.java b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/PartialConfigContentAssistParser.java
new file mode 100644
index 000000000..4d2604f3e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/PartialConfigContentAssistParser.java
@@ -0,0 +1,37 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+/**
+ * @author Sebastian Zarnekow - Initial contribution and API
+ */
+public class PartialConfigContentAssistParser extends ConfigParser implements IPartialContentAssistParser {
+
+ private AbstractRule rule;
+
+ public void initializeFor(AbstractRule rule) {
+ this.rule = rule;
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ if (rule == null || rule.eIsProxy())
+ return Collections.emptyList();
+ String methodName = "entryRule" + rule.getName();
+ PolymorphicDispatcher<Collection<FollowElement>> dispatcher =
+ new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+ dispatcher.invoke();
+ return parser.getFollowElements();
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g
new file mode 100644
index 000000000..a023a2bdf
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g
@@ -0,0 +1,499 @@
+/*
+* generated by Xtext
+*/
+grammar InternalConfig;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+
+}
+
+@lexer::header {
+package org.eclipse.etrice.core.ui.contentassist.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.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.eclipse.etrice.core.ui.contentassist.antlr.internal;
+
+import java.io.InputStream;
+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.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.etrice.core.services.ConfigGrammarAccess;
+
+}
+
+@parser::members {
+
+ private ConfigGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(ConfigGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+}
+
+
+
+
+// Entry rule entryRuleConfigModel
+entryRuleConfigModel
+:
+{ before(grammarAccess.getConfigModelRule()); }
+ ruleConfigModel
+{ after(grammarAccess.getConfigModelRule()); }
+ EOF
+;
+
+// Rule ConfigModel
+ruleConfigModel
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getConfigModelAccess().getGroup()); }
+(rule__ConfigModel__Group__0)
+{ after(grammarAccess.getConfigModelAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActorClassConfig
+entryRuleActorClassConfig
+:
+{ before(grammarAccess.getActorClassConfigRule()); }
+ ruleActorClassConfig
+{ after(grammarAccess.getActorClassConfigRule()); }
+ EOF
+;
+
+// Rule ActorClassConfig
+ruleActorClassConfig
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getActorClassConfigAccess().getGroup()); }
+(rule__ActorClassConfig__Group__0)
+{ after(grammarAccess.getActorClassConfigAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActorInstanceConfig
+entryRuleActorInstanceConfig
+:
+{ before(grammarAccess.getActorInstanceConfigRule()); }
+ ruleActorInstanceConfig
+{ after(grammarAccess.getActorInstanceConfigRule()); }
+ EOF
+;
+
+// Rule ActorInstanceConfig
+ruleActorInstanceConfig
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getActorInstanceConfigAccess().getGroup()); }
+(rule__ActorInstanceConfig__Group__0)
+{ after(grammarAccess.getActorInstanceConfigAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConfigModel__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ConfigModel__Group__0__Impl
+ rule__ConfigModel__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ConfigModel__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getConfigModelAccess().getActorClassConfigsAssignment_0()); }
+(rule__ConfigModel__ActorClassConfigsAssignment_0)*
+{ after(grammarAccess.getConfigModelAccess().getActorClassConfigsAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ConfigModel__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ConfigModel__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ConfigModel__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getConfigModelAccess().getActorInstanceConfigsAssignment_1()); }
+(rule__ConfigModel__ActorInstanceConfigsAssignment_1)*
+{ after(grammarAccess.getConfigModelAccess().getActorInstanceConfigsAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActorClassConfig__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorClassConfig__Group__0__Impl
+ rule__ActorClassConfig__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getActorClassConfigKeyword_0()); }
+
+ 'ActorClassConfig'
+
+{ after(grammarAccess.getActorClassConfigAccess().getActorClassConfigKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorClassConfig__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorClassConfig__Group__1__Impl
+ rule__ActorClassConfig__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getActorClassAssignment_1()); }
+(rule__ActorClassConfig__ActorClassAssignment_1)
+{ after(grammarAccess.getActorClassConfigAccess().getActorClassAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorClassConfig__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorClassConfig__Group__2__Impl
+ rule__ActorClassConfig__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getLeftCurlyBracketKeyword_2()); }
+
+ '{'
+
+{ after(grammarAccess.getActorClassConfigAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorClassConfig__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorClassConfig__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getRightCurlyBracketKeyword_3()); }
+
+ '}'
+
+{ after(grammarAccess.getActorClassConfigAccess().getRightCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__ActorInstanceConfig__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorInstanceConfig__Group__0__Impl
+ rule__ActorInstanceConfig__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorInstanceConfig__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorInstanceConfigAccess().getActorInstanceConfigKeyword_0()); }
+
+ 'ActorInstanceConfig'
+
+{ after(grammarAccess.getActorInstanceConfigAccess().getActorInstanceConfigKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorInstanceConfig__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorInstanceConfig__Group__1__Impl
+ rule__ActorInstanceConfig__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorInstanceConfig__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorInstanceConfigAccess().getLeftCurlyBracketKeyword_1()); }
+
+ '{'
+
+{ after(grammarAccess.getActorInstanceConfigAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ActorInstanceConfig__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ActorInstanceConfig__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorInstanceConfig__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorInstanceConfigAccess().getRightCurlyBracketKeyword_2()); }
+
+ '}'
+
+{ after(grammarAccess.getActorInstanceConfigAccess().getRightCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+rule__ConfigModel__ActorClassConfigsAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getConfigModelAccess().getActorClassConfigsActorClassConfigParserRuleCall_0_0()); }
+ ruleActorClassConfig{ after(grammarAccess.getConfigModelAccess().getActorClassConfigsActorClassConfigParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ConfigModel__ActorInstanceConfigsAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getConfigModelAccess().getActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0()); }
+ ruleActorInstanceConfig{ after(grammarAccess.getConfigModelAccess().getActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ActorClassConfig__ActorClassAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getActorClassConfigAccess().getActorClassActorClassCrossReference_1_0()); }
+(
+{ before(grammarAccess.getActorClassConfigAccess().getActorClassActorClassIDTerminalRuleCall_1_0_1()); }
+ RULE_ID{ after(grammarAccess.getActorClassConfigAccess().getActorClassActorClassIDTerminalRuleCall_1_0_1()); }
+)
+{ after(grammarAccess.getActorClassConfigAccess().getActorClassActorClassCrossReference_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.tokens b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.tokens
new file mode 100644
index 000000000..536f0772f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer.java b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer.java
new file mode 100644
index 000000000..5fbcab914
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigLexer.java
@@ -0,0 +1,895 @@
+package org.eclipse.etrice.core.ui.contentassist.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.ui.editor.contentassist.antlr.internal.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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:11:7: ( 'ActorClassConfig' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:12:7: ( '{' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:13:7: ( '}' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:14:7: ( 'ActorInstanceConfig' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:485:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:485:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:485:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:485: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:485: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:487:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:487:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:487: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:487: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:489: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:491:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:491:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:491: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:491: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:493:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:493:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:493: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:493: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:493: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:493:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:493: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:493: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:495:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:495:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:495: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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:497:16: ( . )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:497:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:34: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:42: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:51: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:63: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:79: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:1:95: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigParser.java b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigParser.java
new file mode 100644
index 000000000..ec6fcbb9e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfigParser.java
@@ -0,0 +1,1202 @@
+package org.eclipse.etrice.core.ui.contentassist.antlr.internal;
+
+import java.io.InputStream;
+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.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+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 AbstractInternalContentAssistParser {
+ 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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g"; }
+
+
+
+ private ConfigGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(ConfigGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+
+
+
+ // $ANTLR start "entryRuleConfigModel"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:60:1: entryRuleConfigModel : ruleConfigModel EOF ;
+ public final void entryRuleConfigModel() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:61:1: ( ruleConfigModel EOF )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:62:1: ruleConfigModel EOF
+ {
+ before(grammarAccess.getConfigModelRule());
+ pushFollow(FOLLOW_ruleConfigModel_in_entryRuleConfigModel61);
+ ruleConfigModel();
+
+ state._fsp--;
+
+ after(grammarAccess.getConfigModelRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleConfigModel68);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleConfigModel"
+
+
+ // $ANTLR start "ruleConfigModel"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:69:1: ruleConfigModel : ( ( rule__ConfigModel__Group__0 ) ) ;
+ public final void ruleConfigModel() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:73:2: ( ( ( rule__ConfigModel__Group__0 ) ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:74:1: ( ( rule__ConfigModel__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:74:1: ( ( rule__ConfigModel__Group__0 ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:75:1: ( rule__ConfigModel__Group__0 )
+ {
+ before(grammarAccess.getConfigModelAccess().getGroup());
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:76:1: ( rule__ConfigModel__Group__0 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:76:2: rule__ConfigModel__Group__0
+ {
+ pushFollow(FOLLOW_rule__ConfigModel__Group__0_in_ruleConfigModel94);
+ rule__ConfigModel__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getConfigModelAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleConfigModel"
+
+
+ // $ANTLR start "entryRuleActorClassConfig"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:88:1: entryRuleActorClassConfig : ruleActorClassConfig EOF ;
+ public final void entryRuleActorClassConfig() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:89:1: ( ruleActorClassConfig EOF )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:90:1: ruleActorClassConfig EOF
+ {
+ before(grammarAccess.getActorClassConfigRule());
+ pushFollow(FOLLOW_ruleActorClassConfig_in_entryRuleActorClassConfig121);
+ ruleActorClassConfig();
+
+ state._fsp--;
+
+ after(grammarAccess.getActorClassConfigRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleActorClassConfig128);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleActorClassConfig"
+
+
+ // $ANTLR start "ruleActorClassConfig"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:97:1: ruleActorClassConfig : ( ( rule__ActorClassConfig__Group__0 ) ) ;
+ public final void ruleActorClassConfig() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:101:2: ( ( ( rule__ActorClassConfig__Group__0 ) ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:102:1: ( ( rule__ActorClassConfig__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:102:1: ( ( rule__ActorClassConfig__Group__0 ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:103:1: ( rule__ActorClassConfig__Group__0 )
+ {
+ before(grammarAccess.getActorClassConfigAccess().getGroup());
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:104:1: ( rule__ActorClassConfig__Group__0 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:104:2: rule__ActorClassConfig__Group__0
+ {
+ pushFollow(FOLLOW_rule__ActorClassConfig__Group__0_in_ruleActorClassConfig154);
+ rule__ActorClassConfig__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getActorClassConfigAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleActorClassConfig"
+
+
+ // $ANTLR start "entryRuleActorInstanceConfig"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:116:1: entryRuleActorInstanceConfig : ruleActorInstanceConfig EOF ;
+ public final void entryRuleActorInstanceConfig() throws RecognitionException {
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:117:1: ( ruleActorInstanceConfig EOF )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:118:1: ruleActorInstanceConfig EOF
+ {
+ before(grammarAccess.getActorInstanceConfigRule());
+ pushFollow(FOLLOW_ruleActorInstanceConfig_in_entryRuleActorInstanceConfig181);
+ ruleActorInstanceConfig();
+
+ state._fsp--;
+
+ after(grammarAccess.getActorInstanceConfigRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleActorInstanceConfig188);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleActorInstanceConfig"
+
+
+ // $ANTLR start "ruleActorInstanceConfig"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:125:1: ruleActorInstanceConfig : ( ( rule__ActorInstanceConfig__Group__0 ) ) ;
+ public final void ruleActorInstanceConfig() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:129:2: ( ( ( rule__ActorInstanceConfig__Group__0 ) ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:130:1: ( ( rule__ActorInstanceConfig__Group__0 ) )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:130:1: ( ( rule__ActorInstanceConfig__Group__0 ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:131:1: ( rule__ActorInstanceConfig__Group__0 )
+ {
+ before(grammarAccess.getActorInstanceConfigAccess().getGroup());
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:132:1: ( rule__ActorInstanceConfig__Group__0 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:132:2: rule__ActorInstanceConfig__Group__0
+ {
+ pushFollow(FOLLOW_rule__ActorInstanceConfig__Group__0_in_ruleActorInstanceConfig214);
+ rule__ActorInstanceConfig__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getActorInstanceConfigAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleActorInstanceConfig"
+
+
+ // $ANTLR start "rule__ConfigModel__Group__0"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:146:1: rule__ConfigModel__Group__0 : rule__ConfigModel__Group__0__Impl rule__ConfigModel__Group__1 ;
+ public final void rule__ConfigModel__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:150:1: ( rule__ConfigModel__Group__0__Impl rule__ConfigModel__Group__1 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:151:2: rule__ConfigModel__Group__0__Impl rule__ConfigModel__Group__1
+ {
+ pushFollow(FOLLOW_rule__ConfigModel__Group__0__Impl_in_rule__ConfigModel__Group__0248);
+ rule__ConfigModel__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__ConfigModel__Group__1_in_rule__ConfigModel__Group__0251);
+ rule__ConfigModel__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ConfigModel__Group__0"
+
+
+ // $ANTLR start "rule__ConfigModel__Group__0__Impl"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:158:1: rule__ConfigModel__Group__0__Impl : ( ( rule__ConfigModel__ActorClassConfigsAssignment_0 )* ) ;
+ public final void rule__ConfigModel__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:162:1: ( ( ( rule__ConfigModel__ActorClassConfigsAssignment_0 )* ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:163:1: ( ( rule__ConfigModel__ActorClassConfigsAssignment_0 )* )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:163:1: ( ( rule__ConfigModel__ActorClassConfigsAssignment_0 )* )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:164:1: ( rule__ConfigModel__ActorClassConfigsAssignment_0 )*
+ {
+ before(grammarAccess.getConfigModelAccess().getActorClassConfigsAssignment_0());
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:165:1: ( rule__ConfigModel__ActorClassConfigsAssignment_0 )*
+ 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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:165:2: rule__ConfigModel__ActorClassConfigsAssignment_0
+ {
+ pushFollow(FOLLOW_rule__ConfigModel__ActorClassConfigsAssignment_0_in_rule__ConfigModel__Group__0__Impl278);
+ rule__ConfigModel__ActorClassConfigsAssignment_0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+ after(grammarAccess.getConfigModelAccess().getActorClassConfigsAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ConfigModel__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ConfigModel__Group__1"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:175:1: rule__ConfigModel__Group__1 : rule__ConfigModel__Group__1__Impl ;
+ public final void rule__ConfigModel__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:179:1: ( rule__ConfigModel__Group__1__Impl )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:180:2: rule__ConfigModel__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__ConfigModel__Group__1__Impl_in_rule__ConfigModel__Group__1309);
+ rule__ConfigModel__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ConfigModel__Group__1"
+
+
+ // $ANTLR start "rule__ConfigModel__Group__1__Impl"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:186:1: rule__ConfigModel__Group__1__Impl : ( ( rule__ConfigModel__ActorInstanceConfigsAssignment_1 )* ) ;
+ public final void rule__ConfigModel__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:190:1: ( ( ( rule__ConfigModel__ActorInstanceConfigsAssignment_1 )* ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:191:1: ( ( rule__ConfigModel__ActorInstanceConfigsAssignment_1 )* )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:191:1: ( ( rule__ConfigModel__ActorInstanceConfigsAssignment_1 )* )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:192:1: ( rule__ConfigModel__ActorInstanceConfigsAssignment_1 )*
+ {
+ before(grammarAccess.getConfigModelAccess().getActorInstanceConfigsAssignment_1());
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:193:1: ( rule__ConfigModel__ActorInstanceConfigsAssignment_1 )*
+ 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.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:193:2: rule__ConfigModel__ActorInstanceConfigsAssignment_1
+ {
+ pushFollow(FOLLOW_rule__ConfigModel__ActorInstanceConfigsAssignment_1_in_rule__ConfigModel__Group__1__Impl336);
+ rule__ConfigModel__ActorInstanceConfigsAssignment_1();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+ after(grammarAccess.getConfigModelAccess().getActorInstanceConfigsAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ConfigModel__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ActorClassConfig__Group__0"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:207:1: rule__ActorClassConfig__Group__0 : rule__ActorClassConfig__Group__0__Impl rule__ActorClassConfig__Group__1 ;
+ public final void rule__ActorClassConfig__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:211:1: ( rule__ActorClassConfig__Group__0__Impl rule__ActorClassConfig__Group__1 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:212:2: rule__ActorClassConfig__Group__0__Impl rule__ActorClassConfig__Group__1
+ {
+ pushFollow(FOLLOW_rule__ActorClassConfig__Group__0__Impl_in_rule__ActorClassConfig__Group__0371);
+ rule__ActorClassConfig__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__ActorClassConfig__Group__1_in_rule__ActorClassConfig__Group__0374);
+ rule__ActorClassConfig__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorClassConfig__Group__0"
+
+
+ // $ANTLR start "rule__ActorClassConfig__Group__0__Impl"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:219:1: rule__ActorClassConfig__Group__0__Impl : ( 'ActorClassConfig' ) ;
+ public final void rule__ActorClassConfig__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:223:1: ( ( 'ActorClassConfig' ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:224:1: ( 'ActorClassConfig' )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:224:1: ( 'ActorClassConfig' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:225:1: 'ActorClassConfig'
+ {
+ before(grammarAccess.getActorClassConfigAccess().getActorClassConfigKeyword_0());
+ match(input,11,FOLLOW_11_in_rule__ActorClassConfig__Group__0__Impl402);
+ after(grammarAccess.getActorClassConfigAccess().getActorClassConfigKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorClassConfig__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ActorClassConfig__Group__1"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:238:1: rule__ActorClassConfig__Group__1 : rule__ActorClassConfig__Group__1__Impl rule__ActorClassConfig__Group__2 ;
+ public final void rule__ActorClassConfig__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:242:1: ( rule__ActorClassConfig__Group__1__Impl rule__ActorClassConfig__Group__2 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:243:2: rule__ActorClassConfig__Group__1__Impl rule__ActorClassConfig__Group__2
+ {
+ pushFollow(FOLLOW_rule__ActorClassConfig__Group__1__Impl_in_rule__ActorClassConfig__Group__1433);
+ rule__ActorClassConfig__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__ActorClassConfig__Group__2_in_rule__ActorClassConfig__Group__1436);
+ rule__ActorClassConfig__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorClassConfig__Group__1"
+
+
+ // $ANTLR start "rule__ActorClassConfig__Group__1__Impl"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:250:1: rule__ActorClassConfig__Group__1__Impl : ( ( rule__ActorClassConfig__ActorClassAssignment_1 ) ) ;
+ public final void rule__ActorClassConfig__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:254:1: ( ( ( rule__ActorClassConfig__ActorClassAssignment_1 ) ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:255:1: ( ( rule__ActorClassConfig__ActorClassAssignment_1 ) )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:255:1: ( ( rule__ActorClassConfig__ActorClassAssignment_1 ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:256:1: ( rule__ActorClassConfig__ActorClassAssignment_1 )
+ {
+ before(grammarAccess.getActorClassConfigAccess().getActorClassAssignment_1());
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:257:1: ( rule__ActorClassConfig__ActorClassAssignment_1 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:257:2: rule__ActorClassConfig__ActorClassAssignment_1
+ {
+ pushFollow(FOLLOW_rule__ActorClassConfig__ActorClassAssignment_1_in_rule__ActorClassConfig__Group__1__Impl463);
+ rule__ActorClassConfig__ActorClassAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getActorClassConfigAccess().getActorClassAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorClassConfig__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ActorClassConfig__Group__2"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:267:1: rule__ActorClassConfig__Group__2 : rule__ActorClassConfig__Group__2__Impl rule__ActorClassConfig__Group__3 ;
+ public final void rule__ActorClassConfig__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:271:1: ( rule__ActorClassConfig__Group__2__Impl rule__ActorClassConfig__Group__3 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:272:2: rule__ActorClassConfig__Group__2__Impl rule__ActorClassConfig__Group__3
+ {
+ pushFollow(FOLLOW_rule__ActorClassConfig__Group__2__Impl_in_rule__ActorClassConfig__Group__2493);
+ rule__ActorClassConfig__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__ActorClassConfig__Group__3_in_rule__ActorClassConfig__Group__2496);
+ rule__ActorClassConfig__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorClassConfig__Group__2"
+
+
+ // $ANTLR start "rule__ActorClassConfig__Group__2__Impl"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:279:1: rule__ActorClassConfig__Group__2__Impl : ( '{' ) ;
+ public final void rule__ActorClassConfig__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:283:1: ( ( '{' ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:284:1: ( '{' )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:284:1: ( '{' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:285:1: '{'
+ {
+ before(grammarAccess.getActorClassConfigAccess().getLeftCurlyBracketKeyword_2());
+ match(input,12,FOLLOW_12_in_rule__ActorClassConfig__Group__2__Impl524);
+ after(grammarAccess.getActorClassConfigAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorClassConfig__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ActorClassConfig__Group__3"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:298:1: rule__ActorClassConfig__Group__3 : rule__ActorClassConfig__Group__3__Impl ;
+ public final void rule__ActorClassConfig__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:302:1: ( rule__ActorClassConfig__Group__3__Impl )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:303:2: rule__ActorClassConfig__Group__3__Impl
+ {
+ pushFollow(FOLLOW_rule__ActorClassConfig__Group__3__Impl_in_rule__ActorClassConfig__Group__3555);
+ rule__ActorClassConfig__Group__3__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorClassConfig__Group__3"
+
+
+ // $ANTLR start "rule__ActorClassConfig__Group__3__Impl"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:309:1: rule__ActorClassConfig__Group__3__Impl : ( '}' ) ;
+ public final void rule__ActorClassConfig__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:313:1: ( ( '}' ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:314:1: ( '}' )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:314:1: ( '}' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:315:1: '}'
+ {
+ before(grammarAccess.getActorClassConfigAccess().getRightCurlyBracketKeyword_3());
+ match(input,13,FOLLOW_13_in_rule__ActorClassConfig__Group__3__Impl583);
+ after(grammarAccess.getActorClassConfigAccess().getRightCurlyBracketKeyword_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorClassConfig__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ActorInstanceConfig__Group__0"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:336:1: rule__ActorInstanceConfig__Group__0 : rule__ActorInstanceConfig__Group__0__Impl rule__ActorInstanceConfig__Group__1 ;
+ public final void rule__ActorInstanceConfig__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:340:1: ( rule__ActorInstanceConfig__Group__0__Impl rule__ActorInstanceConfig__Group__1 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:341:2: rule__ActorInstanceConfig__Group__0__Impl rule__ActorInstanceConfig__Group__1
+ {
+ pushFollow(FOLLOW_rule__ActorInstanceConfig__Group__0__Impl_in_rule__ActorInstanceConfig__Group__0622);
+ rule__ActorInstanceConfig__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__ActorInstanceConfig__Group__1_in_rule__ActorInstanceConfig__Group__0625);
+ rule__ActorInstanceConfig__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorInstanceConfig__Group__0"
+
+
+ // $ANTLR start "rule__ActorInstanceConfig__Group__0__Impl"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:348:1: rule__ActorInstanceConfig__Group__0__Impl : ( 'ActorInstanceConfig' ) ;
+ public final void rule__ActorInstanceConfig__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:352:1: ( ( 'ActorInstanceConfig' ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:353:1: ( 'ActorInstanceConfig' )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:353:1: ( 'ActorInstanceConfig' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:354:1: 'ActorInstanceConfig'
+ {
+ before(grammarAccess.getActorInstanceConfigAccess().getActorInstanceConfigKeyword_0());
+ match(input,14,FOLLOW_14_in_rule__ActorInstanceConfig__Group__0__Impl653);
+ after(grammarAccess.getActorInstanceConfigAccess().getActorInstanceConfigKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorInstanceConfig__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ActorInstanceConfig__Group__1"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:367:1: rule__ActorInstanceConfig__Group__1 : rule__ActorInstanceConfig__Group__1__Impl rule__ActorInstanceConfig__Group__2 ;
+ public final void rule__ActorInstanceConfig__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:371:1: ( rule__ActorInstanceConfig__Group__1__Impl rule__ActorInstanceConfig__Group__2 )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:372:2: rule__ActorInstanceConfig__Group__1__Impl rule__ActorInstanceConfig__Group__2
+ {
+ pushFollow(FOLLOW_rule__ActorInstanceConfig__Group__1__Impl_in_rule__ActorInstanceConfig__Group__1684);
+ rule__ActorInstanceConfig__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__ActorInstanceConfig__Group__2_in_rule__ActorInstanceConfig__Group__1687);
+ rule__ActorInstanceConfig__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorInstanceConfig__Group__1"
+
+
+ // $ANTLR start "rule__ActorInstanceConfig__Group__1__Impl"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:379:1: rule__ActorInstanceConfig__Group__1__Impl : ( '{' ) ;
+ public final void rule__ActorInstanceConfig__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:383:1: ( ( '{' ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:384:1: ( '{' )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:384:1: ( '{' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:385:1: '{'
+ {
+ before(grammarAccess.getActorInstanceConfigAccess().getLeftCurlyBracketKeyword_1());
+ match(input,12,FOLLOW_12_in_rule__ActorInstanceConfig__Group__1__Impl715);
+ after(grammarAccess.getActorInstanceConfigAccess().getLeftCurlyBracketKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorInstanceConfig__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ActorInstanceConfig__Group__2"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:398:1: rule__ActorInstanceConfig__Group__2 : rule__ActorInstanceConfig__Group__2__Impl ;
+ public final void rule__ActorInstanceConfig__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:402:1: ( rule__ActorInstanceConfig__Group__2__Impl )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:403:2: rule__ActorInstanceConfig__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__ActorInstanceConfig__Group__2__Impl_in_rule__ActorInstanceConfig__Group__2746);
+ rule__ActorInstanceConfig__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorInstanceConfig__Group__2"
+
+
+ // $ANTLR start "rule__ActorInstanceConfig__Group__2__Impl"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:409:1: rule__ActorInstanceConfig__Group__2__Impl : ( '}' ) ;
+ public final void rule__ActorInstanceConfig__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:413:1: ( ( '}' ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:414:1: ( '}' )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:414:1: ( '}' )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:415:1: '}'
+ {
+ before(grammarAccess.getActorInstanceConfigAccess().getRightCurlyBracketKeyword_2());
+ match(input,13,FOLLOW_13_in_rule__ActorInstanceConfig__Group__2__Impl774);
+ after(grammarAccess.getActorInstanceConfigAccess().getRightCurlyBracketKeyword_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorInstanceConfig__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ConfigModel__ActorClassConfigsAssignment_0"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:435:1: rule__ConfigModel__ActorClassConfigsAssignment_0 : ( ruleActorClassConfig ) ;
+ public final void rule__ConfigModel__ActorClassConfigsAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:439:1: ( ( ruleActorClassConfig ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:440:1: ( ruleActorClassConfig )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:440:1: ( ruleActorClassConfig )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:441:1: ruleActorClassConfig
+ {
+ before(grammarAccess.getConfigModelAccess().getActorClassConfigsActorClassConfigParserRuleCall_0_0());
+ pushFollow(FOLLOW_ruleActorClassConfig_in_rule__ConfigModel__ActorClassConfigsAssignment_0816);
+ ruleActorClassConfig();
+
+ state._fsp--;
+
+ after(grammarAccess.getConfigModelAccess().getActorClassConfigsActorClassConfigParserRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ConfigModel__ActorClassConfigsAssignment_0"
+
+
+ // $ANTLR start "rule__ConfigModel__ActorInstanceConfigsAssignment_1"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:450:1: rule__ConfigModel__ActorInstanceConfigsAssignment_1 : ( ruleActorInstanceConfig ) ;
+ public final void rule__ConfigModel__ActorInstanceConfigsAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:454:1: ( ( ruleActorInstanceConfig ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:455:1: ( ruleActorInstanceConfig )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:455:1: ( ruleActorInstanceConfig )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:456:1: ruleActorInstanceConfig
+ {
+ before(grammarAccess.getConfigModelAccess().getActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0());
+ pushFollow(FOLLOW_ruleActorInstanceConfig_in_rule__ConfigModel__ActorInstanceConfigsAssignment_1847);
+ ruleActorInstanceConfig();
+
+ state._fsp--;
+
+ after(grammarAccess.getConfigModelAccess().getActorInstanceConfigsActorInstanceConfigParserRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ConfigModel__ActorInstanceConfigsAssignment_1"
+
+
+ // $ANTLR start "rule__ActorClassConfig__ActorClassAssignment_1"
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:465:1: rule__ActorClassConfig__ActorClassAssignment_1 : ( ( RULE_ID ) ) ;
+ public final void rule__ActorClassConfig__ActorClassAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:469:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:470:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:470:1: ( ( RULE_ID ) )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:471:1: ( RULE_ID )
+ {
+ before(grammarAccess.getActorClassConfigAccess().getActorClassActorClassCrossReference_1_0());
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:472:1: ( RULE_ID )
+ // ../org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalConfig.g:473:1: RULE_ID
+ {
+ before(grammarAccess.getActorClassConfigAccess().getActorClassActorClassIDTerminalRuleCall_1_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ActorClassConfig__ActorClassAssignment_1882);
+ after(grammarAccess.getActorClassConfigAccess().getActorClassActorClassIDTerminalRuleCall_1_0_1());
+
+ }
+
+ after(grammarAccess.getActorClassConfigAccess().getActorClassActorClassCrossReference_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ActorClassConfig__ActorClassAssignment_1"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_ruleConfigModel_in_entryRuleConfigModel61 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleConfigModel68 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ConfigModel__Group__0_in_ruleConfigModel94 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleActorClassConfig_in_entryRuleActorClassConfig121 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleActorClassConfig128 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ActorClassConfig__Group__0_in_ruleActorClassConfig154 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleActorInstanceConfig_in_entryRuleActorInstanceConfig181 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleActorInstanceConfig188 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ActorInstanceConfig__Group__0_in_ruleActorInstanceConfig214 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ConfigModel__Group__0__Impl_in_rule__ConfigModel__Group__0248 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_rule__ConfigModel__Group__1_in_rule__ConfigModel__Group__0251 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ConfigModel__ActorClassConfigsAssignment_0_in_rule__ConfigModel__Group__0__Impl278 = new BitSet(new long[]{0x0000000000000802L});
+ public static final BitSet FOLLOW_rule__ConfigModel__Group__1__Impl_in_rule__ConfigModel__Group__1309 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ConfigModel__ActorInstanceConfigsAssignment_1_in_rule__ConfigModel__Group__1__Impl336 = new BitSet(new long[]{0x0000000000004002L});
+ public static final BitSet FOLLOW_rule__ActorClassConfig__Group__0__Impl_in_rule__ActorClassConfig__Group__0371 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__ActorClassConfig__Group__1_in_rule__ActorClassConfig__Group__0374 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_rule__ActorClassConfig__Group__0__Impl402 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ActorClassConfig__Group__1__Impl_in_rule__ActorClassConfig__Group__1433 = new BitSet(new long[]{0x0000000000001000L});
+ public static final BitSet FOLLOW_rule__ActorClassConfig__Group__2_in_rule__ActorClassConfig__Group__1436 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ActorClassConfig__ActorClassAssignment_1_in_rule__ActorClassConfig__Group__1__Impl463 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ActorClassConfig__Group__2__Impl_in_rule__ActorClassConfig__Group__2493 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ActorClassConfig__Group__3_in_rule__ActorClassConfig__Group__2496 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_rule__ActorClassConfig__Group__2__Impl524 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ActorClassConfig__Group__3__Impl_in_rule__ActorClassConfig__Group__3555 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__ActorClassConfig__Group__3__Impl583 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ActorInstanceConfig__Group__0__Impl_in_rule__ActorInstanceConfig__Group__0622 = new BitSet(new long[]{0x0000000000001000L});
+ public static final BitSet FOLLOW_rule__ActorInstanceConfig__Group__1_in_rule__ActorInstanceConfig__Group__0625 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_14_in_rule__ActorInstanceConfig__Group__0__Impl653 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ActorInstanceConfig__Group__1__Impl_in_rule__ActorInstanceConfig__Group__1684 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ActorInstanceConfig__Group__2_in_rule__ActorInstanceConfig__Group__1687 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_rule__ActorInstanceConfig__Group__1__Impl715 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ActorInstanceConfig__Group__2__Impl_in_rule__ActorInstanceConfig__Group__2746 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__ActorInstanceConfig__Group__2__Impl774 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleActorClassConfig_in_rule__ConfigModel__ActorClassConfigsAssignment_0816 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleActorInstanceConfig_in_rule__ConfigModel__ActorInstanceConfigsAssignment_1847 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__ActorClassConfig__ActorClassAssignment_1882 = new BitSet(new long[]{0x0000000000000002L});
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/internal/ConfigActivator.java b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/internal/ConfigActivator.java
new file mode 100644
index 000000000..6d008c213
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src-gen/org/eclipse/etrice/core/ui/internal/ConfigActivator.java
@@ -0,0 +1,82 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core.ui.internal;
+
+import static com.google.inject.util.Modules.override;
+import static com.google.inject.Guice.createInjector;
+
+import org.apache.log4j.Logger;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class ConfigActivator extends AbstractUIPlugin {
+
+ private Map<String,Injector> injectors = new HashMap<String,Injector>();
+ private static ConfigActivator INSTANCE;
+
+ public Injector getInjector(String languageName) {
+ return injectors.get(languageName);
+ }
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ INSTANCE = this;
+ try {
+ registerInjectorFor("org.eclipse.etrice.core.Config");
+
+ } catch (Exception e) {
+ Logger.getLogger(getClass()).error(e.getMessage(), e);
+ throw e;
+ }
+ }
+
+ protected void registerInjectorFor(String language) throws Exception {
+ injectors.put(language, createInjector(
+ override(override(getRuntimeModule(language)).with(getSharedStateModule())).with(getUiModule(language))));
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ injectors.clear();
+ INSTANCE = null;
+ super.stop(context);
+ }
+
+ public static ConfigActivator getInstance() {
+ return INSTANCE;
+ }
+
+ protected Module getRuntimeModule(String grammar) {
+ if ("org.eclipse.etrice.core.Config".equals(grammar)) {
+ return new org.eclipse.etrice.core.ConfigRuntimeModule();
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if ("org.eclipse.etrice.core.Config".equals(grammar)) {
+ return new org.eclipse.etrice.core.ui.ConfigUiModule(this);
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new org.eclipse.xtext.ui.shared.SharedStateModule();
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/ConfigUiModule.java b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/ConfigUiModule.java
new file mode 100644
index 000000000..da536451c
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/ConfigUiModule.java
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class ConfigUiModule extends org.eclipse.etrice.core.ui.AbstractConfigUiModule {
+ public ConfigUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.java b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.java
new file mode 100644
index 000000000..a40bceb19
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/contentassist/ConfigProposalProvider.java
@@ -0,0 +1,12 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core.ui.contentassist;
+
+import org.eclipse.etrice.core.ui.contentassist.AbstractConfigProposalProvider;
+/**
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#contentAssist on how to customize content assistant
+ */
+public class ConfigProposalProvider extends AbstractConfigProposalProvider {
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/labeling/ConfigDescriptionLabelProvider.java b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/labeling/ConfigDescriptionLabelProvider.java
new file mode 100644
index 000000000..3cdc1c622
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/labeling/ConfigDescriptionLabelProvider.java
@@ -0,0 +1,27 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core.ui.labeling;
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider;
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ *
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class ConfigDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+
+/*
+ //Labels and icons can be computed like this:
+
+ String text(IEObjectDescription ele) {
+ return "my "+ele.getName();
+ }
+
+ String image(IEObjectDescription ele) {
+ return ele.getEClass().getName() + ".gif";
+ }
+*/
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/labeling/ConfigLabelProvider.java b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/labeling/ConfigLabelProvider.java
new file mode 100644
index 000000000..05911c24d
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/labeling/ConfigLabelProvider.java
@@ -0,0 +1,34 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core.ui.labeling;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider;
+
+import com.google.inject.Inject;
+
+/**
+ * Provides labels for a EObjects.
+ *
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class ConfigLabelProvider extends DefaultEObjectLabelProvider {
+
+ @Inject
+ public ConfigLabelProvider(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+/*
+ //Labels and icons can be computed like this:
+
+ String text(MyModel ele) {
+ return "my "+ele.getName();
+ }
+
+ String image(MyModel ele) {
+ return "MyModel.gif";
+ }
+*/
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/outline/ConfigOutlineTreeProvider.java b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/outline/ConfigOutlineTreeProvider.java
new file mode 100644
index 000000000..e653b972e
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/outline/ConfigOutlineTreeProvider.java
@@ -0,0 +1,14 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * customization of the default outline structure
+ *
+ */
+public class ConfigOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/quickfix/ConfigQuickfixProvider.java b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/quickfix/ConfigQuickfixProvider.java
new file mode 100644
index 000000000..3febfcd8b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config.ui/src/org/eclipse/etrice/core/ui/quickfix/ConfigQuickfixProvider.java
@@ -0,0 +1,19 @@
+
+package org.eclipse.etrice.core.ui.quickfix;
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+
+public class ConfigQuickfixProvider extends DefaultQuickfixProvider {
+
+// @Fix(MyJavaValidator.INVALID_NAME)
+// public void capitalizeName(final Issue issue, IssueResolutionAcceptor acceptor) {
+// acceptor.accept(issue, "Capitalize name", "Capitalize the name.", "upcase.png", new IModification() {
+// public void apply(IModificationContext context) throws BadLocationException {
+// IXtextDocument xtextDocument = context.getXtextDocument();
+// String firstLetter = xtextDocument.get(issue.getOffset(), 1);
+// xtextDocument.replace(issue.getOffset(), 1, firstLetter.toUpperCase());
+// }
+// });
+// }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config/.gitignore b/plugins/org.eclipse.etrice.core.config/.gitignore
index ba077a403..a25460a14 100644
--- a/plugins/org.eclipse.etrice.core.config/.gitignore
+++ b/plugins/org.eclipse.etrice.core.config/.gitignore
@@ -1 +1,2 @@
-bin
+bin
+.antlr-generator-3.2.0.jar \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.core.config/META-INF/MANIFEST.MF b/plugins/org.eclipse.etrice.core.config/META-INF/MANIFEST.MF
index c1e88a812..a4d365d01 100644
--- a/plugins/org.eclipse.etrice.core.config/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.etrice.core.config/META-INF/MANIFEST.MF
@@ -1,18 +1,38 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: org.eclipse.etrice.core.config
-Bundle-Vendor: My Company
-Bundle-Version: 1.0.0
-Bundle-SymbolicName: org.eclipse.etrice.core.config; singleton:=true
-Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.xtext;bundle-version="2.1.0";visibility:=reexport,
- org.eclipse.xtext.xbase;bundle-version="2.1.0";resolution:=optional;visibility:=reexport,
- org.apache.log4j;bundle-version="1.2.15";visibility:=reexport,
- org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional;visibility:=reexport,
- org.eclipse.xtext.generator;resolution:=optional,
- org.eclipse.emf.codegen.ecore;resolution:=optional,
- org.eclipse.emf.mwe.utils;resolution:=optional,
- org.eclipse.emf.mwe2.launch;resolution:=optional
-Import-Package: org.apache.log4j,
- org.apache.commons.logging
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: eTrice Config DSL
+Bundle-Vendor: eTrice (Incubation)
+Bundle-Version: 0.2.0.qualifier
+Bundle-SymbolicName: org.eclipse.etrice.core.config; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;bundle-version="2.1.0";visibility:=reexport,
+ org.eclipse.xtext.xbase;bundle-version="2.1.0";resolution:=optional;visibility:=reexport,
+ org.apache.log4j;bundle-version="1.2.15";visibility:=reexport,
+ org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional;visibility:=reexport,
+ org.eclipse.xtext.generator;resolution:=optional,
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.emf.mwe2.launch;resolution:=optional,
+ org.eclipse.xtext.util,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.common,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types,
+ org.eclipse.etrice.core.room;bundle-version="0.2.0"
+Import-Package: org.apache.log4j,
+ org.apache.commons.logging,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtext.xtend2.lib
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.etrice.core,
+ org.eclipse.etrice.core.services,
+ org.eclipse.etrice.core.config,
+ org.eclipse.etrice.core.config.impl,
+ org.eclipse.etrice.core.config.util,
+ org.eclipse.etrice.core.serializer,
+ org.eclipse.etrice.core.parser.antlr,
+ org.eclipse.etrice.core.parser.antlr.internal,
+ org.eclipse.etrice.core.validation,
+ org.eclipse.etrice.core.scoping,
+ org.eclipse.etrice.core.generator,
+ org.eclipse.etrice.core.formatting
diff --git a/plugins/org.eclipse.etrice.core.config/plugin.xml b/plugins/org.eclipse.etrice.core.config/plugin.xml
new file mode 100644
index 000000000..fc1516a0f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/etrice/core/Config"
+ class = "org.eclipse.etrice.core.config.ConfigPackage"
+ genModel = "org/eclipse/etrice/core/Config.genmodel" />
+
+ </extension>
+
+
+
+
+
+</plugin>
diff --git a/plugins/org.eclipse.etrice.core.config/plugin.xml_gen b/plugins/org.eclipse.etrice.core.config/plugin.xml_gen
new file mode 100644
index 000000000..fc1516a0f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/plugin.xml_gen
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/etrice/core/Config"
+ class = "org.eclipse.etrice.core.config.ConfigPackage"
+ genModel = "org/eclipse/etrice/core/Config.genmodel" />
+
+ </extension>
+
+
+
+
+
+</plugin>
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;
+ }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/Config.xtext b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/Config.xtext
index a0cb9828a..2cfed9ee6 100644
--- a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/Config.xtext
+++ b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/Config.xtext
@@ -1,24 +1,9 @@
-/*******************************************************************************
- * Copyright (c) 2012 protos software gmbh (http://www.protos.de).
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * CONTRIBUTORS:
- * Juergen Haug and Thomas Schuetz (initial contribution)
- *
- *******************************************************************************/
-
-
grammar org.eclipse.etrice.core.Config with org.eclipse.xtext.common.Terminals
generate config "http://www.eclipse.org/etrice/core/Config"
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
import 'platform:/resource/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.ecore' as room
-import 'platform:/resource/org.eclipse.etrice.generator/model/etricegen.ecore' as etricegen
-
-
ConfigModel:
@@ -39,7 +24,7 @@ ActorClassConfig:
// }
ActorInstanceConfig:
- 'ActorInstanceConfig' actorInstance = [etricegen::ActorInstance] '{'
+ 'ActorInstanceConfig' /* root=[room::SubSystemClass|FQN] '/' path=RefPath */ '{'
'}'
-;
+; \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/ConfigRuntimeModule.java b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/ConfigRuntimeModule.java
new file mode 100644
index 000000000..7b4a38eaf
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/ConfigRuntimeModule.java
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class ConfigRuntimeModule extends org.eclipse.etrice.core.AbstractConfigRuntimeModule {
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/ConfigStandaloneSetup.java b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/ConfigStandaloneSetup.java
new file mode 100644
index 000000000..1bc38b2ac
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/ConfigStandaloneSetup.java
@@ -0,0 +1,14 @@
+
+package org.eclipse.etrice.core;
+
+/**
+ * Initialization support for running Xtext languages
+ * without equinox extension registry
+ */
+public class ConfigStandaloneSetup extends ConfigStandaloneSetupGenerated{
+
+ public static void doSetup() {
+ new ConfigStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+}
+
diff --git a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/GenerateConfig.mwe2 b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/GenerateConfig.mwe2
index dd5c0c15d..0bf1eca84 100644
--- a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/GenerateConfig.mwe2
+++ b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/GenerateConfig.mwe2
@@ -1,16 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2012 protos software gmbh (http://www.protos.de).
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * CONTRIBUTORS:
- * Juergen Haug and Thomas Schuetz (initial contribution)
- *
- *******************************************************************************/
-
-
module org.eclipse.etrice.core.GenerateConfig
import org.eclipse.emf.mwe.utils.*
@@ -26,7 +13,7 @@ Workflow {
bean = StandaloneSetup {
scanClassPath = true
platformUri = "${runtimeProject}/.."
- registerGenModelFile = "platform:/resource/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.genmodel"
+ registerGenModelFile = "platform:/resource/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.genmodel"
}
component = DirectoryCleaner {
diff --git a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/formatting/ConfigFormatter.java b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/formatting/ConfigFormatter.java
new file mode 100644
index 000000000..f2b050d67
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/formatting/ConfigFormatter.java
@@ -0,0 +1,27 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core.formatting;
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+
+/**
+ * This class contains custom formatting description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting
+ * on how and when to use it
+ *
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class ConfigFormatter extends AbstractDeclarativeFormatter {
+
+ @Override
+ protected void configureFormatting(FormattingConfig c) {
+// It's usually a good idea to activate the following three statements.
+// They will add and preserve newlines around comments
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getSL_COMMENTRule());
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getML_COMMENTRule());
+// c.setLinewrap(0, 1, 1).after(getGrammarAccess().getML_COMMENTRule());
+ }
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/generator/ConfigGenerator.xtend b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/generator/ConfigGenerator.xtend
new file mode 100644
index 000000000..db116bd88
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/generator/ConfigGenerator.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess
+
+class ConfigGenerator implements IGenerator {
+
+ override void doGenerate(Resource resource, IFileSystemAccess fsa) {
+ //TODO implement me
+ }
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/scoping/ConfigScopeProvider.java b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/scoping/ConfigScopeProvider.java
new file mode 100644
index 000000000..db7116966
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/scoping/ConfigScopeProvider.java
@@ -0,0 +1,17 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.etrice.core.scoping;
+
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+
+/**
+ * This class contains custom scoping description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#scoping
+ * on how and when to use it
+ *
+ */
+public class ConfigScopeProvider extends AbstractDeclarativeScopeProvider {
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/validation/ConfigJavaValidator.java b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/validation/ConfigJavaValidator.java
new file mode 100644
index 000000000..c52c232f4
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/src/org/eclipse/etrice/core/validation/ConfigJavaValidator.java
@@ -0,0 +1,13 @@
+package org.eclipse.etrice.core.validation;
+
+
+public class ConfigJavaValidator extends AbstractConfigJavaValidator {
+
+// @Check
+// public void checkGreetingStartsWithCapital(Greeting greeting) {
+// if (!Character.isUpperCase(greeting.getName().charAt(0))) {
+// warning("Name should start with a capital", MyDslPackage.Literals.GREETING__NAME);
+// }
+// }
+
+}
diff --git a/plugins/org.eclipse.etrice.core.config/xtend-gen/org/eclipse/etrice/core/generator/ConfigGenerator.java b/plugins/org.eclipse.etrice.core.config/xtend-gen/org/eclipse/etrice/core/generator/ConfigGenerator.java
new file mode 100644
index 000000000..15a186d3d
--- /dev/null
+++ b/plugins/org.eclipse.etrice.core.config/xtend-gen/org/eclipse/etrice/core/generator/ConfigGenerator.java
@@ -0,0 +1,11 @@
+package org.eclipse.etrice.core.generator;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IGenerator;
+
+@SuppressWarnings("all")
+public class ConfigGenerator implements IGenerator {
+ public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
+ }
+}
diff --git a/tests/org.eclipse.etrice.core.config.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.etrice.core.config.tests/META-INF/MANIFEST.MF
index 1d3dee48f..f173174cd 100644
--- a/tests/org.eclipse.etrice.core.config.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.etrice.core.config.tests/META-INF/MANIFEST.MF
@@ -1,8 +1,8 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: org.eclipse.etrice.core.config.tests
-Bundle-Vendor: My Company
-Bundle-Version: 1.0.0
+Bundle-Name: eTrice Config DSL Tests
+Bundle-Vendor: eTrice (Incubation)
+Bundle-Version: 0.2.0.qualifier
Bundle-SymbolicName: org.eclipse.etrice.core.config.tests; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.eclipse.etrice.core.config,
diff --git a/tests/org.eclipse.etrice.core.config.tests/bin/org/eclipse/etrice/core/ConfigInjectorProvider.class b/tests/org.eclipse.etrice.core.config.tests/bin/org/eclipse/etrice/core/ConfigInjectorProvider.class
new file mode 100644
index 000000000..479db8e27
--- /dev/null
+++ b/tests/org.eclipse.etrice.core.config.tests/bin/org/eclipse/etrice/core/ConfigInjectorProvider.class
Binary files differ
diff --git a/tests/org.eclipse.etrice.core.config.tests/bin/org/eclipse/etrice/core/ConfigUiInjectorProvider.class b/tests/org.eclipse.etrice.core.config.tests/bin/org/eclipse/etrice/core/ConfigUiInjectorProvider.class
new file mode 100644
index 000000000..8c8ad9fd8
--- /dev/null
+++ b/tests/org.eclipse.etrice.core.config.tests/bin/org/eclipse/etrice/core/ConfigUiInjectorProvider.class
Binary files differ
diff --git a/tests/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigInjectorProvider.java b/tests/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigInjectorProvider.java
new file mode 100644
index 000000000..a7c3c34a0
--- /dev/null
+++ b/tests/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigInjectorProvider.java
@@ -0,0 +1,38 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core;
+
+import org.eclipse.xtext.junit4.GlobalRegistries;
+import org.eclipse.xtext.junit4.GlobalRegistries.GlobalStateMemento;
+import org.eclipse.xtext.junit4.IInjectorProvider;
+import org.eclipse.xtext.junit4.IRegistryConfigurator;
+
+import com.google.inject.Injector;
+
+public class ConfigInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
+ protected GlobalStateMemento globalStateMemento;
+ protected Injector injector;
+
+ static {
+ GlobalRegistries.initializeDefaults();
+ }
+
+ public Injector getInjector() {
+ if (injector == null) {
+ this.injector = new ConfigStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+ return injector;
+ }
+
+ public void restoreRegistry() {
+ globalStateMemento.restoreGlobalState();
+ }
+
+ public void setupRegistry() {
+ globalStateMemento = GlobalRegistries.makeCopyOfGlobalState();
+ if (injector != null)
+ new ConfigStandaloneSetup().register(injector);
+ }
+
+}
diff --git a/tests/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigUiInjectorProvider.java b/tests/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigUiInjectorProvider.java
new file mode 100644
index 000000000..34b7a4cd5
--- /dev/null
+++ b/tests/org.eclipse.etrice.core.config.tests/src-gen/org/eclipse/etrice/core/ConfigUiInjectorProvider.java
@@ -0,0 +1,16 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.etrice.core;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class ConfigUiInjectorProvider implements IInjectorProvider {
+
+ public Injector getInjector() {
+ return org.eclipse.etrice.core.ui.internal.ConfigActivator.getInstance().getInjector("org.eclipse.etrice.core.Config");
+ }
+
+}

Back to the top