diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.sdk/.project b/edu.kit.ipd.descartes.mm.adaptation.sta.sdk/.project
new file mode 100644
index 0000000000000000000000000000000000000000..6a8e723a4df9fbd61c76f3b4d531dd8ef9d44545
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.sdk/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>edu.kit.ipd.descartes.mm.adaptation.sta.sdk</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.sdk/build.properties b/edu.kit.ipd.descartes.mm.adaptation.sta.sdk/build.properties
new file mode 100644
index 0000000000000000000000000000000000000000..442bd78b67ae6b45ff790798929fb2b9f6b772e7
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.sdk/build.properties
@@ -0,0 +1 @@
+bin.includes =feature.xml
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.sdk/feature.xml b/edu.kit.ipd.descartes.mm.adaptation.sta.sdk/feature.xml
new file mode 100644
index 0000000000000000000000000000000000000000..013d72d1345794a4e53cc6bf2806908ff273b602
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.sdk/feature.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature id="edu.kit.ipd.descartes.mm.adaptation.sta.sdk"
+	label="StaLang SDK Feature "
+	version="1.0.0.qualifier">
+	<plugin
+			id="edu.kit.ipd.descartes.mm.adaptation.sta"
+			download-size="0"
+			install-size="0"
+			version="0.0.0"
+			unpack="false"/>
+	<plugin
+			id="edu.kit.ipd.descartes.mm.adaptation.sta.ui"
+			download-size="0"
+			install-size="0"
+			version="0.0.0"
+			unpack="false"/>
+</feature>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.classpath b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..406ca4abdc68e88484ba4d3c6294fa9bc391cdb3
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.project b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.project
new file mode 100644
index 0000000000000000000000000000000000000000..e63e8f6f4e86b8ef3d5fdd53d88ada5b986c98f7
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>edu.kit.ipd.descartes.mm.adaptation.sta.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.settings/org.eclipse.core.resources.prefs b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..e2f5e8d4e17ab6ab5e18494278405217e247c2df
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: edu.kit.ipd.descartes.mm.adaptation.sta.ui
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: edu.kit.ipd.descartes.mm.adaptation.sta.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: edu.kit.ipd.descartes.mm.adaptation.sta;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,
+ edu.kit.ipd.descartes.core
+Import-Package: org.apache.log4j,
+ org.eclipse.xtext.xbase.lib
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: edu.kit.ipd.descartes.mm.adaptation.sta.ui.quickfix,
+ edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist,
+ edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr,
+ edu.kit.ipd.descartes.mm.adaptation.sta.ui.internal
+Bundle-Activator: edu.kit.ipd.descartes.mm.adaptation.sta.ui.internal.StaLangActivator
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/AbstractStaLangUiModule.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/AbstractStaLangUiModule.class
new file mode 100644
index 0000000000000000000000000000000000000000..798b04072a863a773b58cf7d71b7d7ddc4949aa7
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/AbstractStaLangUiModule.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangExecutableExtensionFactory.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangExecutableExtensionFactory.class
new file mode 100644
index 0000000000000000000000000000000000000000..c95a0e6f4b97ced4a41e56de0ac7fb53a7be26de
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangExecutableExtensionFactory.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangUiModule.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangUiModule.class
new file mode 100644
index 0000000000000000000000000000000000000000..9d511c7bb4f8580f5ee5877fb1d3652b19a638a1
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangUiModule.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/.StaLangProposalProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/.StaLangProposalProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..9250432a0333e80f81d2b1e5133ad024772a28b7
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/.StaLangProposalProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/AbstractStaLangProposalProvider.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/AbstractStaLangProposalProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..3fbeda332ce32937c31c9f9842c121c9b6b89501
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/AbstractStaLangProposalProvider.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..bf16fdc29e695ebbe3591a473a7e57b657b4fb22
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..f6e662ab82f91404649b87846b3a63416a77e3f2
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.xtend
@@ -0,0 +1,12 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist
+
+import edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.AbstractStaLangProposalProvider
+
+/**
+ * see http://www.eclipse.org/Xtext/documentation.html#contentAssist on how to customize content assistant
+ */
+class StaLangProposalProvider extends AbstractStaLangProposalProvider {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/PartialStaLangContentAssistParser.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/PartialStaLangContentAssistParser.class
new file mode 100644
index 0000000000000000000000000000000000000000..32ee765c0229533d67835cdf0c051818936d0726
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/PartialStaLangContentAssistParser.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/StaLangParser$1.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/StaLangParser$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..54fa61d05b529dd0bda4301f14c7029cd967f813
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/StaLangParser$1.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/StaLangParser.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/StaLangParser.class
new file mode 100644
index 0000000000000000000000000000000000000000..bc88a04a38de66edf9f86bf06d7482e292c5ef38
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/StaLangParser.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g
new file mode 100644
index 0000000000000000000000000000000000000000..b829ea5cecd42c0ea5d8ccc69aa967427563ea37
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g
@@ -0,0 +1,15206 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStaLang;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	
+}
+
+@lexer::header {
+package edu.kit.ipd.descartes.mm.adaptation.sta.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 edu.kit.ipd.descartes.mm.adaptation.sta.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 edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+
+}
+
+@parser::members {
+ 
+ 	private StaLangGrammarAccess grammarAccess;
+ 	
+    public void setGrammarAccess(StaLangGrammarAccess grammarAccess) {
+    	this.grammarAccess = grammarAccess;
+    }
+    
+    @Override
+    protected Grammar getGrammar() {
+    	return grammarAccess.getGrammar();
+    }
+    
+    @Override
+    protected String getValueForTokenName(String tokenName) {
+    	return tokenName;
+    }
+
+}
+
+
+
+
+// Entry rule entryRuleAdaptationProcess
+entryRuleAdaptationProcess 
+:
+{ before(grammarAccess.getAdaptationProcessRule()); }
+	 ruleAdaptationProcess
+{ after(grammarAccess.getAdaptationProcessRule()); } 
+	 EOF 
+;
+
+// Rule AdaptationProcess
+ruleAdaptationProcess
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup()); }
+(rule__AdaptationProcess__Group__0)
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleAbstractControlFlowElement
+entryRuleAbstractControlFlowElement 
+:
+{ before(grammarAccess.getAbstractControlFlowElementRule()); }
+	 ruleAbstractControlFlowElement
+{ after(grammarAccess.getAbstractControlFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule AbstractControlFlowElement
+ruleAbstractControlFlowElement
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getAlternatives()); }
+(rule__AbstractControlFlowElement__Alternatives)
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVariationType
+entryRuleVariationType 
+:
+{ before(grammarAccess.getVariationTypeRule()); }
+	 ruleVariationType
+{ after(grammarAccess.getVariationTypeRule()); } 
+	 EOF 
+;
+
+// Rule VariationType
+ruleVariationType
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVariationTypeAccess().getAlternatives()); }
+(rule__VariationType__Alternatives)
+{ after(grammarAccess.getVariationTypeAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEString
+entryRuleEString 
+:
+{ before(grammarAccess.getEStringRule()); }
+	 ruleEString
+{ after(grammarAccess.getEStringRule()); } 
+	 EOF 
+;
+
+// Rule EString
+ruleEString
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEStringAccess().getAlternatives()); }
+(rule__EString__Alternatives)
+{ after(grammarAccess.getEStringAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTactic
+entryRuleTactic 
+:
+{ before(grammarAccess.getTacticRule()); }
+	 ruleTactic
+{ after(grammarAccess.getTacticRule()); } 
+	 EOF 
+;
+
+// Rule Tactic
+ruleTactic
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTacticAccess().getGroup()); }
+(rule__Tactic__Group__0)
+{ after(grammarAccess.getTacticAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleAction
+entryRuleAction 
+:
+{ before(grammarAccess.getActionRule()); }
+	 ruleAction
+{ after(grammarAccess.getActionRule()); } 
+	 EOF 
+;
+
+// Rule Action
+ruleAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionAccess().getGroup()); }
+(rule__Action__Group__0)
+{ after(grammarAccess.getActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStrategy
+entryRuleStrategy 
+:
+{ before(grammarAccess.getStrategyRule()); }
+	 ruleStrategy
+{ after(grammarAccess.getStrategyRule()); } 
+	 EOF 
+;
+
+// Rule Strategy
+ruleStrategy
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStrategyAccess().getGroup()); }
+(rule__Strategy__Group__0)
+{ after(grammarAccess.getStrategyAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleParameter
+entryRuleParameter 
+:
+{ before(grammarAccess.getParameterRule()); }
+	 ruleParameter
+{ after(grammarAccess.getParameterRule()); } 
+	 EOF 
+;
+
+// Rule Parameter
+ruleParameter
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getParameterAccess().getGroup()); }
+(rule__Parameter__Group__0)
+{ after(grammarAccess.getParameterAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOverallGoal
+entryRuleOverallGoal 
+:
+{ before(grammarAccess.getOverallGoalRule()); }
+	 ruleOverallGoal
+{ after(grammarAccess.getOverallGoalRule()); } 
+	 EOF 
+;
+
+// Rule OverallGoal
+ruleOverallGoal
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOverallGoalAccess().getGroup()); }
+(rule__OverallGoal__Group__0)
+{ after(grammarAccess.getOverallGoalAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleImportDeclaration
+entryRuleImportDeclaration 
+:
+{ before(grammarAccess.getImportDeclarationRule()); }
+	 ruleImportDeclaration
+{ after(grammarAccess.getImportDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule ImportDeclaration
+ruleImportDeclaration
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getImportDeclarationAccess().getGroup()); }
+(rule__ImportDeclaration__Group__0)
+{ after(grammarAccess.getImportDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleAdaptationPlan
+entryRuleAdaptationPlan 
+:
+{ before(grammarAccess.getAdaptationPlanRule()); }
+	 ruleAdaptationPlan
+{ after(grammarAccess.getAdaptationPlanRule()); } 
+	 EOF 
+;
+
+// Rule AdaptationPlan
+ruleAdaptationPlan
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup()); }
+(rule__AdaptationPlan__Group__0)
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStartAction
+entryRuleStartAction 
+:
+{ before(grammarAccess.getStartActionRule()); }
+	 ruleStartAction
+{ after(grammarAccess.getStartActionRule()); } 
+	 EOF 
+;
+
+// Rule StartAction
+ruleStartAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStartActionAccess().getGroup()); }
+(rule__StartAction__Group__0)
+{ after(grammarAccess.getStartActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStopAction
+entryRuleStopAction 
+:
+{ before(grammarAccess.getStopActionRule()); }
+	 ruleStopAction
+{ after(grammarAccess.getStopActionRule()); } 
+	 EOF 
+;
+
+// Rule StopAction
+ruleStopAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStopActionAccess().getGroup()); }
+(rule__StopAction__Group__0)
+{ after(grammarAccess.getStopActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLoopAction
+entryRuleLoopAction 
+:
+{ before(grammarAccess.getLoopActionRule()); }
+	 ruleLoopAction
+{ after(grammarAccess.getLoopActionRule()); } 
+	 EOF 
+;
+
+// Rule LoopAction
+ruleLoopAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLoopActionAccess().getGroup()); }
+(rule__LoopAction__Group__0)
+{ after(grammarAccess.getLoopActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleBranchAction
+entryRuleBranchAction 
+:
+{ before(grammarAccess.getBranchActionRule()); }
+	 ruleBranchAction
+{ after(grammarAccess.getBranchActionRule()); } 
+	 EOF 
+;
+
+// Rule BranchAction
+ruleBranchAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getBranchActionAccess().getGroup()); }
+(rule__BranchAction__Group__0)
+{ after(grammarAccess.getBranchActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionReference
+entryRuleActionReference 
+:
+{ before(grammarAccess.getActionReferenceRule()); }
+	 ruleActionReference
+{ after(grammarAccess.getActionReferenceRule()); } 
+	 EOF 
+;
+
+// Rule ActionReference
+ruleActionReference
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionReferenceAccess().getGroup()); }
+(rule__ActionReference__Group__0)
+{ after(grammarAccess.getActionReferenceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleAdaptationActionOperation
+entryRuleAdaptationActionOperation 
+:
+{ before(grammarAccess.getAdaptationActionOperationRule()); }
+	 ruleAdaptationActionOperation
+{ after(grammarAccess.getAdaptationActionOperationRule()); } 
+	 EOF 
+;
+
+// Rule AdaptationActionOperation
+ruleAdaptationActionOperation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getGroup()); }
+(rule__AdaptationActionOperation__Group__0)
+{ after(grammarAccess.getAdaptationActionOperationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleModelVariableConfigurationRange
+entryRuleModelVariableConfigurationRange 
+:
+{ before(grammarAccess.getModelVariableConfigurationRangeRule()); }
+	 ruleModelVariableConfigurationRange
+{ after(grammarAccess.getModelVariableConfigurationRangeRule()); } 
+	 EOF 
+;
+
+// Rule ModelVariableConfigurationRange
+ruleModelVariableConfigurationRange
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup()); }
+(rule__ModelVariableConfigurationRange__Group__0)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleModelEntityConfigurationRange
+entryRuleModelEntityConfigurationRange 
+:
+{ before(grammarAccess.getModelEntityConfigurationRangeRule()); }
+	 ruleModelEntityConfigurationRange
+{ after(grammarAccess.getModelEntityConfigurationRangeRule()); } 
+	 EOF 
+;
+
+// Rule ModelEntityConfigurationRange
+ruleModelEntityConfigurationRange
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup()); }
+(rule__ModelEntityConfigurationRange__Group__0)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEDouble
+entryRuleEDouble 
+:
+{ before(grammarAccess.getEDoubleRule()); }
+	 ruleEDouble
+{ after(grammarAccess.getEDoubleRule()); } 
+	 EOF 
+;
+
+// Rule EDouble
+ruleEDouble
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEDoubleAccess().getGroup()); }
+(rule__EDouble__Group__0)
+{ after(grammarAccess.getEDoubleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePropertyRange
+entryRulePropertyRange 
+:
+{ before(grammarAccess.getPropertyRangeRule()); }
+	 rulePropertyRange
+{ after(grammarAccess.getPropertyRangeRule()); } 
+	 EOF 
+;
+
+// Rule PropertyRange
+rulePropertyRange
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getGroup()); }
+(rule__PropertyRange__Group__0)
+{ after(grammarAccess.getPropertyRangeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSetOfConfigurations
+entryRuleSetOfConfigurations 
+:
+{ before(grammarAccess.getSetOfConfigurationsRule()); }
+	 ruleSetOfConfigurations
+{ after(grammarAccess.getSetOfConfigurationsRule()); } 
+	 EOF 
+;
+
+// Rule SetOfConfigurations
+ruleSetOfConfigurations
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getGroup()); }
+(rule__SetOfConfigurations__Group__0)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOclConstraint
+entryRuleOclConstraint 
+:
+{ before(grammarAccess.getOclConstraintRule()); }
+	 ruleOclConstraint
+{ after(grammarAccess.getOclConstraintRule()); } 
+	 EOF 
+;
+
+// Rule OclConstraint
+ruleOclConstraint
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOclConstraintAccess().getGroup()); }
+(rule__OclConstraint__Group__0)
+{ after(grammarAccess.getOclConstraintAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleObjective
+entryRuleObjective 
+:
+{ before(grammarAccess.getObjectiveRule()); }
+	 ruleObjective
+{ after(grammarAccess.getObjectiveRule()); } 
+	 EOF 
+;
+
+// Rule Objective
+ruleObjective
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getObjectiveAccess().getGroup()); }
+(rule__Objective__Group__0)
+{ after(grammarAccess.getObjectiveAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent 
+:
+{ before(grammarAccess.getEventRule()); }
+	 ruleEvent
+{ after(grammarAccess.getEventRule()); } 
+	 EOF 
+;
+
+// Rule Event
+ruleEvent
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEventAccess().getGroup()); }
+(rule__Event__Group__0)
+{ after(grammarAccess.getEventAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWeightedTactic
+entryRuleWeightedTactic 
+:
+{ before(grammarAccess.getWeightedTacticRule()); }
+	 ruleWeightedTactic
+{ after(grammarAccess.getWeightedTacticRule()); } 
+	 EOF 
+;
+
+// Rule WeightedTactic
+ruleWeightedTactic
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup()); }
+(rule__WeightedTactic__Group__0)
+{ after(grammarAccess.getWeightedTacticAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWeightingFunction
+entryRuleWeightingFunction 
+:
+{ before(grammarAccess.getWeightingFunctionRule()); }
+	 ruleWeightingFunction
+{ after(grammarAccess.getWeightingFunctionRule()); } 
+	 EOF 
+;
+
+// Rule WeightingFunction
+ruleWeightingFunction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getGroup()); }
+(rule__WeightingFunction__Group__0)
+{ after(grammarAccess.getWeightingFunctionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSpecification
+entryRuleSpecification 
+:
+{ before(grammarAccess.getSpecificationRule()); }
+	 ruleSpecification
+{ after(grammarAccess.getSpecificationRule()); } 
+	 EOF 
+;
+
+// Rule Specification
+ruleSpecification
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSpecificationAccess().getGroup()); }
+(rule__Specification__Group__0)
+{ after(grammarAccess.getSpecificationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+// Entry rule entryRuleEDate
+entryRuleEDate 
+:
+{ before(grammarAccess.getEDateRule()); }
+	 ruleEDate
+{ after(grammarAccess.getEDateRule()); } 
+	 EOF 
+;
+
+// Rule EDate
+ruleEDate
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEDateAccess().getEDateKeyword()); }
+
+	'EDate' 
+
+{ after(grammarAccess.getEDateAccess().getEDateKeyword()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleMetricValue
+entryRuleMetricValue 
+:
+{ before(grammarAccess.getMetricValueRule()); }
+	 ruleMetricValue
+{ after(grammarAccess.getMetricValueRule()); } 
+	 EOF 
+;
+
+// Rule MetricValue
+ruleMetricValue
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getMetricValueAccess().getGroup()); }
+(rule__MetricValue__Group__0)
+{ after(grammarAccess.getMetricValueAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleWeightedMetric
+entryRuleWeightedMetric 
+:
+{ before(grammarAccess.getWeightedMetricRule()); }
+	 ruleWeightedMetric
+{ after(grammarAccess.getWeightedMetricRule()); } 
+	 EOF 
+;
+
+// Rule WeightedMetric
+ruleWeightedMetric
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getGroup()); }
+(rule__WeightedMetric__Group__0)
+{ after(grammarAccess.getWeightedMetricAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+// Rule AdaptationScope
+ruleAdaptationScope
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationScopeAccess().getAlternatives()); }
+(rule__AdaptationScope__Alternatives)
+{ after(grammarAccess.getAdaptationScopeAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule AdaptationDirection
+ruleAdaptationDirection
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationDirectionAccess().getAlternatives()); }
+(rule__AdaptationDirection__Alternatives)
+{ after(grammarAccess.getAdaptationDirectionAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule RelationalOperator
+ruleRelationalOperator
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRelationalOperatorAccess().getAlternatives()); }
+(rule__RelationalOperator__Alternatives)
+{ after(grammarAccess.getRelationalOperatorAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__AbstractControlFlowElement__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getStartActionParserRuleCall_0()); }
+	ruleStartAction
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getStartActionParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getStopActionParserRuleCall_1()); }
+	ruleStopAction
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getStopActionParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getLoopActionParserRuleCall_2()); }
+	ruleLoopAction
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getLoopActionParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getBranchActionParserRuleCall_3()); }
+	ruleBranchAction
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getBranchActionParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); }
+	ruleActionReference
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariationType__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); }
+	rulePropertyRange
+{ after(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); }
+	ruleSetOfConfigurations
+{ after(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EString__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); }
+	RULE_STRING
+{ after(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); }
+	RULE_ID
+{ after(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Alternatives_4_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); }
+
+	'E' 
+
+{ after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); }
+
+	'e' 
+
+{ after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Alternatives_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_0()); }
+(rule__Objective__SpecificationsAssignment_5_0)
+{ after(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_0()); }
+)
+
+    |(
+{ before(grammarAccess.getObjectiveAccess().getGroup_5_1()); }
+(rule__Objective__Group_5_1__0)
+{ after(grammarAccess.getObjectiveAccess().getGroup_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationScope__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0()); }
+(	'NOT_SET' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1()); }
+(	'THIS' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2()); }
+(	'LEAST_UTILIZED_FIRST' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3()); }
+(	'MOST_UTILIZED_FIRST' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4()); }
+(	'RANDOM' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5()); }
+(	'ALL' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationDirection__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0()); }
+(	'NOT_SET' 
+)
+{ after(grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1()); }
+(	'INCREASE' 
+)
+{ after(grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2()); }
+(	'DECREASE' 
+)
+{ after(grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3()); }
+(	'MIGRATE' 
+)
+{ after(grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RelationalOperator__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0()); }
+(	'==' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1()); }
+(	'!=' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2()); }
+(	'>' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3()); }
+(	'>=' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4()); }
+(	'<' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5()); }
+(	'<=' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6()); }
+(	'EQUAL' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7()); }
+(	'NOT_EQUAL' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8()); }
+(	'GREATER' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9()); }
+(	'GREATER_EQUAL' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10()); }
+(	'LESS' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11()); }
+(	'LESS_EQUAL' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__AdaptationProcess__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__0__Impl
+	rule__AdaptationProcess__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getImportDeclarationAssignment_0()); }
+(rule__AdaptationProcess__ImportDeclarationAssignment_0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getImportDeclarationAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__1__Impl
+	rule__AdaptationProcess__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getAdaptationProcessKeyword_1()); }
+
+	'AdaptationProcess' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getAdaptationProcessKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__2__Impl
+	rule__AdaptationProcess__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getNameAssignment_2()); }
+(rule__AdaptationProcess__NameAssignment_2)
+{ after(grammarAccess.getAdaptationProcessAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__3__Impl
+	rule__AdaptationProcess__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_3()); }
+(rule__AdaptationProcess__Group_3__0)?
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__4__Impl
+	rule__AdaptationProcess__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getLeftCurlyBracketKeyword_4()); }
+
+	'{' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getLeftCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__5__Impl
+	rule__AdaptationProcess__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_5()); }
+(rule__AdaptationProcess__Group_5__0)?
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__6__Impl
+	rule__AdaptationProcess__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGoalKeyword_6()); }
+
+	'goal' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getGoalKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__7__Impl
+	rule__AdaptationProcess__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_7()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__8__Impl
+	rule__AdaptationProcess__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGoalAssignment_8()); }
+(rule__AdaptationProcess__GoalAssignment_8)
+{ after(grammarAccess.getAdaptationProcessAccess().getGoalAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__9__Impl
+	rule__AdaptationProcess__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsKeyword_9()); }
+
+	'actions' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getActionsKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__10__Impl
+	rule__AdaptationProcess__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_10()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__11__Impl
+	rule__AdaptationProcess__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_11()); }
+(rule__AdaptationProcess__ActionsAssignment_11)
+{ after(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__12__Impl
+	rule__AdaptationProcess__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_12()); }
+(rule__AdaptationProcess__Group_12__0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__13__Impl
+	rule__AdaptationProcess__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsKeyword_13()); }
+
+	'tactics' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getTacticsKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__14__Impl
+	rule__AdaptationProcess__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_14()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__15__Impl
+	rule__AdaptationProcess__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_15()); }
+(rule__AdaptationProcess__TacticsAssignment_15)
+{ after(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__16__Impl
+	rule__AdaptationProcess__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_16()); }
+(rule__AdaptationProcess__Group_16__0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__17__Impl
+	rule__AdaptationProcess__Group__18
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesKeyword_17()); }
+
+	'strategies' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesKeyword_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__18__Impl
+	rule__AdaptationProcess__Group__19
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__18__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_18()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_18()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__19
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__19__Impl
+	rule__AdaptationProcess__Group__20
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__19__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_19()); }
+(rule__AdaptationProcess__StrategiesAssignment_19)
+{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_19()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__20
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__20__Impl
+	rule__AdaptationProcess__Group__21
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__20__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_20()); }
+(rule__AdaptationProcess__Group_20__0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_20()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__21
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__21__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__21__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getRightCurlyBracketKeyword_21()); }
+
+	'}' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getRightCurlyBracketKeyword_21()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationProcess__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_3__0__Impl
+	rule__AdaptationProcess__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getIdKeyword_3_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getIdKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_3__1__Impl
+	rule__AdaptationProcess__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getIdAssignment_3_1()); }
+(rule__AdaptationProcess__IdAssignment_3_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getIdAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getRightSquareBracketKeyword_3_2()); }
+
+	']' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getRightSquareBracketKeyword_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__AdaptationProcess__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5__0__Impl
+	rule__AdaptationProcess__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersKeyword_5_0()); }
+
+	'parameters' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getParametersKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5__1__Impl
+	rule__AdaptationProcess__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_5_1()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5__2__Impl
+	rule__AdaptationProcess__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_2()); }
+(rule__AdaptationProcess__ParametersAssignment_5_2)
+{ after(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_5_3()); }
+(rule__AdaptationProcess__Group_5_3__0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationProcess__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5_3__0__Impl
+	rule__AdaptationProcess__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_3_1()); }
+(rule__AdaptationProcess__ParametersAssignment_5_3_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__AdaptationProcess__Group_12__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_12__0__Impl
+	rule__AdaptationProcess__Group_12__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_12__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_12_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_12__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_12__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_12__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_12_1()); }
+(rule__AdaptationProcess__ActionsAssignment_12_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_12_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__AdaptationProcess__Group_16__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_16__0__Impl
+	rule__AdaptationProcess__Group_16__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_16__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_16_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_16_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_16__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_16__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_16__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_16_1()); }
+(rule__AdaptationProcess__TacticsAssignment_16_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_16_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__AdaptationProcess__Group_20__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_20__0__Impl
+	rule__AdaptationProcess__Group_20__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_20__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_20_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_20_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_20__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_20__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_20__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_20_1()); }
+(rule__AdaptationProcess__StrategiesAssignment_20_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_20_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Tactic__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__0__Impl
+	rule__Tactic__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getTacticKeyword_0()); }
+(
+	'Tactic' 
+)?
+{ after(grammarAccess.getTacticAccess().getTacticKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__1__Impl
+	rule__Tactic__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getNameAssignment_1()); }
+(rule__Tactic__NameAssignment_1)
+{ after(grammarAccess.getTacticAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__2__Impl
+	rule__Tactic__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getGroup_2()); }
+(rule__Tactic__Group_2__0)?
+{ after(grammarAccess.getTacticAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__3__Impl
+	rule__Tactic__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__4__Impl
+	rule__Tactic__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getImplementedPlanKeyword_4()); }
+
+	'implementedPlan' 
+
+{ after(grammarAccess.getTacticAccess().getImplementedPlanKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__5__Impl
+	rule__Tactic__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getImplementedPlanAssignment_5()); }
+(rule__Tactic__ImplementedPlanAssignment_5)
+{ after(grammarAccess.getTacticAccess().getImplementedPlanAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__6__Impl
+	rule__Tactic__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getGroup_6()); }
+(rule__Tactic__Group_6__0)?
+{ after(grammarAccess.getTacticAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__7__Impl
+	rule__Tactic__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getGroup_7()); }
+(rule__Tactic__Group_7__0)?
+{ after(grammarAccess.getTacticAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Tactic__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_2__0__Impl
+	rule__Tactic__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getTacticAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_2__1__Impl
+	rule__Tactic__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getIdAssignment_2_1()); }
+(rule__Tactic__IdAssignment_2_1)
+{ after(grammarAccess.getTacticAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getTacticAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Tactic__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__0__Impl
+	rule__Tactic__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputKeyword_6_0()); }
+
+	'input' 
+
+{ after(grammarAccess.getTacticAccess().getInputKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__1__Impl
+	rule__Tactic__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getEqualsSignKeyword_6_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getTacticAccess().getEqualsSignKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__2__Impl
+	rule__Tactic__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_6_2()); }
+
+	'(' 
+
+{ after(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__3__Impl
+	rule__Tactic__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsAssignment_6_3()); }
+(rule__Tactic__InputParamsAssignment_6_3)
+{ after(grammarAccess.getTacticAccess().getInputParamsAssignment_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__4__Impl
+	rule__Tactic__Group_6__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getGroup_6_4()); }
+(rule__Tactic__Group_6_4__0)*
+{ after(grammarAccess.getTacticAccess().getGroup_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getRightParenthesisKeyword_6_5()); }
+
+	')' 
+
+{ after(grammarAccess.getTacticAccess().getRightParenthesisKeyword_6_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Tactic__Group_6_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6_4__0__Impl
+	rule__Tactic__Group_6_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getCommaKeyword_6_4_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTacticAccess().getCommaKeyword_6_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsAssignment_6_4_1()); }
+(rule__Tactic__InputParamsAssignment_6_4_1)
+{ after(grammarAccess.getTacticAccess().getInputParamsAssignment_6_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Tactic__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_7__0__Impl
+	rule__Tactic__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getOutputKeyword_7_0()); }
+
+	'output' 
+
+{ after(grammarAccess.getTacticAccess().getOutputKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_7__1__Impl
+	rule__Tactic__Group_7__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getEqualsSignKeyword_7_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getTacticAccess().getEqualsSignKeyword_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_7__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_7__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_7__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getOutputParamAssignment_7_2()); }
+(rule__Tactic__OutputParamAssignment_7_2)
+{ after(grammarAccess.getTacticAccess().getOutputParamAssignment_7_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Action__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__0__Impl
+	rule__Action__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getActionKeyword_0()); }
+(
+	'Action' 
+)?
+{ after(grammarAccess.getActionAccess().getActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__1__Impl
+	rule__Action__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getNameAssignment_1()); }
+(rule__Action__NameAssignment_1)
+{ after(grammarAccess.getActionAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__2__Impl
+	rule__Action__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getGroup_2()); }
+(rule__Action__Group_2__0)?
+{ after(grammarAccess.getActionAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__3__Impl
+	rule__Action__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__4__Impl
+	rule__Action__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOperationKeyword_4()); }
+
+	'operation' 
+
+{ after(grammarAccess.getActionAccess().getOperationKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__5__Impl
+	rule__Action__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getEqualsSignKeyword_5()); }
+
+	'=' 
+
+{ after(grammarAccess.getActionAccess().getEqualsSignKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__6__Impl
+	rule__Action__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getAdaptationActionOperationAssignment_6()); }
+(rule__Action__AdaptationActionOperationAssignment_6)
+{ after(grammarAccess.getActionAccess().getAdaptationActionOperationAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__7__Impl
+	rule__Action__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7()); }
+
+	'referredAdaptationPoint' 
+
+{ after(grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__8__Impl
+	rule__Action__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getEqualsSignKeyword_8()); }
+
+	'=' 
+
+{ after(grammarAccess.getActionAccess().getEqualsSignKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__9__Impl
+	rule__Action__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_9()); }
+(rule__Action__ReferredAdaptationPointAssignment_9)
+{ after(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__10__Impl
+	rule__Action__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getGroup_10()); }
+(rule__Action__Group_10__0)?
+{ after(grammarAccess.getActionAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__11__Impl
+	rule__Action__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getGroup_11()); }
+(rule__Action__Group_11__0)?
+{ after(grammarAccess.getActionAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Action__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_2__0__Impl
+	rule__Action__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getActionAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_2__1__Impl
+	rule__Action__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getIdAssignment_2_1()); }
+(rule__Action__IdAssignment_2_1)
+{ after(grammarAccess.getActionAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getActionAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Action__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__0__Impl
+	rule__Action__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputKeyword_10_0()); }
+
+	'input' 
+
+{ after(grammarAccess.getActionAccess().getInputKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__1__Impl
+	rule__Action__Group_10__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getEqualsSignKeyword_10_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getActionAccess().getEqualsSignKeyword_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__2__Impl
+	rule__Action__Group_10__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getLeftParenthesisKeyword_10_2()); }
+
+	'(' 
+
+{ after(grammarAccess.getActionAccess().getLeftParenthesisKeyword_10_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__3__Impl
+	rule__Action__Group_10__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsAssignment_10_3()); }
+(rule__Action__InputParamsAssignment_10_3)
+{ after(grammarAccess.getActionAccess().getInputParamsAssignment_10_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__4__Impl
+	rule__Action__Group_10__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getGroup_10_4()); }
+(rule__Action__Group_10_4__0)*
+{ after(grammarAccess.getActionAccess().getGroup_10_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getRightParenthesisKeyword_10_5()); }
+
+	')' 
+
+{ after(grammarAccess.getActionAccess().getRightParenthesisKeyword_10_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Action__Group_10_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10_4__0__Impl
+	rule__Action__Group_10_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getCommaKeyword_10_4_0()); }
+
+	',' 
+
+{ after(grammarAccess.getActionAccess().getCommaKeyword_10_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsAssignment_10_4_1()); }
+(rule__Action__InputParamsAssignment_10_4_1)
+{ after(grammarAccess.getActionAccess().getInputParamsAssignment_10_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Action__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_11__0__Impl
+	rule__Action__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOutputKeyword_11_0()); }
+
+	'output' 
+
+{ after(grammarAccess.getActionAccess().getOutputKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_11__1__Impl
+	rule__Action__Group_11__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getEqualsSignKeyword_11_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getActionAccess().getEqualsSignKeyword_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_11__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_11__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_11__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOutputParamAssignment_11_2()); }
+(rule__Action__OutputParamAssignment_11_2)
+{ after(grammarAccess.getActionAccess().getOutputParamAssignment_11_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Strategy__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__0__Impl
+	rule__Strategy__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getNameAssignment_0()); }
+(rule__Strategy__NameAssignment_0)
+{ after(grammarAccess.getStrategyAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__1__Impl
+	rule__Strategy__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getGroup_1()); }
+(rule__Strategy__Group_1__0)?
+{ after(grammarAccess.getStrategyAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__2__Impl
+	rule__Strategy__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__3__Impl
+	rule__Strategy__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveKeyword_3()); }
+
+	'objective' 
+
+{ after(grammarAccess.getStrategyAccess().getObjectiveKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__4__Impl
+	rule__Strategy__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getEqualsSignKeyword_4()); }
+
+	'=' 
+
+{ after(grammarAccess.getStrategyAccess().getEqualsSignKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__5__Impl
+	rule__Strategy__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveAssignment_5()); }
+(rule__Strategy__ObjectiveAssignment_5)
+{ after(grammarAccess.getStrategyAccess().getObjectiveAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__6__Impl
+	rule__Strategy__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTriggeringEventKeyword_6()); }
+
+	'triggeringEvent' 
+
+{ after(grammarAccess.getStrategyAccess().getTriggeringEventKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__7__Impl
+	rule__Strategy__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getEqualsSignKeyword_7()); }
+
+	'=' 
+
+{ after(grammarAccess.getStrategyAccess().getEqualsSignKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__8__Impl
+	rule__Strategy__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_8()); }
+(rule__Strategy__TriggeringEventsAssignment_8)
+{ after(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__9__Impl
+	rule__Strategy__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsKeyword_9()); }
+
+	'tactics' 
+
+{ after(grammarAccess.getStrategyAccess().getTacticsKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__10__Impl
+	rule__Strategy__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getEqualsSignKeyword_10()); }
+
+	'=' 
+
+{ after(grammarAccess.getStrategyAccess().getEqualsSignKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__11__Impl
+	rule__Strategy__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getLeftParenthesisKeyword_11()); }
+
+	'(' 
+
+{ after(grammarAccess.getStrategyAccess().getLeftParenthesisKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__12__Impl
+	rule__Strategy__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsAssignment_12()); }
+(rule__Strategy__TacticsAssignment_12)
+{ after(grammarAccess.getStrategyAccess().getTacticsAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__13__Impl
+	rule__Strategy__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getGroup_13()); }
+(rule__Strategy__Group_13__0)*
+{ after(grammarAccess.getStrategyAccess().getGroup_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__14__Impl
+	rule__Strategy__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getRightParenthesisKeyword_14()); }
+
+	')' 
+
+{ after(grammarAccess.getStrategyAccess().getRightParenthesisKeyword_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__15__Impl
+	rule__Strategy__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15()); }
+(
+	'weightingFunction' 
+)?
+{ after(grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__16__Impl
+	rule__Strategy__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_16()); }
+(rule__Strategy__WeightingFunctionAssignment_16)
+{ after(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__17__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_17()); }
+
+	'}' 
+
+{ after(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Strategy__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_1__0__Impl
+	rule__Strategy__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getStrategyAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_1__1__Impl
+	rule__Strategy__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getIdAssignment_1_1()); }
+(rule__Strategy__IdAssignment_1_1)
+{ after(grammarAccess.getStrategyAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getStrategyAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Strategy__Group_13__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_13__0__Impl
+	rule__Strategy__Group_13__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_13__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getCommaKeyword_13_0()); }
+
+	',' 
+
+{ after(grammarAccess.getStrategyAccess().getCommaKeyword_13_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group_13__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_13__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_13__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsAssignment_13_1()); }
+(rule__Strategy__TacticsAssignment_13_1)
+{ after(grammarAccess.getStrategyAccess().getTacticsAssignment_13_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Parameter__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__0__Impl
+	rule__Parameter__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getNameAssignment_0()); }
+(rule__Parameter__NameAssignment_0)
+{ after(grammarAccess.getParameterAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__1__Impl
+	rule__Parameter__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__2__Impl
+	rule__Parameter__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getGroup_2()); }
+(rule__Parameter__Group_2__0)?
+{ after(grammarAccess.getParameterAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__3__Impl
+	rule__Parameter__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getTypeAssignment_3()); }
+(rule__Parameter__TypeAssignment_3)
+{ after(grammarAccess.getParameterAccess().getTypeAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__4__Impl
+	rule__Parameter__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getGroup_4()); }
+(rule__Parameter__Group_4__0)?
+{ after(grammarAccess.getParameterAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Parameter__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_2__0__Impl
+	rule__Parameter__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getTypeKeyword_2_0()); }
+
+	'type' 
+
+{ after(grammarAccess.getParameterAccess().getTypeKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Parameter__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4__0__Impl
+	rule__Parameter__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getCommaKeyword_4_0()); }
+
+	',' 
+
+{ after(grammarAccess.getParameterAccess().getCommaKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4__1__Impl
+	rule__Parameter__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getGroup_4_1()); }
+(rule__Parameter__Group_4_1__0)?
+{ after(grammarAccess.getParameterAccess().getGroup_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getValueAssignment_4_2()); }
+(rule__Parameter__ValueAssignment_4_2)
+{ after(grammarAccess.getParameterAccess().getValueAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Parameter__Group_4_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4_1__0__Impl
+	rule__Parameter__Group_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getValueKeyword_4_1_0()); }
+
+	'value' 
+
+{ after(grammarAccess.getParameterAccess().getValueKeyword_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group_4_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OverallGoal__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__0__Impl
+	rule__OverallGoal__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getDescriptionKeyword_0()); }
+
+	'description' 
+
+{ after(grammarAccess.getOverallGoalAccess().getDescriptionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__1__Impl
+	rule__OverallGoal__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getDescriptionAssignment_1()); }
+(rule__OverallGoal__DescriptionAssignment_1)
+{ after(grammarAccess.getOverallGoalAccess().getDescriptionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__2__Impl
+	rule__OverallGoal__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesKeyword_2()); }
+
+	'objectives' 
+
+{ after(grammarAccess.getOverallGoalAccess().getObjectivesKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__3__Impl
+	rule__OverallGoal__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getEqualsSignKeyword_3()); }
+
+	'=' 
+
+{ after(grammarAccess.getOverallGoalAccess().getEqualsSignKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__4__Impl
+	rule__OverallGoal__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getLeftParenthesisKeyword_4()); }
+
+	'(' 
+
+{ after(grammarAccess.getOverallGoalAccess().getLeftParenthesisKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__5__Impl
+	rule__OverallGoal__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_5()); }
+(rule__OverallGoal__ObjectivesAssignment_5)
+{ after(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__6__Impl
+	rule__OverallGoal__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getGroup_6()); }
+(rule__OverallGoal__Group_6__0)*
+{ after(grammarAccess.getOverallGoalAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getRightParenthesisKeyword_7()); }
+
+	')' 
+
+{ after(grammarAccess.getOverallGoalAccess().getRightParenthesisKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__OverallGoal__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group_6__0__Impl
+	rule__OverallGoal__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getCommaKeyword_6_0()); }
+
+	',' 
+
+{ after(grammarAccess.getOverallGoalAccess().getCommaKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_6_1()); }
+(rule__OverallGoal__ObjectivesAssignment_6_1)
+{ after(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ImportDeclaration__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ImportDeclaration__Group__0__Impl
+	rule__ImportDeclaration__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ImportDeclaration__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImportDeclarationAccess().getImportDeclarationKeyword_0()); }
+
+	'ImportDeclaration' 
+
+{ after(grammarAccess.getImportDeclarationAccess().getImportDeclarationKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ImportDeclaration__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ImportDeclaration__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ImportDeclaration__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); }
+(rule__ImportDeclaration__ImportURIAssignment_1)
+{ after(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__AdaptationPlan__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__0__Impl
+	rule__AdaptationPlan__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getNameAssignment_0()); }
+(rule__AdaptationPlan__NameAssignment_0)
+{ after(grammarAccess.getAdaptationPlanAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__1__Impl
+	rule__AdaptationPlan__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup_1()); }
+(rule__AdaptationPlan__Group_1__0)?
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__2__Impl
+	rule__AdaptationPlan__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getEqualsSignKeyword_2()); }
+
+	'=' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getEqualsSignKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup_3()); }
+(rule__AdaptationPlan__Group_3__0)?
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationPlan__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_1__0__Impl
+	rule__AdaptationPlan__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_1__1__Impl
+	rule__AdaptationPlan__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getIdAssignment_1_1()); }
+(rule__AdaptationPlan__IdAssignment_1_1)
+{ after(grammarAccess.getAdaptationPlanAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__AdaptationPlan__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3__0__Impl
+	rule__AdaptationPlan__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getLeftParenthesisKeyword_3_0()); }
+
+	'(' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getLeftParenthesisKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3__1__Impl
+	rule__AdaptationPlan__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_1()); }
+(rule__AdaptationPlan__StepsAssignment_3_1)
+{ after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3__2__Impl
+	rule__AdaptationPlan__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup_3_2()); }
+(rule__AdaptationPlan__Group_3_2__0)*
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getRightParenthesisKeyword_3_3()); }
+
+	')' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getRightParenthesisKeyword_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationPlan__Group_3_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3_2__0__Impl
+	rule__AdaptationPlan__Group_3_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_3_2_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_3_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_2_1()); }
+(rule__AdaptationPlan__StepsAssignment_3_2_1)
+{ after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__StartAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__0__Impl
+	rule__StartAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getStartActionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStartActionAccess().getStartActionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__1__Impl
+	rule__StartAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); }
+
+	'StartAction' 
+
+{ after(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getGroup_2()); }
+(rule__StartAction__Group_2__0)?
+{ after(grammarAccess.getStartActionAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__StartAction__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group_2__0__Impl
+	rule__StartAction__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getStartActionAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group_2__1__Impl
+	rule__StartAction__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getIdAssignment_2_1()); }
+(rule__StartAction__IdAssignment_2_1)
+{ after(grammarAccess.getStartActionAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getStartActionAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__StopAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__0__Impl
+	rule__StopAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getStopActionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStopActionAccess().getStopActionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__1__Impl
+	rule__StopAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); }
+
+	'StopAction' 
+
+{ after(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getGroup_2()); }
+(rule__StopAction__Group_2__0)?
+{ after(grammarAccess.getStopActionAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__StopAction__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group_2__0__Impl
+	rule__StopAction__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getStopActionAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group_2__1__Impl
+	rule__StopAction__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getIdAssignment_2_1()); }
+(rule__StopAction__IdAssignment_2_1)
+{ after(grammarAccess.getStopActionAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getStopActionAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__LoopAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__0__Impl
+	rule__LoopAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); }
+(
+	'LoopAction' 
+)?
+{ after(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__1__Impl
+	rule__LoopAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getGroup_1()); }
+(rule__LoopAction__Group_1__0)?
+{ after(grammarAccess.getLoopActionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__2__Impl
+	rule__LoopAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getRepeatKeyword_2()); }
+
+	'repeat' 
+
+{ after(grammarAccess.getLoopActionAccess().getRepeatKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__3__Impl
+	rule__LoopAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getCounterKeyword_3()); }
+
+	'counter' 
+
+{ after(grammarAccess.getLoopActionAccess().getCounterKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__4__Impl
+	rule__LoopAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getEqualsSignKeyword_4()); }
+
+	'=' 
+
+{ after(grammarAccess.getLoopActionAccess().getEqualsSignKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__5__Impl
+	rule__LoopAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getCounterAssignment_5()); }
+(rule__LoopAction__CounterAssignment_5)
+{ after(grammarAccess.getLoopActionAccess().getCounterAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__6__Impl
+	rule__LoopAction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getLeftParenthesisKeyword_6()); }
+
+	'(' 
+
+{ after(grammarAccess.getLoopActionAccess().getLeftParenthesisKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__7__Impl
+	rule__LoopAction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getBodyAssignment_7()); }
+(rule__LoopAction__BodyAssignment_7)
+{ after(grammarAccess.getLoopActionAccess().getBodyAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getRightParenthesisKeyword_8()); }
+
+	')' 
+
+{ after(grammarAccess.getLoopActionAccess().getRightParenthesisKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__LoopAction__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group_1__0__Impl
+	rule__LoopAction__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getLoopActionAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group_1__1__Impl
+	rule__LoopAction__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getIdAssignment_1_1()); }
+(rule__LoopAction__IdAssignment_1_1)
+{ after(grammarAccess.getLoopActionAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getLoopActionAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__BranchAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__0__Impl
+	rule__BranchAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); }
+(
+	'BranchAction' 
+)?
+{ after(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__1__Impl
+	rule__BranchAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getGroup_1()); }
+(rule__BranchAction__Group_1__0)?
+{ after(grammarAccess.getBranchActionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__2__Impl
+	rule__BranchAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getIfKeyword_2()); }
+
+	'if' 
+
+{ after(grammarAccess.getBranchActionAccess().getIfKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__3__Impl
+	rule__BranchAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_3()); }
+
+	'(' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__4__Impl
+	rule__BranchAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getContextKeyword_4()); }
+
+	'context' 
+
+{ after(grammarAccess.getBranchActionAccess().getContextKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__5__Impl
+	rule__BranchAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_5()); }
+
+	'=' 
+
+{ after(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__6__Impl
+	rule__BranchAction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getContextAssignment_6()); }
+(rule__BranchAction__ContextAssignment_6)
+{ after(grammarAccess.getBranchActionAccess().getContextAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__7__Impl
+	rule__BranchAction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getCommaKeyword_7()); }
+
+	',' 
+
+{ after(grammarAccess.getBranchActionAccess().getCommaKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__8__Impl
+	rule__BranchAction__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionKeyword_8()); }
+
+	'condition' 
+
+{ after(grammarAccess.getBranchActionAccess().getConditionKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__9__Impl
+	rule__BranchAction__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_9()); }
+
+	'=' 
+
+{ after(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__10__Impl
+	rule__BranchAction__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionAssignment_10()); }
+(rule__BranchAction__ConditionAssignment_10)
+{ after(grammarAccess.getBranchActionAccess().getConditionAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__11__Impl
+	rule__BranchAction__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_11()); }
+
+	')' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__12__Impl
+	rule__BranchAction__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getThenKeyword_12()); }
+
+	'then' 
+
+{ after(grammarAccess.getBranchActionAccess().getThenKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__13__Impl
+	rule__BranchAction__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_13()); }
+
+	'(' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__14__Impl
+	rule__BranchAction__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionTrueBranchAssignment_14()); }
+(rule__BranchAction__ConditionTrueBranchAssignment_14)
+{ after(grammarAccess.getBranchActionAccess().getConditionTrueBranchAssignment_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__15__Impl
+	rule__BranchAction__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_15()); }
+
+	')' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__16__Impl
+	rule__BranchAction__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getElseKeyword_16()); }
+
+	'else' 
+
+{ after(grammarAccess.getBranchActionAccess().getElseKeyword_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__17__Impl
+	rule__BranchAction__Group__18
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_17()); }
+
+	'(' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__18__Impl
+	rule__BranchAction__Group__19
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__18__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionFalseBranchAssignment_18()); }
+(rule__BranchAction__ConditionFalseBranchAssignment_18)
+{ after(grammarAccess.getBranchActionAccess().getConditionFalseBranchAssignment_18()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__19
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__19__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__19__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_19()); }
+
+	')' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_19()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__BranchAction__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_1__0__Impl
+	rule__BranchAction__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getBranchActionAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_1__1__Impl
+	rule__BranchAction__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getIdAssignment_1_1()); }
+(rule__BranchAction__IdAssignment_1_1)
+{ after(grammarAccess.getBranchActionAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ActionReference__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__0__Impl
+	rule__ActionReference__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0()); }
+
+	'ActionReference' 
+
+{ after(grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__1__Impl
+	rule__ActionReference__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getGroup_1()); }
+(rule__ActionReference__Group_1__0)?
+{ after(grammarAccess.getActionReferenceAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__2__Impl
+	rule__ActionReference__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getLeftParenthesisKeyword_2()); }
+
+	'(' 
+
+{ after(grammarAccess.getActionReferenceAccess().getLeftParenthesisKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__3__Impl
+	rule__ActionReference__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToKeyword_3()); }
+
+	'refersTo' 
+
+{ after(grammarAccess.getActionReferenceAccess().getRefersToKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__4__Impl
+	rule__ActionReference__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToAssignment_4()); }
+(rule__ActionReference__RefersToAssignment_4)
+{ after(grammarAccess.getActionReferenceAccess().getRefersToAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRightParenthesisKeyword_5()); }
+
+	')' 
+
+{ after(grammarAccess.getActionReferenceAccess().getRightParenthesisKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ActionReference__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_1__0__Impl
+	rule__ActionReference__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getActionReferenceAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_1__1__Impl
+	rule__ActionReference__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getIdAssignment_1_1()); }
+(rule__ActionReference__IdAssignment_1_1)
+{ after(grammarAccess.getActionReferenceAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getActionReferenceAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__AdaptationActionOperation__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__0__Impl
+	rule__AdaptationActionOperation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getLeftParenthesisKeyword_0()); }
+
+	'(' 
+
+{ after(grammarAccess.getAdaptationActionOperationAccess().getLeftParenthesisKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationActionOperation__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__1__Impl
+	rule__AdaptationActionOperation__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAssignment_1()); }
+(rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1)
+{ after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationActionOperation__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__2__Impl
+	rule__AdaptationActionOperation__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getCommaKeyword_2()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationActionOperationAccess().getCommaKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationActionOperation__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__3__Impl
+	rule__AdaptationActionOperation__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAssignment_3()); }
+(rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3)
+{ after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationActionOperation__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getRightParenthesisKeyword_4()); }
+
+	')' 
+
+{ after(grammarAccess.getAdaptationActionOperationAccess().getRightParenthesisKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ModelVariableConfigurationRange__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__0__Impl
+	rule__ModelVariableConfigurationRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0()); }
+
+	'ModelVariableConfigurationRange' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__1__Impl
+	rule__ModelVariableConfigurationRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup_1()); }
+(rule__ModelVariableConfigurationRange__Group_1__0)?
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__2__Impl
+	rule__ModelVariableConfigurationRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__3__Impl
+	rule__ModelVariableConfigurationRange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__4__Impl
+	rule__ModelVariableConfigurationRange__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getNameAssignment_4()); }
+(rule__ModelVariableConfigurationRange__NameAssignment_4)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__5__Impl
+	rule__ModelVariableConfigurationRange__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_5()); }
+
+	'minValue' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__6__Impl
+	rule__ModelVariableConfigurationRange__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_6()); }
+(rule__ModelVariableConfigurationRange__MinValueAssignment_6)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__7__Impl
+	rule__ModelVariableConfigurationRange__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_7()); }
+
+	'maxValue' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__8__Impl
+	rule__ModelVariableConfigurationRange__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_8()); }
+(rule__ModelVariableConfigurationRange__MaxValueAssignment_8)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__9__Impl
+	rule__ModelVariableConfigurationRange__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_9()); }
+
+	'adaptableEntity' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__10__Impl
+	rule__ModelVariableConfigurationRange__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_10()); }
+(rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ModelVariableConfigurationRange__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group_1__0__Impl
+	rule__ModelVariableConfigurationRange__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group_1__1__Impl
+	rule__ModelVariableConfigurationRange__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1_1()); }
+(rule__ModelVariableConfigurationRange__IdAssignment_1_1)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ModelEntityConfigurationRange__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__0__Impl
+	rule__ModelEntityConfigurationRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0()); }
+
+	'ModelEntityConfigurationRange' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__1__Impl
+	rule__ModelEntityConfigurationRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_1()); }
+(rule__ModelEntityConfigurationRange__Group_1__0)?
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__2__Impl
+	rule__ModelEntityConfigurationRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__3__Impl
+	rule__ModelEntityConfigurationRange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__4__Impl
+	rule__ModelEntityConfigurationRange__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getNameAssignment_4()); }
+(rule__ModelEntityConfigurationRange__NameAssignment_4)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__5__Impl
+	rule__ModelEntityConfigurationRange__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityKeyword_5()); }
+
+	'adaptableEntity' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__6__Impl
+	rule__ModelEntityConfigurationRange__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityAssignment_6()); }
+(rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__7__Impl
+	rule__ModelEntityConfigurationRange__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_7()); }
+
+	'variationPossibility' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__8__Impl
+	rule__ModelEntityConfigurationRange__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_8()); }
+(rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ModelEntityConfigurationRange__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_1__0__Impl
+	rule__ModelEntityConfigurationRange__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_1__1__Impl
+	rule__ModelEntityConfigurationRange__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1_1()); }
+(rule__ModelEntityConfigurationRange__IdAssignment_1_1)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__EDouble__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__0__Impl
+	rule__EDouble__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__1__Impl
+	rule__EDouble__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); }
+(	RULE_INT)?
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__2__Impl
+	rule__EDouble__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); }
+
+	'.' 
+
+{ after(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__3__Impl
+	rule__EDouble__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); }
+	RULE_INT
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getGroup_4()); }
+(rule__EDouble__Group_4__0)?
+{ after(grammarAccess.getEDoubleAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EDouble__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__0__Impl
+	rule__EDouble__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); }
+(rule__EDouble__Alternatives_4_0)
+{ after(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__1__Impl
+	rule__EDouble__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); }
+	RULE_INT
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__PropertyRange__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__0__Impl
+	rule__PropertyRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0()); }
+
+	'PropertyRange' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__1__Impl
+	rule__PropertyRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__2__Impl
+	rule__PropertyRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2()); }
+
+	'minValueConstraint' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__3__Impl
+	rule__PropertyRange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintAssignment_3()); }
+(rule__PropertyRange__MinValueConstraintAssignment_3)
+{ after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__4__Impl
+	rule__PropertyRange__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4()); }
+
+	'maxValueConstraint' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__5__Impl
+	rule__PropertyRange__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintAssignment_5()); }
+(rule__PropertyRange__MaxValueConstraintAssignment_5)
+{ after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SetOfConfigurations__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__0__Impl
+	rule__SetOfConfigurations__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0()); }
+
+	'SetOfConfigurations' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__1__Impl
+	rule__SetOfConfigurations__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__2__Impl
+	rule__SetOfConfigurations__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getGroup_2()); }
+(rule__SetOfConfigurations__Group_2__0)?
+{ after(grammarAccess.getSetOfConfigurationsAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__3__Impl
+	rule__SetOfConfigurations__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_3()); }
+
+	'valueConstraint' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__4__Impl
+	rule__SetOfConfigurations__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_4()); }
+(rule__SetOfConfigurations__ValueConstraintAssignment_4)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SetOfConfigurations__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__0__Impl
+	rule__SetOfConfigurations__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_2_0()); }
+
+	'variants' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__1__Impl
+	rule__SetOfConfigurations__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_2_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__2__Impl
+	rule__SetOfConfigurations__Group_2__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_2()); }
+(rule__SetOfConfigurations__VariantsAssignment_2_2)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__3__Impl
+	rule__SetOfConfigurations__Group_2__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getGroup_2_3()); }
+(rule__SetOfConfigurations__Group_2_3__0)*
+{ after(grammarAccess.getSetOfConfigurationsAccess().getGroup_2_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_2_4()); }
+
+	')' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_2_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SetOfConfigurations__Group_2_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2_3__0__Impl
+	rule__SetOfConfigurations__Group_2_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_2_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_2_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_3_1()); }
+(rule__SetOfConfigurations__VariantsAssignment_2_3_1)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OclConstraint__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__0__Impl
+	rule__OclConstraint__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0()); }
+
+	'OclConstraint' 
+
+{ after(grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__1__Impl
+	rule__OclConstraint__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getNameAssignment_1()); }
+(rule__OclConstraint__NameAssignment_1)
+{ after(grammarAccess.getOclConstraintAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__2__Impl
+	rule__OclConstraint__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__3__Impl
+	rule__OclConstraint__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getOclStringKeyword_3()); }
+
+	'oclString' 
+
+{ after(grammarAccess.getOclConstraintAccess().getOclStringKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__4__Impl
+	rule__OclConstraint__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getOclStringAssignment_4()); }
+(rule__OclConstraint__OclStringAssignment_4)
+{ after(grammarAccess.getOclConstraintAccess().getOclStringAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Objective__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__0__Impl
+	rule__Objective__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getNameAssignment_0()); }
+(rule__Objective__NameAssignment_0)
+{ after(grammarAccess.getObjectiveAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__1__Impl
+	rule__Objective__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getGroup_1()); }
+(rule__Objective__Group_1__0)?
+{ after(grammarAccess.getObjectiveAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__2__Impl
+	rule__Objective__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__3__Impl
+	rule__Objective__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationKeyword_3()); }
+
+	'specification' 
+
+{ after(grammarAccess.getObjectiveAccess().getSpecificationKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__4__Impl
+	rule__Objective__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getEqualsSignKeyword_4()); }
+
+	'=' 
+
+{ after(grammarAccess.getObjectiveAccess().getEqualsSignKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__5__Impl
+	rule__Objective__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getAlternatives_5()); }
+(rule__Objective__Alternatives_5)
+{ after(grammarAccess.getObjectiveAccess().getAlternatives_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Objective__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_1__0__Impl
+	rule__Objective__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getObjectiveAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_1__1__Impl
+	rule__Objective__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getIdAssignment_1_1()); }
+(rule__Objective__IdAssignment_1_1)
+{ after(grammarAccess.getObjectiveAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getObjectiveAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Objective__Group_5_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1__0__Impl
+	rule__Objective__Group_5_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getLeftParenthesisKeyword_5_1_0()); }
+
+	'(' 
+
+{ after(grammarAccess.getObjectiveAccess().getLeftParenthesisKeyword_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_5_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1__1__Impl
+	rule__Objective__Group_5_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_1()); }
+(rule__Objective__SpecificationsAssignment_5_1_1)
+{ after(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_5_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1__2__Impl
+	rule__Objective__Group_5_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getGroup_5_1_2()); }
+(rule__Objective__Group_5_1_2__0)*
+{ after(grammarAccess.getObjectiveAccess().getGroup_5_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_5_1__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getRightParenthesisKeyword_5_1_3()); }
+
+	')' 
+
+{ after(grammarAccess.getObjectiveAccess().getRightParenthesisKeyword_5_1_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__Objective__Group_5_1_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1_2__0__Impl
+	rule__Objective__Group_5_1_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getCommaKeyword_5_1_2_0()); }
+
+	',' 
+
+{ after(grammarAccess.getObjectiveAccess().getCommaKeyword_5_1_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_5_1_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_2_1()); }
+(rule__Objective__SpecificationsAssignment_5_1_2_1)
+{ after(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Event__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group__0__Impl
+	rule__Event__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getNameAssignment_0()); }
+(rule__Event__NameAssignment_0)
+{ after(grammarAccess.getEventAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Event__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getGroup_1()); }
+(rule__Event__Group_1__0)?
+{ after(grammarAccess.getEventAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Event__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group_1__0__Impl
+	rule__Event__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getEventAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Event__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group_1__1__Impl
+	rule__Event__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getIdAssignment_1_1()); }
+(rule__Event__IdAssignment_1_1)
+{ after(grammarAccess.getEventAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Event__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getEventAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightedTactic__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__0__Impl
+	rule__WeightedTactic__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getNameAssignment_0()); }
+(rule__WeightedTactic__NameAssignment_0)
+{ after(grammarAccess.getWeightedTacticAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__1__Impl
+	rule__WeightedTactic__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_1()); }
+(rule__WeightedTactic__Group_1__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__2__Impl
+	rule__WeightedTactic__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_2()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__3__Impl
+	rule__WeightedTactic__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLeftParenthesisKeyword_3()); }
+
+	'(' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getLeftParenthesisKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__4__Impl
+	rule__WeightedTactic__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_4()); }
+(rule__WeightedTactic__Group_4__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__5__Impl
+	rule__WeightedTactic__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getUsedTacticAssignment_5()); }
+(rule__WeightedTactic__UsedTacticAssignment_5)
+{ after(grammarAccess.getWeightedTacticAccess().getUsedTacticAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__6__Impl
+	rule__WeightedTactic__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCommaKeyword_6()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getCommaKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__7__Impl
+	rule__WeightedTactic__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_7()); }
+(rule__WeightedTactic__Group_7__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__8__Impl
+	rule__WeightedTactic__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_8()); }
+(rule__WeightedTactic__DefaultWeightAssignment_8)
+{ after(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__9__Impl
+	rule__WeightedTactic__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCommaKeyword_9()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getCommaKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__10__Impl
+	rule__WeightedTactic__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_10()); }
+(rule__WeightedTactic__Group_10__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__11__Impl
+	rule__WeightedTactic__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_11()); }
+(rule__WeightedTactic__CurrentWeightAssignment_11)
+{ after(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__12__Impl
+	rule__WeightedTactic__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_12()); }
+(rule__WeightedTactic__Group_12__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getRightParenthesisKeyword_13()); }
+
+	')' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getRightParenthesisKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__WeightedTactic__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_1__0__Impl
+	rule__WeightedTactic__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_1__1__Impl
+	rule__WeightedTactic__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getIdAssignment_1_1()); }
+(rule__WeightedTactic__IdAssignment_1_1)
+{ after(grammarAccess.getWeightedTacticAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightedTactic__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_4__0__Impl
+	rule__WeightedTactic__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0()); }
+
+	'tactic' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightedTactic__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_7__0__Impl
+	rule__WeightedTactic__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0()); }
+
+	'default' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightedTactic__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_10__0__Impl
+	rule__WeightedTactic__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0()); }
+
+	'current' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_10__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightedTactic__Group_12__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12__0__Impl
+	rule__WeightedTactic__Group_12__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCommaKeyword_12_0()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getCommaKeyword_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_12__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12__1__Impl
+	rule__WeightedTactic__Group_12__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_12_1()); }
+(rule__WeightedTactic__Group_12_1__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_12_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_12__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLastImpactAssignment_12_2()); }
+(rule__WeightedTactic__LastImpactAssignment_12_2)
+{ after(grammarAccess.getWeightedTacticAccess().getLastImpactAssignment_12_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightedTactic__Group_12_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12_1__0__Impl
+	rule__WeightedTactic__Group_12_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0()); }
+
+	'lastImpact' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_12_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightingFunction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__0__Impl
+	rule__WeightingFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getNameAssignment_0()); }
+(rule__WeightingFunction__NameAssignment_0)
+{ after(grammarAccess.getWeightingFunctionAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__1__Impl
+	rule__WeightingFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getGroup_1()); }
+(rule__WeightingFunction__Group_1__0)?
+{ after(grammarAccess.getWeightingFunctionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__2__Impl
+	rule__WeightingFunction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_2()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__3__Impl
+	rule__WeightingFunction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_3()); }
+
+	'(' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__4__Impl
+	rule__WeightingFunction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationKeyword_4()); }
+
+	'weightingFunctionImplementation' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__5__Impl
+	rule__WeightingFunction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_5()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__6__Impl
+	rule__WeightingFunction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationAssignment_6()); }
+(rule__WeightingFunction__WeightingFunctionImplementationAssignment_6)
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__7__Impl
+	rule__WeightingFunction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsKeyword_7()); }
+
+	'weightedMetrics' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__8__Impl
+	rule__WeightingFunction__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_8()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__9__Impl
+	rule__WeightingFunction__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_9()); }
+
+	'(' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__10__Impl
+	rule__WeightingFunction__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_10()); }
+(rule__WeightingFunction__WeightedMetricsAssignment_10)
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__11__Impl
+	rule__WeightingFunction__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getGroup_11()); }
+(rule__WeightingFunction__Group_11__0)*
+{ after(grammarAccess.getWeightingFunctionAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__12__Impl
+	rule__WeightingFunction__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_12()); }
+
+	')' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_13()); }
+
+	')' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__WeightingFunction__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_1__0__Impl
+	rule__WeightingFunction__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_1__1__Impl
+	rule__WeightingFunction__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getIdAssignment_1_1()); }
+(rule__WeightingFunction__IdAssignment_1_1)
+{ after(grammarAccess.getWeightingFunctionAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightingFunction__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_11__0__Impl
+	rule__WeightingFunction__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getCommaKeyword_11_0()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getCommaKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_11__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_11_1()); }
+(rule__WeightingFunction__WeightedMetricsAssignment_11_1)
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Specification__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__0__Impl
+	rule__Specification__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getSpecificationKeyword_0()); }
+(
+	'Specification' 
+)?
+{ after(grammarAccess.getSpecificationAccess().getSpecificationKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__1__Impl
+	rule__Specification__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__2__Impl
+	rule__Specification__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2()); }
+(
+	'metricType' 
+)?
+{ after(grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__3__Impl
+	rule__Specification__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getMetricTypeAssignment_3()); }
+(rule__Specification__MetricTypeAssignment_3)
+{ after(grammarAccess.getSpecificationAccess().getMetricTypeAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__4__Impl
+	rule__Specification__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getCommaKeyword_4()); }
+
+	',' 
+
+{ after(grammarAccess.getSpecificationAccess().getCommaKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__5__Impl
+	rule__Specification__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5()); }
+(
+	'relationalOperator' 
+)?
+{ after(grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__6__Impl
+	rule__Specification__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getRelationalOperatorAssignment_6()); }
+(rule__Specification__RelationalOperatorAssignment_6)
+{ after(grammarAccess.getSpecificationAccess().getRelationalOperatorAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__7__Impl
+	rule__Specification__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getCommaKeyword_7()); }
+
+	',' 
+
+{ after(grammarAccess.getSpecificationAccess().getCommaKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__8__Impl
+	rule__Specification__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getValueKeyword_8()); }
+(
+	'value' 
+)?
+{ after(grammarAccess.getSpecificationAccess().getValueKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__9__Impl
+	rule__Specification__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getValueAssignment_9()); }
+(rule__Specification__ValueAssignment_9)
+{ after(grammarAccess.getSpecificationAccess().getValueAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_10()); }
+
+	')' 
+
+{ after(grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__MetricValue__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__0__Impl
+	rule__MetricValue__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricValueKeyword_0()); }
+
+	'MetricValue' 
+
+{ after(grammarAccess.getMetricValueAccess().getMetricValueKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__1__Impl
+	rule__MetricValue__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getNameAssignment_1()); }
+(rule__MetricValue__NameAssignment_1)
+{ after(grammarAccess.getMetricValueAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__2__Impl
+	rule__MetricValue__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getGroup_2()); }
+(rule__MetricValue__Group_2__0)?
+{ after(grammarAccess.getMetricValueAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__3__Impl
+	rule__MetricValue__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getMetricValueAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__4__Impl
+	rule__MetricValue__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getValueKeyword_4()); }
+
+	'value' 
+
+{ after(grammarAccess.getMetricValueAccess().getValueKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__5__Impl
+	rule__MetricValue__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getValueAssignment_5()); }
+(rule__MetricValue__ValueAssignment_5)
+{ after(grammarAccess.getMetricValueAccess().getValueAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__6__Impl
+	rule__MetricValue__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMeasuredEntityKeyword_6()); }
+
+	'measuredEntity' 
+
+{ after(grammarAccess.getMetricValueAccess().getMeasuredEntityKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__7__Impl
+	rule__MetricValue__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMeasuredEntityAssignment_7()); }
+(rule__MetricValue__MeasuredEntityAssignment_7)
+{ after(grammarAccess.getMetricValueAccess().getMeasuredEntityAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__8__Impl
+	rule__MetricValue__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricTypeKeyword_8()); }
+
+	'metricType' 
+
+{ after(grammarAccess.getMetricValueAccess().getMetricTypeKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__9__Impl
+	rule__MetricValue__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricTypeAssignment_9()); }
+(rule__MetricValue__MetricTypeAssignment_9)
+{ after(grammarAccess.getMetricValueAccess().getMetricTypeAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getRightCurlyBracketKeyword_10()); }
+
+	'}' 
+
+{ after(grammarAccess.getMetricValueAccess().getRightCurlyBracketKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__MetricValue__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group_2__0__Impl
+	rule__MetricValue__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getMetricValueAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group_2__1__Impl
+	rule__MetricValue__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getIdAssignment_2_1()); }
+(rule__MetricValue__IdAssignment_2_1)
+{ after(grammarAccess.getMetricValueAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getMetricValueAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+rule__WeightedMetric__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__0__Impl
+	rule__WeightedMetric__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0()); }
+(
+	'WeightedMetric' 
+)?
+{ after(grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__1__Impl
+	rule__WeightedMetric__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getNameAssignment_1()); }
+(rule__WeightedMetric__NameAssignment_1)
+{ after(grammarAccess.getWeightedMetricAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__2__Impl
+	rule__WeightedMetric__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getGroup_2()); }
+(rule__WeightedMetric__Group_2__0)?
+{ after(grammarAccess.getWeightedMetricAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__3__Impl
+	rule__WeightedMetric__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_3()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__4__Impl
+	rule__WeightedMetric__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getLeftParenthesisKeyword_4()); }
+
+	'(' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getLeftParenthesisKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__5__Impl
+	rule__WeightedMetric__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getGroup_5()); }
+(rule__WeightedMetric__Group_5__0)?
+{ after(grammarAccess.getWeightedMetricAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__6__Impl
+	rule__WeightedMetric__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getMetricTypeAssignment_6()); }
+(rule__WeightedMetric__MetricTypeAssignment_6)
+{ after(grammarAccess.getWeightedMetricAccess().getMetricTypeAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__7__Impl
+	rule__WeightedMetric__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getCommaKeyword_7()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getCommaKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__8__Impl
+	rule__WeightedMetric__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getGroup_8()); }
+(rule__WeightedMetric__Group_8__0)?
+{ after(grammarAccess.getWeightedMetricAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__9__Impl
+	rule__WeightedMetric__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getWeightAssignment_9()); }
+(rule__WeightedMetric__WeightAssignment_9)
+{ after(grammarAccess.getWeightedMetricAccess().getWeightAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getRightParenthesisKeyword_10()); }
+
+	')' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getRightParenthesisKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__WeightedMetric__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_2__0__Impl
+	rule__WeightedMetric__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_2__1__Impl
+	rule__WeightedMetric__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getIdAssignment_2_1()); }
+(rule__WeightedMetric__IdAssignment_2_1)
+{ after(grammarAccess.getWeightedMetricAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightedMetric__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_5__0__Impl
+	rule__WeightedMetric__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0()); }
+
+	'metricType' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightedMetric__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_8__0__Impl
+	rule__WeightedMetric__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0()); }
+
+	'weight' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__AdaptationProcess__ImportDeclarationAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getImportDeclarationImportDeclarationParserRuleCall_0_0()); }
+	ruleImportDeclaration{ after(grammarAccess.getAdaptationProcessAccess().getImportDeclarationImportDeclarationParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__NameAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getNameEStringParserRuleCall_2_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationProcessAccess().getNameEStringParserRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__IdAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getIdEStringParserRuleCall_3_1_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationProcessAccess().getIdEStringParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__ParametersAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_2_0()); }
+	ruleParameter{ after(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__ParametersAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_3_1_0()); }
+	ruleParameter{ after(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__GoalAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGoalOverallGoalParserRuleCall_8_0()); }
+	ruleOverallGoal{ after(grammarAccess.getAdaptationProcessAccess().getGoalOverallGoalParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__ActionsAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_11_0()); }
+	ruleAction{ after(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__ActionsAssignment_12_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_12_1_0()); }
+	ruleAction{ after(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_12_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__TacticsAssignment_15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_15_0()); }
+	ruleTactic{ after(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_15_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__TacticsAssignment_16_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_16_1_0()); }
+	ruleTactic{ after(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_16_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__StrategiesAssignment_19
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_19_0()); }
+	ruleStrategy{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_19_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__StrategiesAssignment_20_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_20_1_0()); }
+	ruleStrategy{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_20_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__ImplementedPlanAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_5_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__InputParamsAssignment_6_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_3_0()); }
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_3_0_1()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_3_0_1()); }
+)
+{ after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__InputParamsAssignment_6_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_4_1_0()); }
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_4_1_0_1()); }
+)
+{ after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__OutputParamAssignment_7_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_7_2_0()); }
+(
+{ before(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_7_2_0_1()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_7_2_0_1()); }
+)
+{ after(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_7_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__AdaptationActionOperationAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0()); }
+	ruleAdaptationActionOperation{ after(grammarAccess.getActionAccess().getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__ReferredAdaptationPointAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_9_0()); }
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_9_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_9_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__InputParamsAssignment_10_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_3_0()); }
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_3_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_3_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__InputParamsAssignment_10_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_4_1_0()); }
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_4_1_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__OutputParamAssignment_11_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_11_2_0()); }
+(
+{ before(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_11_2_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_11_2_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_11_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__ObjectiveAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_5_0()); }
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__TriggeringEventsAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_8_0()); }
+	ruleEvent{ after(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__TacticsAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_12_0()); }
+	ruleWeightedTactic{ after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__TacticsAssignment_13_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_13_1_0()); }
+	ruleWeightedTactic{ after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_13_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__WeightingFunctionAssignment_16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_16_0()); }
+	ruleWeightingFunction{ after(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_16_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__TypeAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_3_0()); }
+	ruleEString{ after(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__ValueAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getValueEStringParserRuleCall_4_2_0()); }
+	ruleEString{ after(grammarAccess.getParameterAccess().getValueEStringParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__DescriptionAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getDescriptionEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getOverallGoalAccess().getDescriptionEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__ObjectivesAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_5_0()); }
+	ruleObjective{ after(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__ObjectivesAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_6_1_0()); }
+	ruleObjective{ after(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ImportDeclaration__ImportURIAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__StepsAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_1_0()); }
+	ruleAbstractControlFlowElement{ after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__StepsAssignment_3_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0()); }
+	ruleAbstractControlFlowElement{ after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getStartActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getStopActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getLoopActionAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__CounterAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getCounterParameterCrossReference_5_0()); }
+(
+{ before(grammarAccess.getLoopActionAccess().getCounterParameterEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getLoopActionAccess().getCounterParameterEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getLoopActionAccess().getCounterParameterCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__BodyAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getBodyAdaptationPlanParserRuleCall_7_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getLoopActionAccess().getBodyAdaptationPlanParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getBranchActionAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__ContextAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getContextEntityCrossReference_6_0()); }
+(
+{ before(grammarAccess.getBranchActionAccess().getContextEntityEStringParserRuleCall_6_0_1()); }
+	ruleEString{ after(grammarAccess.getBranchActionAccess().getContextEntityEStringParserRuleCall_6_0_1()); }
+)
+{ after(grammarAccess.getBranchActionAccess().getContextEntityCrossReference_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__ConditionAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionEStringParserRuleCall_10_0()); }
+	ruleEString{ after(grammarAccess.getBranchActionAccess().getConditionEStringParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__ConditionTrueBranchAssignment_14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionTrueBranchAdaptationPlanParserRuleCall_14_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getBranchActionAccess().getConditionTrueBranchAdaptationPlanParserRuleCall_14_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__ConditionFalseBranchAssignment_18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionFalseBranchAdaptationPlanParserRuleCall_18_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getBranchActionAccess().getConditionFalseBranchAdaptationPlanParserRuleCall_18_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getActionReferenceAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__RefersToAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_4_0()); }
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_4_0_1()); }
+	ruleEString{ after(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_4_0_1()); }
+)
+{ after(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0()); }
+	ruleAdaptationDirection{ after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0()); }
+	ruleAdaptationScope{ after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__MinValueAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_6_0()); }
+	ruleEDouble{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__MaxValueAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_8_0()); }
+	ruleEDouble{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_10_0()); }
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_10_0_1()); }
+	ruleEString{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_10_0_1()); }
+)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityCrossReference_6_0()); }
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityEStringParserRuleCall_6_0_1()); }
+	ruleEString{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityEStringParserRuleCall_6_0_1()); }
+)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityCrossReference_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_8_0()); }
+	ruleVariationType{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__MinValueConstraintAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0()); }
+	ruleOclConstraint{ after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__MaxValueConstraintAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0()); }
+	ruleOclConstraint{ after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__VariantsAssignment_2_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_2_0()); }
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_2_0_1()); }
+	ruleEString{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_2_0_1()); }
+)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__VariantsAssignment_2_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_3_1_0()); }
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_3_1_0_1()); }
+)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__ValueConstraintAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintParserRuleCall_4_0()); }
+	ruleOclConstraint{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__OclStringAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getObjectiveAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getObjectiveAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__SpecificationsAssignment_5_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_0_0()); }
+	ruleSpecification{ after(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__SpecificationsAssignment_5_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_1_0()); }
+	ruleSpecification{ after(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__SpecificationsAssignment_5_1_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_2_1_0()); }
+	ruleSpecification{ after(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getEventAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getEventAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getWeightedTacticAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getWeightedTacticAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__UsedTacticAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticCrossReference_5_0()); }
+(
+{ before(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__DefaultWeightAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_8_0()); }
+	ruleEDouble{ after(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__CurrentWeightAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_11_0()); }
+	ruleEDouble{ after(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__LastImpactAssignment_12_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLastImpactImpactCrossReference_12_2_0()); }
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLastImpactImpactEStringParserRuleCall_12_2_0_1()); }
+	ruleEString{ after(grammarAccess.getWeightedTacticAccess().getLastImpactImpactEStringParserRuleCall_12_2_0_1()); }
+)
+{ after(grammarAccess.getWeightedTacticAccess().getLastImpactImpactCrossReference_12_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getWeightingFunctionAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getWeightingFunctionAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__WeightingFunctionImplementationAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationEStringParserRuleCall_6_0()); }
+	ruleEString{ after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationEStringParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__WeightedMetricsAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_10_0()); }
+	ruleWeightedMetric{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__WeightedMetricsAssignment_11_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_11_1_0()); }
+	ruleWeightedMetric{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_11_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__MetricTypeAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeCrossReference_3_0()); }
+(
+{ before(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeEStringParserRuleCall_3_0_1()); }
+	ruleEString{ after(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeEStringParserRuleCall_3_0_1()); }
+)
+{ after(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeCrossReference_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__RelationalOperatorAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0()); }
+	ruleRelationalOperator{ after(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__ValueAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0()); }
+	ruleEDouble{ after(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__MetricValue__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getMetricValueAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getMetricValueAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__ValueAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getValueEDoubleParserRuleCall_5_0()); }
+	ruleEDouble{ after(grammarAccess.getMetricValueAccess().getValueEDoubleParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__MeasuredEntityAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityCrossReference_7_0()); }
+(
+{ before(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityEStringParserRuleCall_7_0_1()); }
+	ruleEString{ after(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityEStringParserRuleCall_7_0_1()); }
+)
+{ after(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityCrossReference_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__MetricTypeAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeCrossReference_9_0()); }
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeEStringParserRuleCall_9_0_1()); }
+	ruleEString{ after(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeEStringParserRuleCall_9_0_1()); }
+)
+{ after(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeCrossReference_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+rule__WeightedMetric__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getWeightedMetricAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getWeightedMetricAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__MetricTypeAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeCrossReference_6_0()); }
+(
+{ before(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeEStringParserRuleCall_6_0_1()); }
+	ruleEString{ after(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeEStringParserRuleCall_6_0_1()); }
+)
+{ after(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeCrossReference_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__WeightAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getWeightEDoubleParserRuleCall_9_0()); }
+	ruleEDouble{ after(grammarAccess.getWeightedMetricAccess().getWeightEDoubleParserRuleCall_9_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/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.tokens b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.tokens
new file mode 100644
index 0000000000000000000000000000000000000000..e3dcc6e03429eae4190dda7c39d0d7ccf3f39350
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.tokens
@@ -0,0 +1,203 @@
+RULE_ID=5
+T__29=29
+T__28=28
+T__27=27
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=10
+T__21=21
+T__20=20
+T__93=93
+T__19=19
+T__94=94
+T__91=91
+T__92=92
+T__16=16
+T__15=15
+T__90=90
+T__18=18
+T__17=17
+T__12=12
+T__11=11
+T__14=14
+T__13=13
+T__99=99
+T__98=98
+T__97=97
+T__96=96
+T__95=95
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__85=85
+T__84=84
+T__87=87
+T__86=86
+T__89=89
+T__88=88
+RULE_ML_COMMENT=7
+RULE_STRING=4
+T__71=71
+T__72=72
+T__70=70
+T__76=76
+T__75=75
+T__74=74
+T__73=73
+T__79=79
+T__78=78
+T__77=77
+T__68=68
+T__69=69
+T__66=66
+T__67=67
+T__64=64
+T__65=65
+T__62=62
+T__63=63
+T__61=61
+T__60=60
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__107=107
+T__108=108
+T__103=103
+T__59=59
+T__104=104
+T__105=105
+T__106=106
+RULE_INT=6
+T__50=50
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__47=47
+T__44=44
+T__45=45
+T__48=48
+T__49=49
+T__102=102
+T__101=101
+T__100=100
+RULE_SL_COMMENT=8
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+RULE_WS=9
+'>='=26
+'=='=23
+'type'=60
+'e'=13
+'value'=61
+'minValueConstraint'=88
+'tactic'=96
+'OclConstraint'=93
+'objectives'=63
+'condition'=73
+'RANDOM'=18
+'referredAdaptationPoint'=56
+'{'=36
+'MIGRATE'=22
+'goal'=37
+'THIS'=15
+'triggeringEvent'=58
+'('=51
+':'=38
+'tactics'=40
+'default'=97
+']'=44
+'ImportDeclaration'=64
+'ActionReference'=76
+'refersTo'=77
+'output'=53
+'variationPossibility'=84
+'oclString'=94
+'valueConstraint'=91
+'DECREASE'=21
+'StopAction'=66
+'weightedMetrics'=101
+'BranchAction'=70
+'lastImpact'=99
+'metricType'=103
+'='=50
+'parameters'=45
+'NOT_SET'=14
+'LoopAction'=67
+'minValue'=80
+'objective'=57
+'GREATER_EQUAL'=32
+'measuredEntity'=106
+'AdaptationProcess'=35
+'Action'=54
+'<='=28
+'PropertyRange'=87
+'!='=24
+'<'=27
+'name'=79
+'E'=12
+'EQUAL'=29
+'counter'=69
+'then'=74
+'>'=25
+'NOT_EQUAL'=30
+'weightingFunction'=59
+'maxValue'=81
+'LESS_EQUAL'=34
+'.'=86
+'adaptableEntity'=82
+'LEAST_UTILIZED_FIRST'=16
+'else'=75
+'SetOfConfigurations'=90
+'LESS'=33
+'weightingFunctionImplementation'=100
+'Specification'=102
+'EDate'=11
+'if'=71
+'-'=85
+','=46
+'input'=49
+'INCREASE'=20
+'context'=72
+'implementedPlan'=48
+'GREATER'=31
+'WeightedMetric'=107
+'MOST_UTILIZED_FIRST'=17
+'repeat'=68
+'ModelVariableConfigurationRange'=78
+'Tactic'=47
+'ModelEntityConfigurationRange'=83
+')'=52
+'strategies'=41
+'StartAction'=65
+'operation'=55
+'specification'=95
+'}'=42
+'actions'=39
+'current'=98
+'weight'=108
+'description'=62
+'maxValueConstraint'=89
+'relationalOperator'=104
+'ALL'=19
+'MetricValue'=105
+'[id:'=43
+'variants'=92
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangLexer$DFA12.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangLexer$DFA12.class
new file mode 100644
index 0000000000000000000000000000000000000000..c8bb3622add39d247bb73d1effe3cb22ddf052a5
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangLexer$DFA12.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangLexer.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangLexer.class
new file mode 100644
index 0000000000000000000000000000000000000000..28af4e725b9e926fca817418f13bbd5dc72ceffb
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangLexer.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser$DFA1.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser$DFA1.class
new file mode 100644
index 0000000000000000000000000000000000000000..d984c1895925bf72abb96935a80523a5bfb8fa76
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser$DFA1.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser$FollowSets000.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser$FollowSets000.class
new file mode 100644
index 0000000000000000000000000000000000000000..5c52700d48d79472308a4e5aac1c9f2f8f54cdcd
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser$FollowSets000.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser$FollowSets001.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser$FollowSets001.class
new file mode 100644
index 0000000000000000000000000000000000000000..b91e0500c5ffb0305b5f100e413a41030746a608
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser$FollowSets001.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser.class
new file mode 100644
index 0000000000000000000000000000000000000000..b8813d517b5596b3666cd13a5624469038cd74f9
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MyHighlightingConfiguration.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MyHighlightingConfiguration.class
new file mode 100644
index 0000000000000000000000000000000000000000..ef61af50a21f32184399384d46be1000bcce6d56
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MyHighlightingConfiguration.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MySemanticHighlightingCalculator.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MySemanticHighlightingCalculator.class
new file mode 100644
index 0000000000000000000000000000000000000000..005bbf6f23e8e4dbd2655afe3349f6505ada0d7c
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MySemanticHighlightingCalculator.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/internal/StaLangActivator.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/internal/StaLangActivator.class
new file mode 100644
index 0000000000000000000000000000000000000000..73ec11406ac66a9eb10e7c3634cd600bf6393085
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/internal/StaLangActivator.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangDescriptionLabelProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangDescriptionLabelProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..a15f35eb8907e0fe483c48be96bc5aecaffe6f38
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangDescriptionLabelProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangLabelProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangLabelProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..e2a4fd29eb8bfda04a311cf23e8281140d6c8d03
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangLabelProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..c49bc3f79d6850c09a08c086fc10f63f810a7ced
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..92f2ff7c5a114d6f920a0dbe74090e57e7390356
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.xtend
@@ -0,0 +1,24 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.labeling
+
+//import org.eclipse.xtext.resource.IEObjectDescription
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+class StaLangDescriptionLabelProvider extends org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider {
+
+	// Labels and icons can be computed like this:
+	
+//	override text(IEObjectDescription ele) {
+//		ele.name.toString
+//	}
+//	 
+//	override image(IEObjectDescription ele) {
+//		ele.EClass.name + '.gif'
+//	}	 
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..772bb02b4e9f7923735ea281f8fdb0c8c3d57dbd
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..65f9fcdc168a307ca6244e2d65fcce78db61439f
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.xtend
@@ -0,0 +1,29 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.labeling
+
+import com.google.inject.Inject
+
+/**
+ * Provides labels for a EObjects.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+class StaLangLabelProvider extends org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider {
+
+	@Inject
+	new(org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider delegate) {
+		super(delegate);
+	}
+
+	// Labels and icons can be computed like this:
+	
+//	def text(Greeting ele) {
+//		'A greeting to ' + ele.name
+//	}
+//
+//	def image(Greeting ele) {
+//		'Greeting.gif'
+//	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/.StaLangOutlineTreeProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/.StaLangOutlineTreeProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..ff7740717477462b70fd68cf2bf7650d2532f55f
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/.StaLangOutlineTreeProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..99df474d68b48263d55e5e458d9bc26971b90973
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..1fe4b61d16df2e0d417e469e218447885a9a0a74
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.xtend
@@ -0,0 +1,13 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.outline
+
+/**
+ * Customization of the default outline structure.
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#outline
+ */
+class StaLangOutlineTreeProvider extends org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider {
+	
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/.StaLangQuickfixProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/.StaLangQuickfixProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..5fafd430c88977df08f0f2b29445adc0ce1b04b3
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/.StaLangQuickfixProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.class b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..85272411def5af18c2056812eff024fc13ee5985
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..5c97daffc8376fc73f133acd94d2a1ca9a80ccdb
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/bin/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.xtend
@@ -0,0 +1,26 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.quickfix
+
+//import org.eclipse.xtext.ui.editor.quickfix.Fix
+//import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor
+//import org.eclipse.xtext.validation.Issue
+
+/**
+ * Custom quickfixes.
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#quickfixes
+ */
+class StaLangQuickfixProvider extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider {
+
+//	@Fix(MyDslValidator::INVALID_NAME)
+//	def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
+//		acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
+//			context |
+//			val xtextDocument = context.xtextDocument
+//			val firstLetter = xtextDocument.get(issue.offset, 1)
+//			xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
+//		]
+//	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/build.properties b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/build.properties
new file mode 100644
index 0000000000000000000000000000000000000000..31255ed05bc1242430be9f3e44440c2e42921649
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
\ No newline at end of file
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/plugin.xml b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/plugin.xml
new file mode 100644
index 0000000000000000000000000000000000000000..829ed05e969c9e2a70cf7c0d88d56273d8e3a650
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/plugin.xml
@@ -0,0 +1,423 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="staLang"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            name="StaLang Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.validate">
+         <activeWhen>
+            <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.XtextEditor.opened" />
+	                <iterate>
+						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+					</iterate>
+				</and>
+            </activeWhen>
+        </handler>
+    </extension>
+    <extension point="org.eclipse.core.expressions.definitions">
+        <definition id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            name="StaLang">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+        </page>
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+        </page>
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.templates"
+            name="Templates">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            name="StaLang">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+            <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="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"
+            label="StaLang"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.validate"
+            name="Validate">
+      </command>
+      <!-- copy qualified name -->
+      <command
+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+            categoryId="org.eclipse.ui.category.edit"
+            description="Copy the qualified name for the selected element"
+            name="Copy Qualified Name">
+      </command>
+      <command
+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+            categoryId="org.eclipse.ui.category.edit"
+            description="Copy the qualified name for the selected element"
+            name="Copy Qualified Name">
+      </command>
+    </extension>
+    <extension point="org.eclipse.ui.menus">
+        <menuContribution
+            locationURI="popup:#TextEditorContext?after=group.edit">
+             <command
+                 commandId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+                </reference>
+            </visibleWhen>
+         </command>  
+         </menuContribution>
+         <!-- copy qualified name -->
+         <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" 
+         		style="push" tooltip="Copy Qualified Name">
+            	<visibleWhen checkEnabled="false">
+                	<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened" />
+            	</visibleWhen>
+         	</command>  
+         </menuContribution>
+         <menuContribution locationURI="menu:edit?after=copy">
+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+            	style="push" tooltip="Copy Qualified Name">
+            	<visibleWhen checkEnabled="false">
+                	<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened" />
+            	</visibleWhen>
+         	</command>  
+         </menuContribution>
+         <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" 
+				style="push" tooltip="Copy Qualified Name">
+         		<visibleWhen checkEnabled="false">
+	            	<and>
+	            		<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.XtextEditor.opened" />
+						<iterate>
+							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+						</iterate>
+					</and>
+				</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="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="staLang">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="staLang">
+        </resourceServiceProvider>
+    </extension>
+
+
+    <!-- marker definitions for edu.kit.ipd.descartes.mm.adaptation.sta.StaLang -->
+    <extension
+            id="stalang.check.fast"
+            name="StaLang Problem"
+            point="org.eclipse.core.resources.markers">
+        <super type="org.eclipse.xtext.ui.check.fast"/>
+        <persistent value="true"/>
+    </extension>
+    <extension
+            id="stalang.check.normal"
+            name="StaLang Problem"
+            point="org.eclipse.core.resources.markers">
+        <super type="org.eclipse.xtext.ui.check.normal"/>
+        <persistent value="true"/>
+    </extension>
+    <extension
+            id="stalang.check.expensive"
+            name="StaLang Problem"
+            point="org.eclipse.core.resources.markers">
+        <super type="org.eclipse.xtext.ui.check.expensive"/>
+        <persistent value="true"/>
+    </extension>
+
+   <extension
+         point="org.eclipse.xtext.builder.participant">
+      <participant
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.compiler.propertyPage"
+            name="Compiler">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+            <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="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.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="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for edu.kit.ipd.descartes.mm.adaptation.sta.StaLang -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="edu.kit.ipd.descartes.mm.adaptation.sta.ui.stalang.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="edu.kit.ipd.descartes.mm.adaptation.sta.ui.stalang.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="edu.kit.ipd.descartes.mm.adaptation.sta.ui.stalang.check.expensive">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+    </extension>
+   	<!-- Rename Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.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="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+	        class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.refactoring"
+	        name="Refactoring">
+	        <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+	    </page>
+	</extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.compare.contentViewers"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="staLang">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.compare.contentMergeViewers"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="staLang" label="StaLang Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.editors.documentProviders"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="staLang">
+    </provider>
+  </extension>
+  <extension
+       point="org.eclipse.xtext.extension_resourceServiceProvider">
+    <resourceServiceProvider
+          class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+         	uriExtension="perfdatarepo">
+    </resourceServiceProvider>
+ </extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+           	uriExtension="adaptationpoints">
+        </resourceServiceProvider>
+    </extension>
+  <extension
+        point="org.eclipse.xtext.extension_resourceServiceProvider">
+     <resourceServiceProvider
+           class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+           uriExtension="containerrepository">
+     </resourceServiceProvider>
+  </extension>
+  <extension
+        point="org.eclipse.xtext.extension_resourceServiceProvider">
+     <resourceServiceProvider
+           class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+           uriExtension="resourcelandscape ">
+     </resourceServiceProvider>
+  </extension>
+
+</plugin>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/plugin.xml_gen b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/plugin.xml_gen
new file mode 100644
index 0000000000000000000000000000000000000000..473c94b1c989b2fcd7c8633ddf5521d9d5cb970c
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/plugin.xml_gen
@@ -0,0 +1,396 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="staLang"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            name="StaLang Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.validate">
+         <activeWhen>
+            <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.XtextEditor.opened" />
+	                <iterate>
+						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+					</iterate>
+				</and>
+            </activeWhen>
+        </handler>
+    </extension>
+    <extension point="org.eclipse.core.expressions.definitions">
+        <definition id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            name="StaLang">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+        </page>
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+        </page>
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.templates"
+            name="Templates">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            name="StaLang">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+            <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="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"
+            label="StaLang"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.validate"
+            name="Validate">
+      </command>
+      <!-- copy qualified name -->
+      <command
+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+            categoryId="org.eclipse.ui.category.edit"
+            description="Copy the qualified name for the selected element"
+            name="Copy Qualified Name">
+      </command>
+      <command
+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+            categoryId="org.eclipse.ui.category.edit"
+            description="Copy the qualified name for the selected element"
+            name="Copy Qualified Name">
+      </command>
+    </extension>
+    <extension point="org.eclipse.ui.menus">
+        <menuContribution
+            locationURI="popup:#TextEditorContext?after=group.edit">
+             <command
+                 commandId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+                </reference>
+            </visibleWhen>
+         </command>  
+         </menuContribution>
+         <!-- copy qualified name -->
+         <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" 
+         		style="push" tooltip="Copy Qualified Name">
+            	<visibleWhen checkEnabled="false">
+                	<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened" />
+            	</visibleWhen>
+         	</command>  
+         </menuContribution>
+         <menuContribution locationURI="menu:edit?after=copy">
+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+            	style="push" tooltip="Copy Qualified Name">
+            	<visibleWhen checkEnabled="false">
+                	<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened" />
+            	</visibleWhen>
+         	</command>  
+         </menuContribution>
+         <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" 
+				style="push" tooltip="Copy Qualified Name">
+         		<visibleWhen checkEnabled="false">
+	            	<and>
+	            		<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.XtextEditor.opened" />
+						<iterate>
+							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+						</iterate>
+					</and>
+				</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="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="staLang">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="staLang">
+        </resourceServiceProvider>
+    </extension>
+
+
+    <!-- marker definitions for edu.kit.ipd.descartes.mm.adaptation.sta.StaLang -->
+    <extension
+            id="stalang.check.fast"
+            name="StaLang Problem"
+            point="org.eclipse.core.resources.markers">
+        <super type="org.eclipse.xtext.ui.check.fast"/>
+        <persistent value="true"/>
+    </extension>
+    <extension
+            id="stalang.check.normal"
+            name="StaLang Problem"
+            point="org.eclipse.core.resources.markers">
+        <super type="org.eclipse.xtext.ui.check.normal"/>
+        <persistent value="true"/>
+    </extension>
+    <extension
+            id="stalang.check.expensive"
+            name="StaLang Problem"
+            point="org.eclipse.core.resources.markers">
+        <super type="org.eclipse.xtext.ui.check.expensive"/>
+        <persistent value="true"/>
+    </extension>
+
+   <extension
+         point="org.eclipse.xtext.builder.participant">
+      <participant
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.compiler.propertyPage"
+            name="Compiler">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+            <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="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.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="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for edu.kit.ipd.descartes.mm.adaptation.sta.StaLang -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="edu.kit.ipd.descartes.mm.adaptation.sta.ui.stalang.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="edu.kit.ipd.descartes.mm.adaptation.sta.ui.stalang.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="edu.kit.ipd.descartes.mm.adaptation.sta.ui.stalang.check.expensive">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+    </extension>
+   	<!-- Rename Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.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="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang"
+	        class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.refactoring"
+	        name="Refactoring">
+	        <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.sta.ui.keyword_StaLang"/>
+	    </page>
+	</extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.compare.contentViewers"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="staLang">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.compare.contentMergeViewers"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="staLang" label="StaLang Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="edu.kit.ipd.descartes.mm.adaptation.sta.StaLang.editors.documentProviders"
+            class="edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="staLang">
+    </provider>
+  </extension>
+
+</plugin>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/AbstractStaLangUiModule.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/AbstractStaLangUiModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..494cd56aacc5b37804f436b480d127e5339fc635
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/AbstractStaLangUiModule.java
@@ -0,0 +1,222 @@
+
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractStaLangUiModule extends DefaultUiModule {
+	
+	public AbstractStaLangUiModule(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(edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal.InternalStaLangLexer.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.SimpleNamesFragment
+	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.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 edu.kit.ipd.descartes.mm.adaptation.sta.ui.labeling.StaLangLabelProvider.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(edu.kit.ipd.descartes.mm.adaptation.sta.ui.labeling.StaLangDescriptionLabelProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.ui.outline.StaLangOutlineTreeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.ui.outline.StaLangOutlineTreeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.ui.quickfix.StaLangQuickfixProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.contentAssist.ContentAssistFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.StaLangProposalProvider.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 edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.StaLangParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+		binder.bind(edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.internal.InternalStaLangLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.internal.InternalStaLangLexer.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(edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.internal.InternalStaLangLexer.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.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.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation> bindIJavaSearchParticipation() {
+		return org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation.Yes.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 edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.PartialStaLangContentAssistParser.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/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangExecutableExtensionFactory.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangExecutableExtensionFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a3db4fe781e66fce8a72f424ba8f930407d07cd
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangExecutableExtensionFactory.java
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import edu.kit.ipd.descartes.mm.adaptation.sta.ui.internal.StaLangActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class StaLangExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+	@Override
+	protected Bundle getBundle() {
+		return StaLangActivator.getInstance().getBundle();
+	}
+	
+	@Override
+	protected Injector getInjector() {
+		return StaLangActivator.getInstance().getInjector(StaLangActivator.EDU_KIT_IPD_DESCARTES_MM_ADAPTATION_STA_STALANG);
+	}
+	
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/AbstractStaLangProposalProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/AbstractStaLangProposalProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..572c5a72fde45a64945820342558c506f2e28851
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/AbstractStaLangProposalProvider.java
@@ -0,0 +1,446 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
+ * with a more concrete subtype. 
+ */
+@SuppressWarnings("all")
+public class AbstractStaLangProposalProvider extends org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider {
+		
+	public void completeAdaptationProcess_ImportDeclaration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationProcess_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationProcess_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationProcess_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationProcess_Goal(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationProcess_Actions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationProcess_Tactics(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationProcess_Strategies(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTactic_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTactic_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTactic_ImplementedPlan(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTactic_InputParams(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTactic_OutputParam(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAction_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAction_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAction_AdaptationActionOperation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAction_ReferredAdaptationPoint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAction_InputParams(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAction_OutputParam(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStrategy_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStrategy_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStrategy_Objective(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStrategy_TriggeringEvents(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStrategy_Tactics(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStrategy_WeightingFunction(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeParameter_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeParameter_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeParameter_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeOverallGoal_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeOverallGoal_Objectives(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeImportDeclaration_ImportURI(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationPlan_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationPlan_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationPlan_Steps(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStartAction_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStopAction_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLoopAction_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLoopAction_Counter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLoopAction_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranchAction_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranchAction_Context(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranchAction_Condition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranchAction_ConditionTrueBranch(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranchAction_ConditionFalseBranch(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionReference_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionReference_RefersTo(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationActionOperation_AdaptationOperationDirection(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAdaptationActionOperation_AdaptationOperationScope(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeModelVariableConfigurationRange_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeModelVariableConfigurationRange_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeModelVariableConfigurationRange_MinValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeModelVariableConfigurationRange_MaxValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeModelVariableConfigurationRange_AdaptableEntity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeModelEntityConfigurationRange_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeModelEntityConfigurationRange_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeModelEntityConfigurationRange_AdaptableEntity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeModelEntityConfigurationRange_VariationPossibility(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePropertyRange_MinValueConstraint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePropertyRange_MaxValueConstraint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSetOfConfigurations_Variants(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSetOfConfigurations_ValueConstraint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeOclConstraint_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeOclConstraint_OclString(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeObjective_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeObjective_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeObjective_Specifications(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeEvent_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeEvent_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedTactic_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedTactic_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedTactic_UsedTactic(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedTactic_DefaultWeight(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedTactic_CurrentWeight(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedTactic_LastImpact(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightingFunction_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightingFunction_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightingFunction_WeightingFunctionImplementation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightingFunction_WeightedMetrics(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSpecification_MetricType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSpecification_RelationalOperator(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSpecification_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMetricType_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMetricType_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeImpact_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeImpact_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeImpact_Before(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeImpact_After(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeResult_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeResult_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeResult_Timestamp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeResult_MetricValues(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMetricValue_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMetricValue_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMetricValue_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMetricValue_MeasuredEntity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMetricValue_MetricType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMeasuredEntity_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMeasuredEntity_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMeasuredEntity_MetricTypes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedMetric_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedMetric_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedMetric_MetricType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedMetric_Weight(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+    
+	public void complete_AdaptationProcess(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_AdaptationPoint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_AbstractControlFlowElement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_VariationType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EString(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Tactic(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Action(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Strategy(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Parameter(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_OverallGoal(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ImportDeclaration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_AdaptationPlan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_StartAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_StopAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_LoopAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_BranchAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionReference(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_AdaptationActionOperation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ModelVariableConfigurationRange(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ModelEntityConfigurationRange(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EDouble(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PropertyRange(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SetOfConfigurations(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_OclConstraint(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_AdaptationScope(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_AdaptationDirection(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Objective(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Event(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_WeightedTactic(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_WeightingFunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Specification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_MetricType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_RelationalOperator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Impact(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Result(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EDate(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_MetricValue(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_MeasuredEntity(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_WeightedMetric(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/PartialStaLangContentAssistParser.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/PartialStaLangContentAssistParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..dcdc559ee16bc4041d62a68855af4cf028c83745
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/PartialStaLangContentAssistParser.java
@@ -0,0 +1,38 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.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
+ */
+@SuppressWarnings("restriction")
+public class PartialStaLangContentAssistParser extends StaLangParser 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/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/StaLangParser.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/StaLangParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..33de3678acfd4cb3eb49427464a95805f52e4f93
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/StaLangParser.java
@@ -0,0 +1,282 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.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 edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+
+public class StaLangParser extends AbstractContentAssistParser {
+	
+	@Inject
+	private StaLangGrammarAccess grammarAccess;
+	
+	private Map<AbstractElement, String> nameMappings;
+	
+	@Override
+	protected edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.internal.InternalStaLangParser createParser() {
+		edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.internal.InternalStaLangParser result = new edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.internal.InternalStaLangParser(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.getAdaptationPointAccess().getAlternatives(), "rule__AdaptationPoint__Alternatives");
+					put(grammarAccess.getAbstractControlFlowElementAccess().getAlternatives(), "rule__AbstractControlFlowElement__Alternatives");
+					put(grammarAccess.getVariationTypeAccess().getAlternatives(), "rule__VariationType__Alternatives");
+					put(grammarAccess.getEStringAccess().getAlternatives(), "rule__EString__Alternatives");
+					put(grammarAccess.getEDoubleAccess().getAlternatives_4_0(), "rule__EDouble__Alternatives_4_0");
+					put(grammarAccess.getObjectiveAccess().getAlternatives_5(), "rule__Objective__Alternatives_5");
+					put(grammarAccess.getAdaptationScopeAccess().getAlternatives(), "rule__AdaptationScope__Alternatives");
+					put(grammarAccess.getAdaptationDirectionAccess().getAlternatives(), "rule__AdaptationDirection__Alternatives");
+					put(grammarAccess.getRelationalOperatorAccess().getAlternatives(), "rule__RelationalOperator__Alternatives");
+					put(grammarAccess.getAdaptationProcessAccess().getGroup(), "rule__AdaptationProcess__Group__0");
+					put(grammarAccess.getAdaptationProcessAccess().getGroup_3(), "rule__AdaptationProcess__Group_3__0");
+					put(grammarAccess.getAdaptationProcessAccess().getGroup_5(), "rule__AdaptationProcess__Group_5__0");
+					put(grammarAccess.getAdaptationProcessAccess().getGroup_5_3(), "rule__AdaptationProcess__Group_5_3__0");
+					put(grammarAccess.getAdaptationProcessAccess().getGroup_12(), "rule__AdaptationProcess__Group_12__0");
+					put(grammarAccess.getAdaptationProcessAccess().getGroup_16(), "rule__AdaptationProcess__Group_16__0");
+					put(grammarAccess.getAdaptationProcessAccess().getGroup_20(), "rule__AdaptationProcess__Group_20__0");
+					put(grammarAccess.getTacticAccess().getGroup(), "rule__Tactic__Group__0");
+					put(grammarAccess.getTacticAccess().getGroup_2(), "rule__Tactic__Group_2__0");
+					put(grammarAccess.getTacticAccess().getGroup_6(), "rule__Tactic__Group_6__0");
+					put(grammarAccess.getTacticAccess().getGroup_6_4(), "rule__Tactic__Group_6_4__0");
+					put(grammarAccess.getTacticAccess().getGroup_7(), "rule__Tactic__Group_7__0");
+					put(grammarAccess.getActionAccess().getGroup(), "rule__Action__Group__0");
+					put(grammarAccess.getActionAccess().getGroup_2(), "rule__Action__Group_2__0");
+					put(grammarAccess.getActionAccess().getGroup_10(), "rule__Action__Group_10__0");
+					put(grammarAccess.getActionAccess().getGroup_10_4(), "rule__Action__Group_10_4__0");
+					put(grammarAccess.getActionAccess().getGroup_11(), "rule__Action__Group_11__0");
+					put(grammarAccess.getStrategyAccess().getGroup(), "rule__Strategy__Group__0");
+					put(grammarAccess.getStrategyAccess().getGroup_1(), "rule__Strategy__Group_1__0");
+					put(grammarAccess.getStrategyAccess().getGroup_13(), "rule__Strategy__Group_13__0");
+					put(grammarAccess.getParameterAccess().getGroup(), "rule__Parameter__Group__0");
+					put(grammarAccess.getParameterAccess().getGroup_2(), "rule__Parameter__Group_2__0");
+					put(grammarAccess.getParameterAccess().getGroup_4(), "rule__Parameter__Group_4__0");
+					put(grammarAccess.getParameterAccess().getGroup_4_1(), "rule__Parameter__Group_4_1__0");
+					put(grammarAccess.getOverallGoalAccess().getGroup(), "rule__OverallGoal__Group__0");
+					put(grammarAccess.getOverallGoalAccess().getGroup_6(), "rule__OverallGoal__Group_6__0");
+					put(grammarAccess.getImportDeclarationAccess().getGroup(), "rule__ImportDeclaration__Group__0");
+					put(grammarAccess.getAdaptationPlanAccess().getGroup(), "rule__AdaptationPlan__Group__0");
+					put(grammarAccess.getAdaptationPlanAccess().getGroup_1(), "rule__AdaptationPlan__Group_1__0");
+					put(grammarAccess.getAdaptationPlanAccess().getGroup_3(), "rule__AdaptationPlan__Group_3__0");
+					put(grammarAccess.getAdaptationPlanAccess().getGroup_3_2(), "rule__AdaptationPlan__Group_3_2__0");
+					put(grammarAccess.getStartActionAccess().getGroup(), "rule__StartAction__Group__0");
+					put(grammarAccess.getStartActionAccess().getGroup_2(), "rule__StartAction__Group_2__0");
+					put(grammarAccess.getStopActionAccess().getGroup(), "rule__StopAction__Group__0");
+					put(grammarAccess.getStopActionAccess().getGroup_2(), "rule__StopAction__Group_2__0");
+					put(grammarAccess.getLoopActionAccess().getGroup(), "rule__LoopAction__Group__0");
+					put(grammarAccess.getLoopActionAccess().getGroup_1(), "rule__LoopAction__Group_1__0");
+					put(grammarAccess.getBranchActionAccess().getGroup(), "rule__BranchAction__Group__0");
+					put(grammarAccess.getBranchActionAccess().getGroup_1(), "rule__BranchAction__Group_1__0");
+					put(grammarAccess.getActionReferenceAccess().getGroup(), "rule__ActionReference__Group__0");
+					put(grammarAccess.getActionReferenceAccess().getGroup_1(), "rule__ActionReference__Group_1__0");
+					put(grammarAccess.getAdaptationActionOperationAccess().getGroup(), "rule__AdaptationActionOperation__Group__0");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup(), "rule__ModelVariableConfigurationRange__Group__0");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup_1(), "rule__ModelVariableConfigurationRange__Group_1__0");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup(), "rule__ModelEntityConfigurationRange__Group__0");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_1(), "rule__ModelEntityConfigurationRange__Group_1__0");
+					put(grammarAccess.getEDoubleAccess().getGroup(), "rule__EDouble__Group__0");
+					put(grammarAccess.getEDoubleAccess().getGroup_4(), "rule__EDouble__Group_4__0");
+					put(grammarAccess.getPropertyRangeAccess().getGroup(), "rule__PropertyRange__Group__0");
+					put(grammarAccess.getSetOfConfigurationsAccess().getGroup(), "rule__SetOfConfigurations__Group__0");
+					put(grammarAccess.getSetOfConfigurationsAccess().getGroup_2(), "rule__SetOfConfigurations__Group_2__0");
+					put(grammarAccess.getSetOfConfigurationsAccess().getGroup_2_3(), "rule__SetOfConfigurations__Group_2_3__0");
+					put(grammarAccess.getOclConstraintAccess().getGroup(), "rule__OclConstraint__Group__0");
+					put(grammarAccess.getObjectiveAccess().getGroup(), "rule__Objective__Group__0");
+					put(grammarAccess.getObjectiveAccess().getGroup_1(), "rule__Objective__Group_1__0");
+					put(grammarAccess.getObjectiveAccess().getGroup_5_1(), "rule__Objective__Group_5_1__0");
+					put(grammarAccess.getObjectiveAccess().getGroup_5_1_2(), "rule__Objective__Group_5_1_2__0");
+					put(grammarAccess.getEventAccess().getGroup(), "rule__Event__Group__0");
+					put(grammarAccess.getEventAccess().getGroup_1(), "rule__Event__Group_1__0");
+					put(grammarAccess.getWeightedTacticAccess().getGroup(), "rule__WeightedTactic__Group__0");
+					put(grammarAccess.getWeightedTacticAccess().getGroup_1(), "rule__WeightedTactic__Group_1__0");
+					put(grammarAccess.getWeightedTacticAccess().getGroup_4(), "rule__WeightedTactic__Group_4__0");
+					put(grammarAccess.getWeightedTacticAccess().getGroup_7(), "rule__WeightedTactic__Group_7__0");
+					put(grammarAccess.getWeightedTacticAccess().getGroup_10(), "rule__WeightedTactic__Group_10__0");
+					put(grammarAccess.getWeightedTacticAccess().getGroup_12(), "rule__WeightedTactic__Group_12__0");
+					put(grammarAccess.getWeightedTacticAccess().getGroup_12_1(), "rule__WeightedTactic__Group_12_1__0");
+					put(grammarAccess.getWeightingFunctionAccess().getGroup(), "rule__WeightingFunction__Group__0");
+					put(grammarAccess.getWeightingFunctionAccess().getGroup_1(), "rule__WeightingFunction__Group_1__0");
+					put(grammarAccess.getWeightingFunctionAccess().getGroup_11(), "rule__WeightingFunction__Group_11__0");
+					put(grammarAccess.getSpecificationAccess().getGroup(), "rule__Specification__Group__0");
+					put(grammarAccess.getMetricTypeAccess().getGroup(), "rule__MetricType__Group__0");
+					put(grammarAccess.getMetricTypeAccess().getGroup_1(), "rule__MetricType__Group_1__0");
+					put(grammarAccess.getImpactAccess().getGroup(), "rule__Impact__Group__0");
+					put(grammarAccess.getImpactAccess().getGroup_1(), "rule__Impact__Group_1__0");
+					put(grammarAccess.getResultAccess().getGroup(), "rule__Result__Group__0");
+					put(grammarAccess.getResultAccess().getGroup_1(), "rule__Result__Group_1__0");
+					put(grammarAccess.getResultAccess().getGroup_10(), "rule__Result__Group_10__0");
+					put(grammarAccess.getMetricValueAccess().getGroup(), "rule__MetricValue__Group__0");
+					put(grammarAccess.getMetricValueAccess().getGroup_2(), "rule__MetricValue__Group_2__0");
+					put(grammarAccess.getMeasuredEntityAccess().getGroup(), "rule__MeasuredEntity__Group__0");
+					put(grammarAccess.getMeasuredEntityAccess().getGroup_2(), "rule__MeasuredEntity__Group_2__0");
+					put(grammarAccess.getMeasuredEntityAccess().getGroup_7(), "rule__MeasuredEntity__Group_7__0");
+					put(grammarAccess.getWeightedMetricAccess().getGroup(), "rule__WeightedMetric__Group__0");
+					put(grammarAccess.getWeightedMetricAccess().getGroup_2(), "rule__WeightedMetric__Group_2__0");
+					put(grammarAccess.getWeightedMetricAccess().getGroup_5(), "rule__WeightedMetric__Group_5__0");
+					put(grammarAccess.getWeightedMetricAccess().getGroup_8(), "rule__WeightedMetric__Group_8__0");
+					put(grammarAccess.getAdaptationProcessAccess().getImportDeclarationAssignment_0(), "rule__AdaptationProcess__ImportDeclarationAssignment_0");
+					put(grammarAccess.getAdaptationProcessAccess().getNameAssignment_2(), "rule__AdaptationProcess__NameAssignment_2");
+					put(grammarAccess.getAdaptationProcessAccess().getIdAssignment_3_1(), "rule__AdaptationProcess__IdAssignment_3_1");
+					put(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_2(), "rule__AdaptationProcess__ParametersAssignment_5_2");
+					put(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_3_1(), "rule__AdaptationProcess__ParametersAssignment_5_3_1");
+					put(grammarAccess.getAdaptationProcessAccess().getGoalAssignment_8(), "rule__AdaptationProcess__GoalAssignment_8");
+					put(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_11(), "rule__AdaptationProcess__ActionsAssignment_11");
+					put(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_12_1(), "rule__AdaptationProcess__ActionsAssignment_12_1");
+					put(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_15(), "rule__AdaptationProcess__TacticsAssignment_15");
+					put(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_16_1(), "rule__AdaptationProcess__TacticsAssignment_16_1");
+					put(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_19(), "rule__AdaptationProcess__StrategiesAssignment_19");
+					put(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_20_1(), "rule__AdaptationProcess__StrategiesAssignment_20_1");
+					put(grammarAccess.getTacticAccess().getNameAssignment_1(), "rule__Tactic__NameAssignment_1");
+					put(grammarAccess.getTacticAccess().getIdAssignment_2_1(), "rule__Tactic__IdAssignment_2_1");
+					put(grammarAccess.getTacticAccess().getImplementedPlanAssignment_5(), "rule__Tactic__ImplementedPlanAssignment_5");
+					put(grammarAccess.getTacticAccess().getInputParamsAssignment_6_3(), "rule__Tactic__InputParamsAssignment_6_3");
+					put(grammarAccess.getTacticAccess().getInputParamsAssignment_6_4_1(), "rule__Tactic__InputParamsAssignment_6_4_1");
+					put(grammarAccess.getTacticAccess().getOutputParamAssignment_7_2(), "rule__Tactic__OutputParamAssignment_7_2");
+					put(grammarAccess.getActionAccess().getNameAssignment_1(), "rule__Action__NameAssignment_1");
+					put(grammarAccess.getActionAccess().getIdAssignment_2_1(), "rule__Action__IdAssignment_2_1");
+					put(grammarAccess.getActionAccess().getAdaptationActionOperationAssignment_6(), "rule__Action__AdaptationActionOperationAssignment_6");
+					put(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_9(), "rule__Action__ReferredAdaptationPointAssignment_9");
+					put(grammarAccess.getActionAccess().getInputParamsAssignment_10_3(), "rule__Action__InputParamsAssignment_10_3");
+					put(grammarAccess.getActionAccess().getInputParamsAssignment_10_4_1(), "rule__Action__InputParamsAssignment_10_4_1");
+					put(grammarAccess.getActionAccess().getOutputParamAssignment_11_2(), "rule__Action__OutputParamAssignment_11_2");
+					put(grammarAccess.getStrategyAccess().getNameAssignment_0(), "rule__Strategy__NameAssignment_0");
+					put(grammarAccess.getStrategyAccess().getIdAssignment_1_1(), "rule__Strategy__IdAssignment_1_1");
+					put(grammarAccess.getStrategyAccess().getObjectiveAssignment_5(), "rule__Strategy__ObjectiveAssignment_5");
+					put(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_8(), "rule__Strategy__TriggeringEventsAssignment_8");
+					put(grammarAccess.getStrategyAccess().getTacticsAssignment_12(), "rule__Strategy__TacticsAssignment_12");
+					put(grammarAccess.getStrategyAccess().getTacticsAssignment_13_1(), "rule__Strategy__TacticsAssignment_13_1");
+					put(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_16(), "rule__Strategy__WeightingFunctionAssignment_16");
+					put(grammarAccess.getParameterAccess().getNameAssignment_0(), "rule__Parameter__NameAssignment_0");
+					put(grammarAccess.getParameterAccess().getTypeAssignment_3(), "rule__Parameter__TypeAssignment_3");
+					put(grammarAccess.getParameterAccess().getValueAssignment_4_2(), "rule__Parameter__ValueAssignment_4_2");
+					put(grammarAccess.getOverallGoalAccess().getDescriptionAssignment_1(), "rule__OverallGoal__DescriptionAssignment_1");
+					put(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_5(), "rule__OverallGoal__ObjectivesAssignment_5");
+					put(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_6_1(), "rule__OverallGoal__ObjectivesAssignment_6_1");
+					put(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1(), "rule__ImportDeclaration__ImportURIAssignment_1");
+					put(grammarAccess.getAdaptationPlanAccess().getNameAssignment_0(), "rule__AdaptationPlan__NameAssignment_0");
+					put(grammarAccess.getAdaptationPlanAccess().getIdAssignment_1_1(), "rule__AdaptationPlan__IdAssignment_1_1");
+					put(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_1(), "rule__AdaptationPlan__StepsAssignment_3_1");
+					put(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_2_1(), "rule__AdaptationPlan__StepsAssignment_3_2_1");
+					put(grammarAccess.getStartActionAccess().getIdAssignment_2_1(), "rule__StartAction__IdAssignment_2_1");
+					put(grammarAccess.getStopActionAccess().getIdAssignment_2_1(), "rule__StopAction__IdAssignment_2_1");
+					put(grammarAccess.getLoopActionAccess().getIdAssignment_1_1(), "rule__LoopAction__IdAssignment_1_1");
+					put(grammarAccess.getLoopActionAccess().getCounterAssignment_5(), "rule__LoopAction__CounterAssignment_5");
+					put(grammarAccess.getLoopActionAccess().getBodyAssignment_7(), "rule__LoopAction__BodyAssignment_7");
+					put(grammarAccess.getBranchActionAccess().getIdAssignment_1_1(), "rule__BranchAction__IdAssignment_1_1");
+					put(grammarAccess.getBranchActionAccess().getContextAssignment_6(), "rule__BranchAction__ContextAssignment_6");
+					put(grammarAccess.getBranchActionAccess().getConditionAssignment_10(), "rule__BranchAction__ConditionAssignment_10");
+					put(grammarAccess.getBranchActionAccess().getConditionTrueBranchAssignment_14(), "rule__BranchAction__ConditionTrueBranchAssignment_14");
+					put(grammarAccess.getBranchActionAccess().getConditionFalseBranchAssignment_18(), "rule__BranchAction__ConditionFalseBranchAssignment_18");
+					put(grammarAccess.getActionReferenceAccess().getIdAssignment_1_1(), "rule__ActionReference__IdAssignment_1_1");
+					put(grammarAccess.getActionReferenceAccess().getRefersToAssignment_4(), "rule__ActionReference__RefersToAssignment_4");
+					put(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAssignment_1(), "rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1");
+					put(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAssignment_3(), "rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1_1(), "rule__ModelVariableConfigurationRange__IdAssignment_1_1");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getNameAssignment_4(), "rule__ModelVariableConfigurationRange__NameAssignment_4");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_6(), "rule__ModelVariableConfigurationRange__MinValueAssignment_6");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_8(), "rule__ModelVariableConfigurationRange__MaxValueAssignment_8");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_10(), "rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1_1(), "rule__ModelEntityConfigurationRange__IdAssignment_1_1");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getNameAssignment_4(), "rule__ModelEntityConfigurationRange__NameAssignment_4");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityAssignment_6(), "rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_8(), "rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8");
+					put(grammarAccess.getPropertyRangeAccess().getMinValueConstraintAssignment_3(), "rule__PropertyRange__MinValueConstraintAssignment_3");
+					put(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintAssignment_5(), "rule__PropertyRange__MaxValueConstraintAssignment_5");
+					put(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_2(), "rule__SetOfConfigurations__VariantsAssignment_2_2");
+					put(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_3_1(), "rule__SetOfConfigurations__VariantsAssignment_2_3_1");
+					put(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_4(), "rule__SetOfConfigurations__ValueConstraintAssignment_4");
+					put(grammarAccess.getOclConstraintAccess().getNameAssignment_1(), "rule__OclConstraint__NameAssignment_1");
+					put(grammarAccess.getOclConstraintAccess().getOclStringAssignment_4(), "rule__OclConstraint__OclStringAssignment_4");
+					put(grammarAccess.getObjectiveAccess().getNameAssignment_0(), "rule__Objective__NameAssignment_0");
+					put(grammarAccess.getObjectiveAccess().getIdAssignment_1_1(), "rule__Objective__IdAssignment_1_1");
+					put(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_0(), "rule__Objective__SpecificationsAssignment_5_0");
+					put(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_1(), "rule__Objective__SpecificationsAssignment_5_1_1");
+					put(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_2_1(), "rule__Objective__SpecificationsAssignment_5_1_2_1");
+					put(grammarAccess.getEventAccess().getNameAssignment_0(), "rule__Event__NameAssignment_0");
+					put(grammarAccess.getEventAccess().getIdAssignment_1_1(), "rule__Event__IdAssignment_1_1");
+					put(grammarAccess.getWeightedTacticAccess().getNameAssignment_0(), "rule__WeightedTactic__NameAssignment_0");
+					put(grammarAccess.getWeightedTacticAccess().getIdAssignment_1_1(), "rule__WeightedTactic__IdAssignment_1_1");
+					put(grammarAccess.getWeightedTacticAccess().getUsedTacticAssignment_5(), "rule__WeightedTactic__UsedTacticAssignment_5");
+					put(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_8(), "rule__WeightedTactic__DefaultWeightAssignment_8");
+					put(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_11(), "rule__WeightedTactic__CurrentWeightAssignment_11");
+					put(grammarAccess.getWeightedTacticAccess().getLastImpactAssignment_12_2(), "rule__WeightedTactic__LastImpactAssignment_12_2");
+					put(grammarAccess.getWeightingFunctionAccess().getNameAssignment_0(), "rule__WeightingFunction__NameAssignment_0");
+					put(grammarAccess.getWeightingFunctionAccess().getIdAssignment_1_1(), "rule__WeightingFunction__IdAssignment_1_1");
+					put(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationAssignment_6(), "rule__WeightingFunction__WeightingFunctionImplementationAssignment_6");
+					put(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_10(), "rule__WeightingFunction__WeightedMetricsAssignment_10");
+					put(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_11_1(), "rule__WeightingFunction__WeightedMetricsAssignment_11_1");
+					put(grammarAccess.getSpecificationAccess().getMetricTypeAssignment_3(), "rule__Specification__MetricTypeAssignment_3");
+					put(grammarAccess.getSpecificationAccess().getRelationalOperatorAssignment_6(), "rule__Specification__RelationalOperatorAssignment_6");
+					put(grammarAccess.getSpecificationAccess().getValueAssignment_9(), "rule__Specification__ValueAssignment_9");
+					put(grammarAccess.getMetricTypeAccess().getIdAssignment_1_1(), "rule__MetricType__IdAssignment_1_1");
+					put(grammarAccess.getMetricTypeAccess().getNameAssignment_4(), "rule__MetricType__NameAssignment_4");
+					put(grammarAccess.getImpactAccess().getIdAssignment_1_1(), "rule__Impact__IdAssignment_1_1");
+					put(grammarAccess.getImpactAccess().getNameAssignment_4(), "rule__Impact__NameAssignment_4");
+					put(grammarAccess.getImpactAccess().getBeforeAssignment_6(), "rule__Impact__BeforeAssignment_6");
+					put(grammarAccess.getImpactAccess().getAfterAssignment_8(), "rule__Impact__AfterAssignment_8");
+					put(grammarAccess.getResultAccess().getIdAssignment_1_1(), "rule__Result__IdAssignment_1_1");
+					put(grammarAccess.getResultAccess().getNameAssignment_4(), "rule__Result__NameAssignment_4");
+					put(grammarAccess.getResultAccess().getTimestampAssignment_6(), "rule__Result__TimestampAssignment_6");
+					put(grammarAccess.getResultAccess().getMetricValuesAssignment_9(), "rule__Result__MetricValuesAssignment_9");
+					put(grammarAccess.getResultAccess().getMetricValuesAssignment_10_1(), "rule__Result__MetricValuesAssignment_10_1");
+					put(grammarAccess.getMetricValueAccess().getNameAssignment_1(), "rule__MetricValue__NameAssignment_1");
+					put(grammarAccess.getMetricValueAccess().getIdAssignment_2_1(), "rule__MetricValue__IdAssignment_2_1");
+					put(grammarAccess.getMetricValueAccess().getValueAssignment_5(), "rule__MetricValue__ValueAssignment_5");
+					put(grammarAccess.getMetricValueAccess().getMeasuredEntityAssignment_7(), "rule__MetricValue__MeasuredEntityAssignment_7");
+					put(grammarAccess.getMetricValueAccess().getMetricTypeAssignment_9(), "rule__MetricValue__MetricTypeAssignment_9");
+					put(grammarAccess.getMeasuredEntityAccess().getNameAssignment_1(), "rule__MeasuredEntity__NameAssignment_1");
+					put(grammarAccess.getMeasuredEntityAccess().getIdAssignment_2_1(), "rule__MeasuredEntity__IdAssignment_2_1");
+					put(grammarAccess.getMeasuredEntityAccess().getMetricTypesAssignment_6(), "rule__MeasuredEntity__MetricTypesAssignment_6");
+					put(grammarAccess.getMeasuredEntityAccess().getMetricTypesAssignment_7_1(), "rule__MeasuredEntity__MetricTypesAssignment_7_1");
+					put(grammarAccess.getWeightedMetricAccess().getNameAssignment_1(), "rule__WeightedMetric__NameAssignment_1");
+					put(grammarAccess.getWeightedMetricAccess().getIdAssignment_2_1(), "rule__WeightedMetric__IdAssignment_2_1");
+					put(grammarAccess.getWeightedMetricAccess().getMetricTypeAssignment_6(), "rule__WeightedMetric__MetricTypeAssignment_6");
+					put(grammarAccess.getWeightedMetricAccess().getWeightAssignment_9(), "rule__WeightedMetric__WeightAssignment_9");
+				}
+			};
+		}
+		return nameMappings.get(element);
+	}
+	
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		try {
+			edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.internal.InternalStaLangParser typedParser = (edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.antlr.internal.InternalStaLangParser) parser;
+			typedParser.entryRuleAdaptationProcess();
+			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 StaLangGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(StaLangGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g
new file mode 100644
index 0000000000000000000000000000000000000000..b829ea5cecd42c0ea5d8ccc69aa967427563ea37
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g
@@ -0,0 +1,15206 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStaLang;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	
+}
+
+@lexer::header {
+package edu.kit.ipd.descartes.mm.adaptation.sta.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 edu.kit.ipd.descartes.mm.adaptation.sta.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 edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+
+}
+
+@parser::members {
+ 
+ 	private StaLangGrammarAccess grammarAccess;
+ 	
+    public void setGrammarAccess(StaLangGrammarAccess grammarAccess) {
+    	this.grammarAccess = grammarAccess;
+    }
+    
+    @Override
+    protected Grammar getGrammar() {
+    	return grammarAccess.getGrammar();
+    }
+    
+    @Override
+    protected String getValueForTokenName(String tokenName) {
+    	return tokenName;
+    }
+
+}
+
+
+
+
+// Entry rule entryRuleAdaptationProcess
+entryRuleAdaptationProcess 
+:
+{ before(grammarAccess.getAdaptationProcessRule()); }
+	 ruleAdaptationProcess
+{ after(grammarAccess.getAdaptationProcessRule()); } 
+	 EOF 
+;
+
+// Rule AdaptationProcess
+ruleAdaptationProcess
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup()); }
+(rule__AdaptationProcess__Group__0)
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleAbstractControlFlowElement
+entryRuleAbstractControlFlowElement 
+:
+{ before(grammarAccess.getAbstractControlFlowElementRule()); }
+	 ruleAbstractControlFlowElement
+{ after(grammarAccess.getAbstractControlFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule AbstractControlFlowElement
+ruleAbstractControlFlowElement
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getAlternatives()); }
+(rule__AbstractControlFlowElement__Alternatives)
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVariationType
+entryRuleVariationType 
+:
+{ before(grammarAccess.getVariationTypeRule()); }
+	 ruleVariationType
+{ after(grammarAccess.getVariationTypeRule()); } 
+	 EOF 
+;
+
+// Rule VariationType
+ruleVariationType
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVariationTypeAccess().getAlternatives()); }
+(rule__VariationType__Alternatives)
+{ after(grammarAccess.getVariationTypeAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEString
+entryRuleEString 
+:
+{ before(grammarAccess.getEStringRule()); }
+	 ruleEString
+{ after(grammarAccess.getEStringRule()); } 
+	 EOF 
+;
+
+// Rule EString
+ruleEString
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEStringAccess().getAlternatives()); }
+(rule__EString__Alternatives)
+{ after(grammarAccess.getEStringAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTactic
+entryRuleTactic 
+:
+{ before(grammarAccess.getTacticRule()); }
+	 ruleTactic
+{ after(grammarAccess.getTacticRule()); } 
+	 EOF 
+;
+
+// Rule Tactic
+ruleTactic
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTacticAccess().getGroup()); }
+(rule__Tactic__Group__0)
+{ after(grammarAccess.getTacticAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleAction
+entryRuleAction 
+:
+{ before(grammarAccess.getActionRule()); }
+	 ruleAction
+{ after(grammarAccess.getActionRule()); } 
+	 EOF 
+;
+
+// Rule Action
+ruleAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionAccess().getGroup()); }
+(rule__Action__Group__0)
+{ after(grammarAccess.getActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStrategy
+entryRuleStrategy 
+:
+{ before(grammarAccess.getStrategyRule()); }
+	 ruleStrategy
+{ after(grammarAccess.getStrategyRule()); } 
+	 EOF 
+;
+
+// Rule Strategy
+ruleStrategy
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStrategyAccess().getGroup()); }
+(rule__Strategy__Group__0)
+{ after(grammarAccess.getStrategyAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleParameter
+entryRuleParameter 
+:
+{ before(grammarAccess.getParameterRule()); }
+	 ruleParameter
+{ after(grammarAccess.getParameterRule()); } 
+	 EOF 
+;
+
+// Rule Parameter
+ruleParameter
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getParameterAccess().getGroup()); }
+(rule__Parameter__Group__0)
+{ after(grammarAccess.getParameterAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOverallGoal
+entryRuleOverallGoal 
+:
+{ before(grammarAccess.getOverallGoalRule()); }
+	 ruleOverallGoal
+{ after(grammarAccess.getOverallGoalRule()); } 
+	 EOF 
+;
+
+// Rule OverallGoal
+ruleOverallGoal
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOverallGoalAccess().getGroup()); }
+(rule__OverallGoal__Group__0)
+{ after(grammarAccess.getOverallGoalAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleImportDeclaration
+entryRuleImportDeclaration 
+:
+{ before(grammarAccess.getImportDeclarationRule()); }
+	 ruleImportDeclaration
+{ after(grammarAccess.getImportDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule ImportDeclaration
+ruleImportDeclaration
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getImportDeclarationAccess().getGroup()); }
+(rule__ImportDeclaration__Group__0)
+{ after(grammarAccess.getImportDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleAdaptationPlan
+entryRuleAdaptationPlan 
+:
+{ before(grammarAccess.getAdaptationPlanRule()); }
+	 ruleAdaptationPlan
+{ after(grammarAccess.getAdaptationPlanRule()); } 
+	 EOF 
+;
+
+// Rule AdaptationPlan
+ruleAdaptationPlan
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup()); }
+(rule__AdaptationPlan__Group__0)
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStartAction
+entryRuleStartAction 
+:
+{ before(grammarAccess.getStartActionRule()); }
+	 ruleStartAction
+{ after(grammarAccess.getStartActionRule()); } 
+	 EOF 
+;
+
+// Rule StartAction
+ruleStartAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStartActionAccess().getGroup()); }
+(rule__StartAction__Group__0)
+{ after(grammarAccess.getStartActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStopAction
+entryRuleStopAction 
+:
+{ before(grammarAccess.getStopActionRule()); }
+	 ruleStopAction
+{ after(grammarAccess.getStopActionRule()); } 
+	 EOF 
+;
+
+// Rule StopAction
+ruleStopAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStopActionAccess().getGroup()); }
+(rule__StopAction__Group__0)
+{ after(grammarAccess.getStopActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLoopAction
+entryRuleLoopAction 
+:
+{ before(grammarAccess.getLoopActionRule()); }
+	 ruleLoopAction
+{ after(grammarAccess.getLoopActionRule()); } 
+	 EOF 
+;
+
+// Rule LoopAction
+ruleLoopAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLoopActionAccess().getGroup()); }
+(rule__LoopAction__Group__0)
+{ after(grammarAccess.getLoopActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleBranchAction
+entryRuleBranchAction 
+:
+{ before(grammarAccess.getBranchActionRule()); }
+	 ruleBranchAction
+{ after(grammarAccess.getBranchActionRule()); } 
+	 EOF 
+;
+
+// Rule BranchAction
+ruleBranchAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getBranchActionAccess().getGroup()); }
+(rule__BranchAction__Group__0)
+{ after(grammarAccess.getBranchActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionReference
+entryRuleActionReference 
+:
+{ before(grammarAccess.getActionReferenceRule()); }
+	 ruleActionReference
+{ after(grammarAccess.getActionReferenceRule()); } 
+	 EOF 
+;
+
+// Rule ActionReference
+ruleActionReference
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionReferenceAccess().getGroup()); }
+(rule__ActionReference__Group__0)
+{ after(grammarAccess.getActionReferenceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleAdaptationActionOperation
+entryRuleAdaptationActionOperation 
+:
+{ before(grammarAccess.getAdaptationActionOperationRule()); }
+	 ruleAdaptationActionOperation
+{ after(grammarAccess.getAdaptationActionOperationRule()); } 
+	 EOF 
+;
+
+// Rule AdaptationActionOperation
+ruleAdaptationActionOperation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getGroup()); }
+(rule__AdaptationActionOperation__Group__0)
+{ after(grammarAccess.getAdaptationActionOperationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleModelVariableConfigurationRange
+entryRuleModelVariableConfigurationRange 
+:
+{ before(grammarAccess.getModelVariableConfigurationRangeRule()); }
+	 ruleModelVariableConfigurationRange
+{ after(grammarAccess.getModelVariableConfigurationRangeRule()); } 
+	 EOF 
+;
+
+// Rule ModelVariableConfigurationRange
+ruleModelVariableConfigurationRange
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup()); }
+(rule__ModelVariableConfigurationRange__Group__0)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleModelEntityConfigurationRange
+entryRuleModelEntityConfigurationRange 
+:
+{ before(grammarAccess.getModelEntityConfigurationRangeRule()); }
+	 ruleModelEntityConfigurationRange
+{ after(grammarAccess.getModelEntityConfigurationRangeRule()); } 
+	 EOF 
+;
+
+// Rule ModelEntityConfigurationRange
+ruleModelEntityConfigurationRange
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup()); }
+(rule__ModelEntityConfigurationRange__Group__0)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEDouble
+entryRuleEDouble 
+:
+{ before(grammarAccess.getEDoubleRule()); }
+	 ruleEDouble
+{ after(grammarAccess.getEDoubleRule()); } 
+	 EOF 
+;
+
+// Rule EDouble
+ruleEDouble
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEDoubleAccess().getGroup()); }
+(rule__EDouble__Group__0)
+{ after(grammarAccess.getEDoubleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePropertyRange
+entryRulePropertyRange 
+:
+{ before(grammarAccess.getPropertyRangeRule()); }
+	 rulePropertyRange
+{ after(grammarAccess.getPropertyRangeRule()); } 
+	 EOF 
+;
+
+// Rule PropertyRange
+rulePropertyRange
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getGroup()); }
+(rule__PropertyRange__Group__0)
+{ after(grammarAccess.getPropertyRangeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSetOfConfigurations
+entryRuleSetOfConfigurations 
+:
+{ before(grammarAccess.getSetOfConfigurationsRule()); }
+	 ruleSetOfConfigurations
+{ after(grammarAccess.getSetOfConfigurationsRule()); } 
+	 EOF 
+;
+
+// Rule SetOfConfigurations
+ruleSetOfConfigurations
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getGroup()); }
+(rule__SetOfConfigurations__Group__0)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOclConstraint
+entryRuleOclConstraint 
+:
+{ before(grammarAccess.getOclConstraintRule()); }
+	 ruleOclConstraint
+{ after(grammarAccess.getOclConstraintRule()); } 
+	 EOF 
+;
+
+// Rule OclConstraint
+ruleOclConstraint
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOclConstraintAccess().getGroup()); }
+(rule__OclConstraint__Group__0)
+{ after(grammarAccess.getOclConstraintAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleObjective
+entryRuleObjective 
+:
+{ before(grammarAccess.getObjectiveRule()); }
+	 ruleObjective
+{ after(grammarAccess.getObjectiveRule()); } 
+	 EOF 
+;
+
+// Rule Objective
+ruleObjective
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getObjectiveAccess().getGroup()); }
+(rule__Objective__Group__0)
+{ after(grammarAccess.getObjectiveAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent 
+:
+{ before(grammarAccess.getEventRule()); }
+	 ruleEvent
+{ after(grammarAccess.getEventRule()); } 
+	 EOF 
+;
+
+// Rule Event
+ruleEvent
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEventAccess().getGroup()); }
+(rule__Event__Group__0)
+{ after(grammarAccess.getEventAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWeightedTactic
+entryRuleWeightedTactic 
+:
+{ before(grammarAccess.getWeightedTacticRule()); }
+	 ruleWeightedTactic
+{ after(grammarAccess.getWeightedTacticRule()); } 
+	 EOF 
+;
+
+// Rule WeightedTactic
+ruleWeightedTactic
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup()); }
+(rule__WeightedTactic__Group__0)
+{ after(grammarAccess.getWeightedTacticAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWeightingFunction
+entryRuleWeightingFunction 
+:
+{ before(grammarAccess.getWeightingFunctionRule()); }
+	 ruleWeightingFunction
+{ after(grammarAccess.getWeightingFunctionRule()); } 
+	 EOF 
+;
+
+// Rule WeightingFunction
+ruleWeightingFunction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getGroup()); }
+(rule__WeightingFunction__Group__0)
+{ after(grammarAccess.getWeightingFunctionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSpecification
+entryRuleSpecification 
+:
+{ before(grammarAccess.getSpecificationRule()); }
+	 ruleSpecification
+{ after(grammarAccess.getSpecificationRule()); } 
+	 EOF 
+;
+
+// Rule Specification
+ruleSpecification
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSpecificationAccess().getGroup()); }
+(rule__Specification__Group__0)
+{ after(grammarAccess.getSpecificationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+// Entry rule entryRuleEDate
+entryRuleEDate 
+:
+{ before(grammarAccess.getEDateRule()); }
+	 ruleEDate
+{ after(grammarAccess.getEDateRule()); } 
+	 EOF 
+;
+
+// Rule EDate
+ruleEDate
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEDateAccess().getEDateKeyword()); }
+
+	'EDate' 
+
+{ after(grammarAccess.getEDateAccess().getEDateKeyword()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleMetricValue
+entryRuleMetricValue 
+:
+{ before(grammarAccess.getMetricValueRule()); }
+	 ruleMetricValue
+{ after(grammarAccess.getMetricValueRule()); } 
+	 EOF 
+;
+
+// Rule MetricValue
+ruleMetricValue
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getMetricValueAccess().getGroup()); }
+(rule__MetricValue__Group__0)
+{ after(grammarAccess.getMetricValueAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleWeightedMetric
+entryRuleWeightedMetric 
+:
+{ before(grammarAccess.getWeightedMetricRule()); }
+	 ruleWeightedMetric
+{ after(grammarAccess.getWeightedMetricRule()); } 
+	 EOF 
+;
+
+// Rule WeightedMetric
+ruleWeightedMetric
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getGroup()); }
+(rule__WeightedMetric__Group__0)
+{ after(grammarAccess.getWeightedMetricAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+// Rule AdaptationScope
+ruleAdaptationScope
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationScopeAccess().getAlternatives()); }
+(rule__AdaptationScope__Alternatives)
+{ after(grammarAccess.getAdaptationScopeAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule AdaptationDirection
+ruleAdaptationDirection
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationDirectionAccess().getAlternatives()); }
+(rule__AdaptationDirection__Alternatives)
+{ after(grammarAccess.getAdaptationDirectionAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule RelationalOperator
+ruleRelationalOperator
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRelationalOperatorAccess().getAlternatives()); }
+(rule__RelationalOperator__Alternatives)
+{ after(grammarAccess.getRelationalOperatorAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__AbstractControlFlowElement__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getStartActionParserRuleCall_0()); }
+	ruleStartAction
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getStartActionParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getStopActionParserRuleCall_1()); }
+	ruleStopAction
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getStopActionParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getLoopActionParserRuleCall_2()); }
+	ruleLoopAction
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getLoopActionParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getBranchActionParserRuleCall_3()); }
+	ruleBranchAction
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getBranchActionParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); }
+	ruleActionReference
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariationType__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); }
+	rulePropertyRange
+{ after(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); }
+	ruleSetOfConfigurations
+{ after(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EString__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); }
+	RULE_STRING
+{ after(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); }
+	RULE_ID
+{ after(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Alternatives_4_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); }
+
+	'E' 
+
+{ after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); }
+
+	'e' 
+
+{ after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Alternatives_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_0()); }
+(rule__Objective__SpecificationsAssignment_5_0)
+{ after(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_0()); }
+)
+
+    |(
+{ before(grammarAccess.getObjectiveAccess().getGroup_5_1()); }
+(rule__Objective__Group_5_1__0)
+{ after(grammarAccess.getObjectiveAccess().getGroup_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationScope__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0()); }
+(	'NOT_SET' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1()); }
+(	'THIS' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2()); }
+(	'LEAST_UTILIZED_FIRST' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3()); }
+(	'MOST_UTILIZED_FIRST' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4()); }
+(	'RANDOM' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5()); }
+(	'ALL' 
+)
+{ after(grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationDirection__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0()); }
+(	'NOT_SET' 
+)
+{ after(grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1()); }
+(	'INCREASE' 
+)
+{ after(grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2()); }
+(	'DECREASE' 
+)
+{ after(grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3()); }
+(	'MIGRATE' 
+)
+{ after(grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RelationalOperator__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0()); }
+(	'==' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1()); }
+(	'!=' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2()); }
+(	'>' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3()); }
+(	'>=' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4()); }
+(	'<' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5()); }
+(	'<=' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6()); }
+(	'EQUAL' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7()); }
+(	'NOT_EQUAL' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8()); }
+(	'GREATER' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9()); }
+(	'GREATER_EQUAL' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10()); }
+(	'LESS' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10()); }
+)
+
+    |(
+{ before(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11()); }
+(	'LESS_EQUAL' 
+)
+{ after(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__AdaptationProcess__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__0__Impl
+	rule__AdaptationProcess__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getImportDeclarationAssignment_0()); }
+(rule__AdaptationProcess__ImportDeclarationAssignment_0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getImportDeclarationAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__1__Impl
+	rule__AdaptationProcess__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getAdaptationProcessKeyword_1()); }
+
+	'AdaptationProcess' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getAdaptationProcessKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__2__Impl
+	rule__AdaptationProcess__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getNameAssignment_2()); }
+(rule__AdaptationProcess__NameAssignment_2)
+{ after(grammarAccess.getAdaptationProcessAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__3__Impl
+	rule__AdaptationProcess__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_3()); }
+(rule__AdaptationProcess__Group_3__0)?
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__4__Impl
+	rule__AdaptationProcess__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getLeftCurlyBracketKeyword_4()); }
+
+	'{' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getLeftCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__5__Impl
+	rule__AdaptationProcess__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_5()); }
+(rule__AdaptationProcess__Group_5__0)?
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__6__Impl
+	rule__AdaptationProcess__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGoalKeyword_6()); }
+
+	'goal' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getGoalKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__7__Impl
+	rule__AdaptationProcess__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_7()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__8__Impl
+	rule__AdaptationProcess__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGoalAssignment_8()); }
+(rule__AdaptationProcess__GoalAssignment_8)
+{ after(grammarAccess.getAdaptationProcessAccess().getGoalAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__9__Impl
+	rule__AdaptationProcess__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsKeyword_9()); }
+
+	'actions' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getActionsKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__10__Impl
+	rule__AdaptationProcess__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_10()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__11__Impl
+	rule__AdaptationProcess__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_11()); }
+(rule__AdaptationProcess__ActionsAssignment_11)
+{ after(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__12__Impl
+	rule__AdaptationProcess__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_12()); }
+(rule__AdaptationProcess__Group_12__0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__13__Impl
+	rule__AdaptationProcess__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsKeyword_13()); }
+
+	'tactics' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getTacticsKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__14__Impl
+	rule__AdaptationProcess__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_14()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__15__Impl
+	rule__AdaptationProcess__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_15()); }
+(rule__AdaptationProcess__TacticsAssignment_15)
+{ after(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__16__Impl
+	rule__AdaptationProcess__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_16()); }
+(rule__AdaptationProcess__Group_16__0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__17__Impl
+	rule__AdaptationProcess__Group__18
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesKeyword_17()); }
+
+	'strategies' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesKeyword_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__18__Impl
+	rule__AdaptationProcess__Group__19
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__18__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_18()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_18()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__19
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__19__Impl
+	rule__AdaptationProcess__Group__20
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__19__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_19()); }
+(rule__AdaptationProcess__StrategiesAssignment_19)
+{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_19()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__20
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__20__Impl
+	rule__AdaptationProcess__Group__21
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__20__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_20()); }
+(rule__AdaptationProcess__Group_20__0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_20()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group__21
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group__21__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group__21__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getRightCurlyBracketKeyword_21()); }
+
+	'}' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getRightCurlyBracketKeyword_21()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationProcess__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_3__0__Impl
+	rule__AdaptationProcess__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getIdKeyword_3_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getIdKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_3__1__Impl
+	rule__AdaptationProcess__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getIdAssignment_3_1()); }
+(rule__AdaptationProcess__IdAssignment_3_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getIdAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getRightSquareBracketKeyword_3_2()); }
+
+	']' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getRightSquareBracketKeyword_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__AdaptationProcess__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5__0__Impl
+	rule__AdaptationProcess__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersKeyword_5_0()); }
+
+	'parameters' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getParametersKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5__1__Impl
+	rule__AdaptationProcess__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_5_1()); }
+
+	':' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5__2__Impl
+	rule__AdaptationProcess__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_2()); }
+(rule__AdaptationProcess__ParametersAssignment_5_2)
+{ after(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGroup_5_3()); }
+(rule__AdaptationProcess__Group_5_3__0)*
+{ after(grammarAccess.getAdaptationProcessAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationProcess__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5_3__0__Impl
+	rule__AdaptationProcess__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_3_1()); }
+(rule__AdaptationProcess__ParametersAssignment_5_3_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__AdaptationProcess__Group_12__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_12__0__Impl
+	rule__AdaptationProcess__Group_12__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_12__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_12_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_12__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_12__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_12__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_12_1()); }
+(rule__AdaptationProcess__ActionsAssignment_12_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_12_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__AdaptationProcess__Group_16__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_16__0__Impl
+	rule__AdaptationProcess__Group_16__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_16__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_16_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_16_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_16__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_16__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_16__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_16_1()); }
+(rule__AdaptationProcess__TacticsAssignment_16_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_16_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__AdaptationProcess__Group_20__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_20__0__Impl
+	rule__AdaptationProcess__Group_20__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_20__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_20_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_20_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationProcess__Group_20__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationProcess__Group_20__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__Group_20__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_20_1()); }
+(rule__AdaptationProcess__StrategiesAssignment_20_1)
+{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_20_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Tactic__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__0__Impl
+	rule__Tactic__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getTacticKeyword_0()); }
+(
+	'Tactic' 
+)?
+{ after(grammarAccess.getTacticAccess().getTacticKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__1__Impl
+	rule__Tactic__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getNameAssignment_1()); }
+(rule__Tactic__NameAssignment_1)
+{ after(grammarAccess.getTacticAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__2__Impl
+	rule__Tactic__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getGroup_2()); }
+(rule__Tactic__Group_2__0)?
+{ after(grammarAccess.getTacticAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__3__Impl
+	rule__Tactic__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__4__Impl
+	rule__Tactic__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getImplementedPlanKeyword_4()); }
+
+	'implementedPlan' 
+
+{ after(grammarAccess.getTacticAccess().getImplementedPlanKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__5__Impl
+	rule__Tactic__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getImplementedPlanAssignment_5()); }
+(rule__Tactic__ImplementedPlanAssignment_5)
+{ after(grammarAccess.getTacticAccess().getImplementedPlanAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__6__Impl
+	rule__Tactic__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getGroup_6()); }
+(rule__Tactic__Group_6__0)?
+{ after(grammarAccess.getTacticAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__7__Impl
+	rule__Tactic__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getGroup_7()); }
+(rule__Tactic__Group_7__0)?
+{ after(grammarAccess.getTacticAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Tactic__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_2__0__Impl
+	rule__Tactic__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getTacticAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_2__1__Impl
+	rule__Tactic__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getIdAssignment_2_1()); }
+(rule__Tactic__IdAssignment_2_1)
+{ after(grammarAccess.getTacticAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getTacticAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Tactic__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__0__Impl
+	rule__Tactic__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputKeyword_6_0()); }
+
+	'input' 
+
+{ after(grammarAccess.getTacticAccess().getInputKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__1__Impl
+	rule__Tactic__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getEqualsSignKeyword_6_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getTacticAccess().getEqualsSignKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__2__Impl
+	rule__Tactic__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_6_2()); }
+
+	'(' 
+
+{ after(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__3__Impl
+	rule__Tactic__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsAssignment_6_3()); }
+(rule__Tactic__InputParamsAssignment_6_3)
+{ after(grammarAccess.getTacticAccess().getInputParamsAssignment_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__4__Impl
+	rule__Tactic__Group_6__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getGroup_6_4()); }
+(rule__Tactic__Group_6_4__0)*
+{ after(grammarAccess.getTacticAccess().getGroup_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getRightParenthesisKeyword_6_5()); }
+
+	')' 
+
+{ after(grammarAccess.getTacticAccess().getRightParenthesisKeyword_6_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Tactic__Group_6_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6_4__0__Impl
+	rule__Tactic__Group_6_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getCommaKeyword_6_4_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTacticAccess().getCommaKeyword_6_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsAssignment_6_4_1()); }
+(rule__Tactic__InputParamsAssignment_6_4_1)
+{ after(grammarAccess.getTacticAccess().getInputParamsAssignment_6_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Tactic__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_7__0__Impl
+	rule__Tactic__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getOutputKeyword_7_0()); }
+
+	'output' 
+
+{ after(grammarAccess.getTacticAccess().getOutputKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_7__1__Impl
+	rule__Tactic__Group_7__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getEqualsSignKeyword_7_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getTacticAccess().getEqualsSignKeyword_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_7__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_7__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_7__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getOutputParamAssignment_7_2()); }
+(rule__Tactic__OutputParamAssignment_7_2)
+{ after(grammarAccess.getTacticAccess().getOutputParamAssignment_7_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Action__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__0__Impl
+	rule__Action__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getActionKeyword_0()); }
+(
+	'Action' 
+)?
+{ after(grammarAccess.getActionAccess().getActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__1__Impl
+	rule__Action__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getNameAssignment_1()); }
+(rule__Action__NameAssignment_1)
+{ after(grammarAccess.getActionAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__2__Impl
+	rule__Action__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getGroup_2()); }
+(rule__Action__Group_2__0)?
+{ after(grammarAccess.getActionAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__3__Impl
+	rule__Action__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__4__Impl
+	rule__Action__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOperationKeyword_4()); }
+
+	'operation' 
+
+{ after(grammarAccess.getActionAccess().getOperationKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__5__Impl
+	rule__Action__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getEqualsSignKeyword_5()); }
+
+	'=' 
+
+{ after(grammarAccess.getActionAccess().getEqualsSignKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__6__Impl
+	rule__Action__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getAdaptationActionOperationAssignment_6()); }
+(rule__Action__AdaptationActionOperationAssignment_6)
+{ after(grammarAccess.getActionAccess().getAdaptationActionOperationAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__7__Impl
+	rule__Action__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7()); }
+
+	'referredAdaptationPoint' 
+
+{ after(grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__8__Impl
+	rule__Action__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getEqualsSignKeyword_8()); }
+
+	'=' 
+
+{ after(grammarAccess.getActionAccess().getEqualsSignKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__9__Impl
+	rule__Action__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_9()); }
+(rule__Action__ReferredAdaptationPointAssignment_9)
+{ after(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__10__Impl
+	rule__Action__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getGroup_10()); }
+(rule__Action__Group_10__0)?
+{ after(grammarAccess.getActionAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__11__Impl
+	rule__Action__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getGroup_11()); }
+(rule__Action__Group_11__0)?
+{ after(grammarAccess.getActionAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Action__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_2__0__Impl
+	rule__Action__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getActionAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_2__1__Impl
+	rule__Action__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getIdAssignment_2_1()); }
+(rule__Action__IdAssignment_2_1)
+{ after(grammarAccess.getActionAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getActionAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Action__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__0__Impl
+	rule__Action__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputKeyword_10_0()); }
+
+	'input' 
+
+{ after(grammarAccess.getActionAccess().getInputKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__1__Impl
+	rule__Action__Group_10__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getEqualsSignKeyword_10_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getActionAccess().getEqualsSignKeyword_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__2__Impl
+	rule__Action__Group_10__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getLeftParenthesisKeyword_10_2()); }
+
+	'(' 
+
+{ after(grammarAccess.getActionAccess().getLeftParenthesisKeyword_10_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__3__Impl
+	rule__Action__Group_10__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsAssignment_10_3()); }
+(rule__Action__InputParamsAssignment_10_3)
+{ after(grammarAccess.getActionAccess().getInputParamsAssignment_10_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__4__Impl
+	rule__Action__Group_10__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getGroup_10_4()); }
+(rule__Action__Group_10_4__0)*
+{ after(grammarAccess.getActionAccess().getGroup_10_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getRightParenthesisKeyword_10_5()); }
+
+	')' 
+
+{ after(grammarAccess.getActionAccess().getRightParenthesisKeyword_10_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Action__Group_10_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10_4__0__Impl
+	rule__Action__Group_10_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getCommaKeyword_10_4_0()); }
+
+	',' 
+
+{ after(grammarAccess.getActionAccess().getCommaKeyword_10_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_10_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_10_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_10_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsAssignment_10_4_1()); }
+(rule__Action__InputParamsAssignment_10_4_1)
+{ after(grammarAccess.getActionAccess().getInputParamsAssignment_10_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Action__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_11__0__Impl
+	rule__Action__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOutputKeyword_11_0()); }
+
+	'output' 
+
+{ after(grammarAccess.getActionAccess().getOutputKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_11__1__Impl
+	rule__Action__Group_11__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getEqualsSignKeyword_11_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getActionAccess().getEqualsSignKeyword_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_11__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_11__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_11__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOutputParamAssignment_11_2()); }
+(rule__Action__OutputParamAssignment_11_2)
+{ after(grammarAccess.getActionAccess().getOutputParamAssignment_11_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Strategy__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__0__Impl
+	rule__Strategy__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getNameAssignment_0()); }
+(rule__Strategy__NameAssignment_0)
+{ after(grammarAccess.getStrategyAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__1__Impl
+	rule__Strategy__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getGroup_1()); }
+(rule__Strategy__Group_1__0)?
+{ after(grammarAccess.getStrategyAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__2__Impl
+	rule__Strategy__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__3__Impl
+	rule__Strategy__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveKeyword_3()); }
+
+	'objective' 
+
+{ after(grammarAccess.getStrategyAccess().getObjectiveKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__4__Impl
+	rule__Strategy__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getEqualsSignKeyword_4()); }
+
+	'=' 
+
+{ after(grammarAccess.getStrategyAccess().getEqualsSignKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__5__Impl
+	rule__Strategy__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveAssignment_5()); }
+(rule__Strategy__ObjectiveAssignment_5)
+{ after(grammarAccess.getStrategyAccess().getObjectiveAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__6__Impl
+	rule__Strategy__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTriggeringEventKeyword_6()); }
+
+	'triggeringEvent' 
+
+{ after(grammarAccess.getStrategyAccess().getTriggeringEventKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__7__Impl
+	rule__Strategy__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getEqualsSignKeyword_7()); }
+
+	'=' 
+
+{ after(grammarAccess.getStrategyAccess().getEqualsSignKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__8__Impl
+	rule__Strategy__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_8()); }
+(rule__Strategy__TriggeringEventsAssignment_8)
+{ after(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__9__Impl
+	rule__Strategy__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsKeyword_9()); }
+
+	'tactics' 
+
+{ after(grammarAccess.getStrategyAccess().getTacticsKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__10__Impl
+	rule__Strategy__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getEqualsSignKeyword_10()); }
+
+	'=' 
+
+{ after(grammarAccess.getStrategyAccess().getEqualsSignKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__11__Impl
+	rule__Strategy__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getLeftParenthesisKeyword_11()); }
+
+	'(' 
+
+{ after(grammarAccess.getStrategyAccess().getLeftParenthesisKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__12__Impl
+	rule__Strategy__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsAssignment_12()); }
+(rule__Strategy__TacticsAssignment_12)
+{ after(grammarAccess.getStrategyAccess().getTacticsAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__13__Impl
+	rule__Strategy__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getGroup_13()); }
+(rule__Strategy__Group_13__0)*
+{ after(grammarAccess.getStrategyAccess().getGroup_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__14__Impl
+	rule__Strategy__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getRightParenthesisKeyword_14()); }
+
+	')' 
+
+{ after(grammarAccess.getStrategyAccess().getRightParenthesisKeyword_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__15__Impl
+	rule__Strategy__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15()); }
+(
+	'weightingFunction' 
+)?
+{ after(grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__16__Impl
+	rule__Strategy__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_16()); }
+(rule__Strategy__WeightingFunctionAssignment_16)
+{ after(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__17__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_17()); }
+
+	'}' 
+
+{ after(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Strategy__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_1__0__Impl
+	rule__Strategy__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getStrategyAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_1__1__Impl
+	rule__Strategy__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getIdAssignment_1_1()); }
+(rule__Strategy__IdAssignment_1_1)
+{ after(grammarAccess.getStrategyAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getStrategyAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Strategy__Group_13__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_13__0__Impl
+	rule__Strategy__Group_13__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_13__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getCommaKeyword_13_0()); }
+
+	',' 
+
+{ after(grammarAccess.getStrategyAccess().getCommaKeyword_13_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group_13__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_13__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_13__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsAssignment_13_1()); }
+(rule__Strategy__TacticsAssignment_13_1)
+{ after(grammarAccess.getStrategyAccess().getTacticsAssignment_13_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Parameter__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__0__Impl
+	rule__Parameter__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getNameAssignment_0()); }
+(rule__Parameter__NameAssignment_0)
+{ after(grammarAccess.getParameterAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__1__Impl
+	rule__Parameter__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__2__Impl
+	rule__Parameter__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getGroup_2()); }
+(rule__Parameter__Group_2__0)?
+{ after(grammarAccess.getParameterAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__3__Impl
+	rule__Parameter__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getTypeAssignment_3()); }
+(rule__Parameter__TypeAssignment_3)
+{ after(grammarAccess.getParameterAccess().getTypeAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__4__Impl
+	rule__Parameter__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getGroup_4()); }
+(rule__Parameter__Group_4__0)?
+{ after(grammarAccess.getParameterAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Parameter__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_2__0__Impl
+	rule__Parameter__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getTypeKeyword_2_0()); }
+
+	'type' 
+
+{ after(grammarAccess.getParameterAccess().getTypeKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Parameter__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4__0__Impl
+	rule__Parameter__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getCommaKeyword_4_0()); }
+
+	',' 
+
+{ after(grammarAccess.getParameterAccess().getCommaKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4__1__Impl
+	rule__Parameter__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getGroup_4_1()); }
+(rule__Parameter__Group_4_1__0)?
+{ after(grammarAccess.getParameterAccess().getGroup_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getValueAssignment_4_2()); }
+(rule__Parameter__ValueAssignment_4_2)
+{ after(grammarAccess.getParameterAccess().getValueAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Parameter__Group_4_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4_1__0__Impl
+	rule__Parameter__Group_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getValueKeyword_4_1_0()); }
+
+	'value' 
+
+{ after(grammarAccess.getParameterAccess().getValueKeyword_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Parameter__Group_4_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Parameter__Group_4_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__Group_4_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OverallGoal__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__0__Impl
+	rule__OverallGoal__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getDescriptionKeyword_0()); }
+
+	'description' 
+
+{ after(grammarAccess.getOverallGoalAccess().getDescriptionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__1__Impl
+	rule__OverallGoal__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getDescriptionAssignment_1()); }
+(rule__OverallGoal__DescriptionAssignment_1)
+{ after(grammarAccess.getOverallGoalAccess().getDescriptionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__2__Impl
+	rule__OverallGoal__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesKeyword_2()); }
+
+	'objectives' 
+
+{ after(grammarAccess.getOverallGoalAccess().getObjectivesKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__3__Impl
+	rule__OverallGoal__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getEqualsSignKeyword_3()); }
+
+	'=' 
+
+{ after(grammarAccess.getOverallGoalAccess().getEqualsSignKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__4__Impl
+	rule__OverallGoal__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getLeftParenthesisKeyword_4()); }
+
+	'(' 
+
+{ after(grammarAccess.getOverallGoalAccess().getLeftParenthesisKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__5__Impl
+	rule__OverallGoal__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_5()); }
+(rule__OverallGoal__ObjectivesAssignment_5)
+{ after(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__6__Impl
+	rule__OverallGoal__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getGroup_6()); }
+(rule__OverallGoal__Group_6__0)*
+{ after(grammarAccess.getOverallGoalAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getRightParenthesisKeyword_7()); }
+
+	')' 
+
+{ after(grammarAccess.getOverallGoalAccess().getRightParenthesisKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__OverallGoal__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group_6__0__Impl
+	rule__OverallGoal__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getCommaKeyword_6_0()); }
+
+	',' 
+
+{ after(grammarAccess.getOverallGoalAccess().getCommaKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OverallGoal__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OverallGoal__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_6_1()); }
+(rule__OverallGoal__ObjectivesAssignment_6_1)
+{ after(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ImportDeclaration__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ImportDeclaration__Group__0__Impl
+	rule__ImportDeclaration__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ImportDeclaration__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImportDeclarationAccess().getImportDeclarationKeyword_0()); }
+
+	'ImportDeclaration' 
+
+{ after(grammarAccess.getImportDeclarationAccess().getImportDeclarationKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ImportDeclaration__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ImportDeclaration__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ImportDeclaration__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); }
+(rule__ImportDeclaration__ImportURIAssignment_1)
+{ after(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__AdaptationPlan__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__0__Impl
+	rule__AdaptationPlan__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getNameAssignment_0()); }
+(rule__AdaptationPlan__NameAssignment_0)
+{ after(grammarAccess.getAdaptationPlanAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__1__Impl
+	rule__AdaptationPlan__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup_1()); }
+(rule__AdaptationPlan__Group_1__0)?
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__2__Impl
+	rule__AdaptationPlan__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getEqualsSignKeyword_2()); }
+
+	'=' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getEqualsSignKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup_3()); }
+(rule__AdaptationPlan__Group_3__0)?
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationPlan__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_1__0__Impl
+	rule__AdaptationPlan__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_1__1__Impl
+	rule__AdaptationPlan__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getIdAssignment_1_1()); }
+(rule__AdaptationPlan__IdAssignment_1_1)
+{ after(grammarAccess.getAdaptationPlanAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__AdaptationPlan__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3__0__Impl
+	rule__AdaptationPlan__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getLeftParenthesisKeyword_3_0()); }
+
+	'(' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getLeftParenthesisKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3__1__Impl
+	rule__AdaptationPlan__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_1()); }
+(rule__AdaptationPlan__StepsAssignment_3_1)
+{ after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3__2__Impl
+	rule__AdaptationPlan__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup_3_2()); }
+(rule__AdaptationPlan__Group_3_2__0)*
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getRightParenthesisKeyword_3_3()); }
+
+	')' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getRightParenthesisKeyword_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationPlan__Group_3_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3_2__0__Impl
+	rule__AdaptationPlan__Group_3_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_3_2_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_3_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_3_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_3_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_2_1()); }
+(rule__AdaptationPlan__StepsAssignment_3_2_1)
+{ after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__StartAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__0__Impl
+	rule__StartAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getStartActionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStartActionAccess().getStartActionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__1__Impl
+	rule__StartAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); }
+
+	'StartAction' 
+
+{ after(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getGroup_2()); }
+(rule__StartAction__Group_2__0)?
+{ after(grammarAccess.getStartActionAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__StartAction__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group_2__0__Impl
+	rule__StartAction__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getStartActionAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group_2__1__Impl
+	rule__StartAction__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getIdAssignment_2_1()); }
+(rule__StartAction__IdAssignment_2_1)
+{ after(grammarAccess.getStartActionAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getStartActionAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__StopAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__0__Impl
+	rule__StopAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getStopActionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStopActionAccess().getStopActionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__1__Impl
+	rule__StopAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); }
+
+	'StopAction' 
+
+{ after(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getGroup_2()); }
+(rule__StopAction__Group_2__0)?
+{ after(grammarAccess.getStopActionAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__StopAction__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group_2__0__Impl
+	rule__StopAction__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getStopActionAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group_2__1__Impl
+	rule__StopAction__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getIdAssignment_2_1()); }
+(rule__StopAction__IdAssignment_2_1)
+{ after(grammarAccess.getStopActionAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getStopActionAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__LoopAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__0__Impl
+	rule__LoopAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); }
+(
+	'LoopAction' 
+)?
+{ after(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__1__Impl
+	rule__LoopAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getGroup_1()); }
+(rule__LoopAction__Group_1__0)?
+{ after(grammarAccess.getLoopActionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__2__Impl
+	rule__LoopAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getRepeatKeyword_2()); }
+
+	'repeat' 
+
+{ after(grammarAccess.getLoopActionAccess().getRepeatKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__3__Impl
+	rule__LoopAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getCounterKeyword_3()); }
+
+	'counter' 
+
+{ after(grammarAccess.getLoopActionAccess().getCounterKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__4__Impl
+	rule__LoopAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getEqualsSignKeyword_4()); }
+
+	'=' 
+
+{ after(grammarAccess.getLoopActionAccess().getEqualsSignKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__5__Impl
+	rule__LoopAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getCounterAssignment_5()); }
+(rule__LoopAction__CounterAssignment_5)
+{ after(grammarAccess.getLoopActionAccess().getCounterAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__6__Impl
+	rule__LoopAction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getLeftParenthesisKeyword_6()); }
+
+	'(' 
+
+{ after(grammarAccess.getLoopActionAccess().getLeftParenthesisKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__7__Impl
+	rule__LoopAction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getBodyAssignment_7()); }
+(rule__LoopAction__BodyAssignment_7)
+{ after(grammarAccess.getLoopActionAccess().getBodyAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getRightParenthesisKeyword_8()); }
+
+	')' 
+
+{ after(grammarAccess.getLoopActionAccess().getRightParenthesisKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__LoopAction__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group_1__0__Impl
+	rule__LoopAction__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getLoopActionAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group_1__1__Impl
+	rule__LoopAction__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getIdAssignment_1_1()); }
+(rule__LoopAction__IdAssignment_1_1)
+{ after(grammarAccess.getLoopActionAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getLoopActionAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__BranchAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__0__Impl
+	rule__BranchAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); }
+(
+	'BranchAction' 
+)?
+{ after(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__1__Impl
+	rule__BranchAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getGroup_1()); }
+(rule__BranchAction__Group_1__0)?
+{ after(grammarAccess.getBranchActionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__2__Impl
+	rule__BranchAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getIfKeyword_2()); }
+
+	'if' 
+
+{ after(grammarAccess.getBranchActionAccess().getIfKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__3__Impl
+	rule__BranchAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_3()); }
+
+	'(' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__4__Impl
+	rule__BranchAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getContextKeyword_4()); }
+
+	'context' 
+
+{ after(grammarAccess.getBranchActionAccess().getContextKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__5__Impl
+	rule__BranchAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_5()); }
+
+	'=' 
+
+{ after(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__6__Impl
+	rule__BranchAction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getContextAssignment_6()); }
+(rule__BranchAction__ContextAssignment_6)
+{ after(grammarAccess.getBranchActionAccess().getContextAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__7__Impl
+	rule__BranchAction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getCommaKeyword_7()); }
+
+	',' 
+
+{ after(grammarAccess.getBranchActionAccess().getCommaKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__8__Impl
+	rule__BranchAction__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionKeyword_8()); }
+
+	'condition' 
+
+{ after(grammarAccess.getBranchActionAccess().getConditionKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__9__Impl
+	rule__BranchAction__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_9()); }
+
+	'=' 
+
+{ after(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__10__Impl
+	rule__BranchAction__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionAssignment_10()); }
+(rule__BranchAction__ConditionAssignment_10)
+{ after(grammarAccess.getBranchActionAccess().getConditionAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__11__Impl
+	rule__BranchAction__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_11()); }
+
+	')' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__12__Impl
+	rule__BranchAction__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getThenKeyword_12()); }
+
+	'then' 
+
+{ after(grammarAccess.getBranchActionAccess().getThenKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__13__Impl
+	rule__BranchAction__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_13()); }
+
+	'(' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__14__Impl
+	rule__BranchAction__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionTrueBranchAssignment_14()); }
+(rule__BranchAction__ConditionTrueBranchAssignment_14)
+{ after(grammarAccess.getBranchActionAccess().getConditionTrueBranchAssignment_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__15__Impl
+	rule__BranchAction__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_15()); }
+
+	')' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__16__Impl
+	rule__BranchAction__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getElseKeyword_16()); }
+
+	'else' 
+
+{ after(grammarAccess.getBranchActionAccess().getElseKeyword_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__17__Impl
+	rule__BranchAction__Group__18
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_17()); }
+
+	'(' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__18__Impl
+	rule__BranchAction__Group__19
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__18__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionFalseBranchAssignment_18()); }
+(rule__BranchAction__ConditionFalseBranchAssignment_18)
+{ after(grammarAccess.getBranchActionAccess().getConditionFalseBranchAssignment_18()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__19
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__19__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__19__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_19()); }
+
+	')' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_19()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__BranchAction__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_1__0__Impl
+	rule__BranchAction__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getBranchActionAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_1__1__Impl
+	rule__BranchAction__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getIdAssignment_1_1()); }
+(rule__BranchAction__IdAssignment_1_1)
+{ after(grammarAccess.getBranchActionAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ActionReference__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__0__Impl
+	rule__ActionReference__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0()); }
+
+	'ActionReference' 
+
+{ after(grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__1__Impl
+	rule__ActionReference__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getGroup_1()); }
+(rule__ActionReference__Group_1__0)?
+{ after(grammarAccess.getActionReferenceAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__2__Impl
+	rule__ActionReference__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getLeftParenthesisKeyword_2()); }
+
+	'(' 
+
+{ after(grammarAccess.getActionReferenceAccess().getLeftParenthesisKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__3__Impl
+	rule__ActionReference__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToKeyword_3()); }
+
+	'refersTo' 
+
+{ after(grammarAccess.getActionReferenceAccess().getRefersToKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__4__Impl
+	rule__ActionReference__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToAssignment_4()); }
+(rule__ActionReference__RefersToAssignment_4)
+{ after(grammarAccess.getActionReferenceAccess().getRefersToAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRightParenthesisKeyword_5()); }
+
+	')' 
+
+{ after(grammarAccess.getActionReferenceAccess().getRightParenthesisKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ActionReference__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_1__0__Impl
+	rule__ActionReference__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getActionReferenceAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_1__1__Impl
+	rule__ActionReference__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getIdAssignment_1_1()); }
+(rule__ActionReference__IdAssignment_1_1)
+{ after(grammarAccess.getActionReferenceAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getActionReferenceAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__AdaptationActionOperation__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__0__Impl
+	rule__AdaptationActionOperation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getLeftParenthesisKeyword_0()); }
+
+	'(' 
+
+{ after(grammarAccess.getAdaptationActionOperationAccess().getLeftParenthesisKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationActionOperation__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__1__Impl
+	rule__AdaptationActionOperation__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAssignment_1()); }
+(rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1)
+{ after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationActionOperation__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__2__Impl
+	rule__AdaptationActionOperation__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getCommaKeyword_2()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationActionOperationAccess().getCommaKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationActionOperation__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__3__Impl
+	rule__AdaptationActionOperation__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAssignment_3()); }
+(rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3)
+{ after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationActionOperation__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationActionOperation__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getRightParenthesisKeyword_4()); }
+
+	')' 
+
+{ after(grammarAccess.getAdaptationActionOperationAccess().getRightParenthesisKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ModelVariableConfigurationRange__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__0__Impl
+	rule__ModelVariableConfigurationRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0()); }
+
+	'ModelVariableConfigurationRange' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__1__Impl
+	rule__ModelVariableConfigurationRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup_1()); }
+(rule__ModelVariableConfigurationRange__Group_1__0)?
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__2__Impl
+	rule__ModelVariableConfigurationRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__3__Impl
+	rule__ModelVariableConfigurationRange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__4__Impl
+	rule__ModelVariableConfigurationRange__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getNameAssignment_4()); }
+(rule__ModelVariableConfigurationRange__NameAssignment_4)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__5__Impl
+	rule__ModelVariableConfigurationRange__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_5()); }
+
+	'minValue' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__6__Impl
+	rule__ModelVariableConfigurationRange__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_6()); }
+(rule__ModelVariableConfigurationRange__MinValueAssignment_6)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__7__Impl
+	rule__ModelVariableConfigurationRange__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_7()); }
+
+	'maxValue' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__8__Impl
+	rule__ModelVariableConfigurationRange__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_8()); }
+(rule__ModelVariableConfigurationRange__MaxValueAssignment_8)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__9__Impl
+	rule__ModelVariableConfigurationRange__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_9()); }
+
+	'adaptableEntity' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__10__Impl
+	rule__ModelVariableConfigurationRange__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_10()); }
+(rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ModelVariableConfigurationRange__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group_1__0__Impl
+	rule__ModelVariableConfigurationRange__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group_1__1__Impl
+	rule__ModelVariableConfigurationRange__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1_1()); }
+(rule__ModelVariableConfigurationRange__IdAssignment_1_1)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ModelEntityConfigurationRange__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__0__Impl
+	rule__ModelEntityConfigurationRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0()); }
+
+	'ModelEntityConfigurationRange' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__1__Impl
+	rule__ModelEntityConfigurationRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_1()); }
+(rule__ModelEntityConfigurationRange__Group_1__0)?
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__2__Impl
+	rule__ModelEntityConfigurationRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__3__Impl
+	rule__ModelEntityConfigurationRange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__4__Impl
+	rule__ModelEntityConfigurationRange__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getNameAssignment_4()); }
+(rule__ModelEntityConfigurationRange__NameAssignment_4)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__5__Impl
+	rule__ModelEntityConfigurationRange__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityKeyword_5()); }
+
+	'adaptableEntity' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__6__Impl
+	rule__ModelEntityConfigurationRange__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityAssignment_6()); }
+(rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__7__Impl
+	rule__ModelEntityConfigurationRange__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_7()); }
+
+	'variationPossibility' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__8__Impl
+	rule__ModelEntityConfigurationRange__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_8()); }
+(rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ModelEntityConfigurationRange__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_1__0__Impl
+	rule__ModelEntityConfigurationRange__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_1__1__Impl
+	rule__ModelEntityConfigurationRange__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1_1()); }
+(rule__ModelEntityConfigurationRange__IdAssignment_1_1)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__EDouble__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__0__Impl
+	rule__EDouble__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__1__Impl
+	rule__EDouble__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); }
+(	RULE_INT)?
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__2__Impl
+	rule__EDouble__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); }
+
+	'.' 
+
+{ after(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__3__Impl
+	rule__EDouble__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); }
+	RULE_INT
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getGroup_4()); }
+(rule__EDouble__Group_4__0)?
+{ after(grammarAccess.getEDoubleAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EDouble__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__0__Impl
+	rule__EDouble__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); }
+(rule__EDouble__Alternatives_4_0)
+{ after(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__1__Impl
+	rule__EDouble__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); }
+	RULE_INT
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__PropertyRange__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__0__Impl
+	rule__PropertyRange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0()); }
+
+	'PropertyRange' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__1__Impl
+	rule__PropertyRange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__2__Impl
+	rule__PropertyRange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2()); }
+
+	'minValueConstraint' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__3__Impl
+	rule__PropertyRange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintAssignment_3()); }
+(rule__PropertyRange__MinValueConstraintAssignment_3)
+{ after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__4__Impl
+	rule__PropertyRange__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4()); }
+
+	'maxValueConstraint' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__5__Impl
+	rule__PropertyRange__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintAssignment_5()); }
+(rule__PropertyRange__MaxValueConstraintAssignment_5)
+{ after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyRange__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PropertyRange__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SetOfConfigurations__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__0__Impl
+	rule__SetOfConfigurations__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0()); }
+
+	'SetOfConfigurations' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__1__Impl
+	rule__SetOfConfigurations__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__2__Impl
+	rule__SetOfConfigurations__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getGroup_2()); }
+(rule__SetOfConfigurations__Group_2__0)?
+{ after(grammarAccess.getSetOfConfigurationsAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__3__Impl
+	rule__SetOfConfigurations__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_3()); }
+
+	'valueConstraint' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__4__Impl
+	rule__SetOfConfigurations__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_4()); }
+(rule__SetOfConfigurations__ValueConstraintAssignment_4)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SetOfConfigurations__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__0__Impl
+	rule__SetOfConfigurations__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_2_0()); }
+
+	'variants' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__1__Impl
+	rule__SetOfConfigurations__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_2_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__2__Impl
+	rule__SetOfConfigurations__Group_2__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_2()); }
+(rule__SetOfConfigurations__VariantsAssignment_2_2)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__3__Impl
+	rule__SetOfConfigurations__Group_2__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getGroup_2_3()); }
+(rule__SetOfConfigurations__Group_2_3__0)*
+{ after(grammarAccess.getSetOfConfigurationsAccess().getGroup_2_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_2_4()); }
+
+	')' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_2_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SetOfConfigurations__Group_2_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2_3__0__Impl
+	rule__SetOfConfigurations__Group_2_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_2_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_2_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_2_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_2_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_2_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_3_1()); }
+(rule__SetOfConfigurations__VariantsAssignment_2_3_1)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OclConstraint__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__0__Impl
+	rule__OclConstraint__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0()); }
+
+	'OclConstraint' 
+
+{ after(grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__1__Impl
+	rule__OclConstraint__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getNameAssignment_1()); }
+(rule__OclConstraint__NameAssignment_1)
+{ after(grammarAccess.getOclConstraintAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__2__Impl
+	rule__OclConstraint__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__3__Impl
+	rule__OclConstraint__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getOclStringKeyword_3()); }
+
+	'oclString' 
+
+{ after(grammarAccess.getOclConstraintAccess().getOclStringKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__4__Impl
+	rule__OclConstraint__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getOclStringAssignment_4()); }
+(rule__OclConstraint__OclStringAssignment_4)
+{ after(grammarAccess.getOclConstraintAccess().getOclStringAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OclConstraint__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OclConstraint__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Objective__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__0__Impl
+	rule__Objective__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getNameAssignment_0()); }
+(rule__Objective__NameAssignment_0)
+{ after(grammarAccess.getObjectiveAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__1__Impl
+	rule__Objective__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getGroup_1()); }
+(rule__Objective__Group_1__0)?
+{ after(grammarAccess.getObjectiveAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__2__Impl
+	rule__Objective__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__3__Impl
+	rule__Objective__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationKeyword_3()); }
+
+	'specification' 
+
+{ after(grammarAccess.getObjectiveAccess().getSpecificationKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__4__Impl
+	rule__Objective__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getEqualsSignKeyword_4()); }
+
+	'=' 
+
+{ after(grammarAccess.getObjectiveAccess().getEqualsSignKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__5__Impl
+	rule__Objective__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getAlternatives_5()); }
+(rule__Objective__Alternatives_5)
+{ after(grammarAccess.getObjectiveAccess().getAlternatives_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Objective__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_1__0__Impl
+	rule__Objective__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getObjectiveAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_1__1__Impl
+	rule__Objective__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getIdAssignment_1_1()); }
+(rule__Objective__IdAssignment_1_1)
+{ after(grammarAccess.getObjectiveAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getObjectiveAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Objective__Group_5_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1__0__Impl
+	rule__Objective__Group_5_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getLeftParenthesisKeyword_5_1_0()); }
+
+	'(' 
+
+{ after(grammarAccess.getObjectiveAccess().getLeftParenthesisKeyword_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_5_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1__1__Impl
+	rule__Objective__Group_5_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_1()); }
+(rule__Objective__SpecificationsAssignment_5_1_1)
+{ after(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_5_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1__2__Impl
+	rule__Objective__Group_5_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getGroup_5_1_2()); }
+(rule__Objective__Group_5_1_2__0)*
+{ after(grammarAccess.getObjectiveAccess().getGroup_5_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_5_1__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getRightParenthesisKeyword_5_1_3()); }
+
+	')' 
+
+{ after(grammarAccess.getObjectiveAccess().getRightParenthesisKeyword_5_1_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__Objective__Group_5_1_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1_2__0__Impl
+	rule__Objective__Group_5_1_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getCommaKeyword_5_1_2_0()); }
+
+	',' 
+
+{ after(grammarAccess.getObjectiveAccess().getCommaKeyword_5_1_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Objective__Group_5_1_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Objective__Group_5_1_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__Group_5_1_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_2_1()); }
+(rule__Objective__SpecificationsAssignment_5_1_2_1)
+{ after(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Event__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group__0__Impl
+	rule__Event__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getNameAssignment_0()); }
+(rule__Event__NameAssignment_0)
+{ after(grammarAccess.getEventAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Event__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getGroup_1()); }
+(rule__Event__Group_1__0)?
+{ after(grammarAccess.getEventAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Event__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group_1__0__Impl
+	rule__Event__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getEventAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Event__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group_1__1__Impl
+	rule__Event__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getIdAssignment_1_1()); }
+(rule__Event__IdAssignment_1_1)
+{ after(grammarAccess.getEventAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Event__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Event__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getEventAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightedTactic__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__0__Impl
+	rule__WeightedTactic__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getNameAssignment_0()); }
+(rule__WeightedTactic__NameAssignment_0)
+{ after(grammarAccess.getWeightedTacticAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__1__Impl
+	rule__WeightedTactic__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_1()); }
+(rule__WeightedTactic__Group_1__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__2__Impl
+	rule__WeightedTactic__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_2()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__3__Impl
+	rule__WeightedTactic__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLeftParenthesisKeyword_3()); }
+
+	'(' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getLeftParenthesisKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__4__Impl
+	rule__WeightedTactic__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_4()); }
+(rule__WeightedTactic__Group_4__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__5__Impl
+	rule__WeightedTactic__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getUsedTacticAssignment_5()); }
+(rule__WeightedTactic__UsedTacticAssignment_5)
+{ after(grammarAccess.getWeightedTacticAccess().getUsedTacticAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__6__Impl
+	rule__WeightedTactic__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCommaKeyword_6()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getCommaKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__7__Impl
+	rule__WeightedTactic__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_7()); }
+(rule__WeightedTactic__Group_7__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__8__Impl
+	rule__WeightedTactic__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_8()); }
+(rule__WeightedTactic__DefaultWeightAssignment_8)
+{ after(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__9__Impl
+	rule__WeightedTactic__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCommaKeyword_9()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getCommaKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__10__Impl
+	rule__WeightedTactic__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_10()); }
+(rule__WeightedTactic__Group_10__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__11__Impl
+	rule__WeightedTactic__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_11()); }
+(rule__WeightedTactic__CurrentWeightAssignment_11)
+{ after(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__12__Impl
+	rule__WeightedTactic__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_12()); }
+(rule__WeightedTactic__Group_12__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getRightParenthesisKeyword_13()); }
+
+	')' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getRightParenthesisKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__WeightedTactic__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_1__0__Impl
+	rule__WeightedTactic__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_1__1__Impl
+	rule__WeightedTactic__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getIdAssignment_1_1()); }
+(rule__WeightedTactic__IdAssignment_1_1)
+{ after(grammarAccess.getWeightedTacticAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightedTactic__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_4__0__Impl
+	rule__WeightedTactic__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0()); }
+
+	'tactic' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightedTactic__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_7__0__Impl
+	rule__WeightedTactic__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0()); }
+
+	'default' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightedTactic__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_10__0__Impl
+	rule__WeightedTactic__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0()); }
+
+	'current' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_10__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightedTactic__Group_12__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12__0__Impl
+	rule__WeightedTactic__Group_12__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCommaKeyword_12_0()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getCommaKeyword_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_12__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12__1__Impl
+	rule__WeightedTactic__Group_12__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getGroup_12_1()); }
+(rule__WeightedTactic__Group_12_1__0)?
+{ after(grammarAccess.getWeightedTacticAccess().getGroup_12_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_12__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLastImpactAssignment_12_2()); }
+(rule__WeightedTactic__LastImpactAssignment_12_2)
+{ after(grammarAccess.getWeightedTacticAccess().getLastImpactAssignment_12_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightedTactic__Group_12_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12_1__0__Impl
+	rule__WeightedTactic__Group_12_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0()); }
+
+	'lastImpact' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group_12_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group_12_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group_12_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightingFunction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__0__Impl
+	rule__WeightingFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getNameAssignment_0()); }
+(rule__WeightingFunction__NameAssignment_0)
+{ after(grammarAccess.getWeightingFunctionAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__1__Impl
+	rule__WeightingFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getGroup_1()); }
+(rule__WeightingFunction__Group_1__0)?
+{ after(grammarAccess.getWeightingFunctionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__2__Impl
+	rule__WeightingFunction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_2()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__3__Impl
+	rule__WeightingFunction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_3()); }
+
+	'(' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__4__Impl
+	rule__WeightingFunction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationKeyword_4()); }
+
+	'weightingFunctionImplementation' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__5__Impl
+	rule__WeightingFunction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_5()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__6__Impl
+	rule__WeightingFunction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationAssignment_6()); }
+(rule__WeightingFunction__WeightingFunctionImplementationAssignment_6)
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__7__Impl
+	rule__WeightingFunction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsKeyword_7()); }
+
+	'weightedMetrics' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__8__Impl
+	rule__WeightingFunction__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_8()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__9__Impl
+	rule__WeightingFunction__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_9()); }
+
+	'(' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__10__Impl
+	rule__WeightingFunction__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_10()); }
+(rule__WeightingFunction__WeightedMetricsAssignment_10)
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__11__Impl
+	rule__WeightingFunction__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getGroup_11()); }
+(rule__WeightingFunction__Group_11__0)*
+{ after(grammarAccess.getWeightingFunctionAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__12__Impl
+	rule__WeightingFunction__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_12()); }
+
+	')' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_13()); }
+
+	')' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__WeightingFunction__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_1__0__Impl
+	rule__WeightingFunction__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getIdKeyword_1_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getIdKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_1__1__Impl
+	rule__WeightingFunction__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getIdAssignment_1_1()); }
+(rule__WeightingFunction__IdAssignment_1_1)
+{ after(grammarAccess.getWeightingFunctionAccess().getIdAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_1__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getRightSquareBracketKeyword_1_2()); }
+
+	']' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getRightSquareBracketKeyword_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightingFunction__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_11__0__Impl
+	rule__WeightingFunction__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getCommaKeyword_11_0()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getCommaKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group_11__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_11_1()); }
+(rule__WeightingFunction__WeightedMetricsAssignment_11_1)
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Specification__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__0__Impl
+	rule__Specification__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getSpecificationKeyword_0()); }
+(
+	'Specification' 
+)?
+{ after(grammarAccess.getSpecificationAccess().getSpecificationKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__1__Impl
+	rule__Specification__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__2__Impl
+	rule__Specification__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2()); }
+(
+	'metricType' 
+)?
+{ after(grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__3__Impl
+	rule__Specification__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getMetricTypeAssignment_3()); }
+(rule__Specification__MetricTypeAssignment_3)
+{ after(grammarAccess.getSpecificationAccess().getMetricTypeAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__4__Impl
+	rule__Specification__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getCommaKeyword_4()); }
+
+	',' 
+
+{ after(grammarAccess.getSpecificationAccess().getCommaKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__5__Impl
+	rule__Specification__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5()); }
+(
+	'relationalOperator' 
+)?
+{ after(grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__6__Impl
+	rule__Specification__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getRelationalOperatorAssignment_6()); }
+(rule__Specification__RelationalOperatorAssignment_6)
+{ after(grammarAccess.getSpecificationAccess().getRelationalOperatorAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__7__Impl
+	rule__Specification__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getCommaKeyword_7()); }
+
+	',' 
+
+{ after(grammarAccess.getSpecificationAccess().getCommaKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__8__Impl
+	rule__Specification__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getValueKeyword_8()); }
+(
+	'value' 
+)?
+{ after(grammarAccess.getSpecificationAccess().getValueKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__9__Impl
+	rule__Specification__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getValueAssignment_9()); }
+(rule__Specification__ValueAssignment_9)
+{ after(grammarAccess.getSpecificationAccess().getValueAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Specification__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Specification__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_10()); }
+
+	')' 
+
+{ after(grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__MetricValue__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__0__Impl
+	rule__MetricValue__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricValueKeyword_0()); }
+
+	'MetricValue' 
+
+{ after(grammarAccess.getMetricValueAccess().getMetricValueKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__1__Impl
+	rule__MetricValue__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getNameAssignment_1()); }
+(rule__MetricValue__NameAssignment_1)
+{ after(grammarAccess.getMetricValueAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__2__Impl
+	rule__MetricValue__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getGroup_2()); }
+(rule__MetricValue__Group_2__0)?
+{ after(grammarAccess.getMetricValueAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__3__Impl
+	rule__MetricValue__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getMetricValueAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__4__Impl
+	rule__MetricValue__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getValueKeyword_4()); }
+
+	'value' 
+
+{ after(grammarAccess.getMetricValueAccess().getValueKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__5__Impl
+	rule__MetricValue__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getValueAssignment_5()); }
+(rule__MetricValue__ValueAssignment_5)
+{ after(grammarAccess.getMetricValueAccess().getValueAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__6__Impl
+	rule__MetricValue__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMeasuredEntityKeyword_6()); }
+
+	'measuredEntity' 
+
+{ after(grammarAccess.getMetricValueAccess().getMeasuredEntityKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__7__Impl
+	rule__MetricValue__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMeasuredEntityAssignment_7()); }
+(rule__MetricValue__MeasuredEntityAssignment_7)
+{ after(grammarAccess.getMetricValueAccess().getMeasuredEntityAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__8__Impl
+	rule__MetricValue__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricTypeKeyword_8()); }
+
+	'metricType' 
+
+{ after(grammarAccess.getMetricValueAccess().getMetricTypeKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__9__Impl
+	rule__MetricValue__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricTypeAssignment_9()); }
+(rule__MetricValue__MetricTypeAssignment_9)
+{ after(grammarAccess.getMetricValueAccess().getMetricTypeAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getRightCurlyBracketKeyword_10()); }
+
+	'}' 
+
+{ after(grammarAccess.getMetricValueAccess().getRightCurlyBracketKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__MetricValue__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group_2__0__Impl
+	rule__MetricValue__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getMetricValueAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group_2__1__Impl
+	rule__MetricValue__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getIdAssignment_2_1()); }
+(rule__MetricValue__IdAssignment_2_1)
+{ after(grammarAccess.getMetricValueAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MetricValue__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__MetricValue__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getMetricValueAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+rule__WeightedMetric__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__0__Impl
+	rule__WeightedMetric__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0()); }
+(
+	'WeightedMetric' 
+)?
+{ after(grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__1__Impl
+	rule__WeightedMetric__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getNameAssignment_1()); }
+(rule__WeightedMetric__NameAssignment_1)
+{ after(grammarAccess.getWeightedMetricAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__2__Impl
+	rule__WeightedMetric__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getGroup_2()); }
+(rule__WeightedMetric__Group_2__0)?
+{ after(grammarAccess.getWeightedMetricAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__3__Impl
+	rule__WeightedMetric__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_3()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__4__Impl
+	rule__WeightedMetric__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getLeftParenthesisKeyword_4()); }
+
+	'(' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getLeftParenthesisKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__5__Impl
+	rule__WeightedMetric__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getGroup_5()); }
+(rule__WeightedMetric__Group_5__0)?
+{ after(grammarAccess.getWeightedMetricAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__6__Impl
+	rule__WeightedMetric__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getMetricTypeAssignment_6()); }
+(rule__WeightedMetric__MetricTypeAssignment_6)
+{ after(grammarAccess.getWeightedMetricAccess().getMetricTypeAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__7__Impl
+	rule__WeightedMetric__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getCommaKeyword_7()); }
+
+	',' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getCommaKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__8__Impl
+	rule__WeightedMetric__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getGroup_8()); }
+(rule__WeightedMetric__Group_8__0)?
+{ after(grammarAccess.getWeightedMetricAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__9__Impl
+	rule__WeightedMetric__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getWeightAssignment_9()); }
+(rule__WeightedMetric__WeightAssignment_9)
+{ after(grammarAccess.getWeightedMetricAccess().getWeightAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getRightParenthesisKeyword_10()); }
+
+	')' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getRightParenthesisKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__WeightedMetric__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_2__0__Impl
+	rule__WeightedMetric__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getIdKeyword_2_0()); }
+
+	'[id:' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getIdKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_2__1__Impl
+	rule__WeightedMetric__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getIdAssignment_2_1()); }
+(rule__WeightedMetric__IdAssignment_2_1)
+{ after(grammarAccess.getWeightedMetricAccess().getIdAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getRightSquareBracketKeyword_2_2()); }
+
+	']' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getRightSquareBracketKeyword_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__WeightedMetric__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_5__0__Impl
+	rule__WeightedMetric__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0()); }
+
+	'metricType' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__WeightedMetric__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_8__0__Impl
+	rule__WeightedMetric__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0()); }
+
+	'weight' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedMetric__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedMetric__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__AdaptationProcess__ImportDeclarationAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getImportDeclarationImportDeclarationParserRuleCall_0_0()); }
+	ruleImportDeclaration{ after(grammarAccess.getAdaptationProcessAccess().getImportDeclarationImportDeclarationParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__NameAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getNameEStringParserRuleCall_2_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationProcessAccess().getNameEStringParserRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__IdAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getIdEStringParserRuleCall_3_1_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationProcessAccess().getIdEStringParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__ParametersAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_2_0()); }
+	ruleParameter{ after(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__ParametersAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_3_1_0()); }
+	ruleParameter{ after(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__GoalAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getGoalOverallGoalParserRuleCall_8_0()); }
+	ruleOverallGoal{ after(grammarAccess.getAdaptationProcessAccess().getGoalOverallGoalParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__ActionsAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_11_0()); }
+	ruleAction{ after(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__ActionsAssignment_12_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_12_1_0()); }
+	ruleAction{ after(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_12_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__TacticsAssignment_15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_15_0()); }
+	ruleTactic{ after(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_15_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__TacticsAssignment_16_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_16_1_0()); }
+	ruleTactic{ after(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_16_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__StrategiesAssignment_19
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_19_0()); }
+	ruleStrategy{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_19_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationProcess__StrategiesAssignment_20_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_20_1_0()); }
+	ruleStrategy{ after(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_20_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__ImplementedPlanAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_5_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__InputParamsAssignment_6_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_3_0()); }
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_3_0_1()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_3_0_1()); }
+)
+{ after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__InputParamsAssignment_6_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_4_1_0()); }
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_4_1_0_1()); }
+)
+{ after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__OutputParamAssignment_7_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_7_2_0()); }
+(
+{ before(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_7_2_0_1()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_7_2_0_1()); }
+)
+{ after(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_7_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__AdaptationActionOperationAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0()); }
+	ruleAdaptationActionOperation{ after(grammarAccess.getActionAccess().getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__ReferredAdaptationPointAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_9_0()); }
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_9_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_9_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__InputParamsAssignment_10_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_3_0()); }
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_3_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_3_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__InputParamsAssignment_10_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_4_1_0()); }
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_4_1_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__OutputParamAssignment_11_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_11_2_0()); }
+(
+{ before(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_11_2_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_11_2_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_11_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__ObjectiveAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_5_0()); }
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__TriggeringEventsAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_8_0()); }
+	ruleEvent{ after(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__TacticsAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_12_0()); }
+	ruleWeightedTactic{ after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__TacticsAssignment_13_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_13_1_0()); }
+	ruleWeightedTactic{ after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_13_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__WeightingFunctionAssignment_16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_16_0()); }
+	ruleWeightingFunction{ after(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_16_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__TypeAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_3_0()); }
+	ruleEString{ after(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__ValueAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getValueEStringParserRuleCall_4_2_0()); }
+	ruleEString{ after(grammarAccess.getParameterAccess().getValueEStringParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__DescriptionAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getDescriptionEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getOverallGoalAccess().getDescriptionEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__ObjectivesAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_5_0()); }
+	ruleObjective{ after(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OverallGoal__ObjectivesAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_6_1_0()); }
+	ruleObjective{ after(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ImportDeclaration__ImportURIAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__StepsAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_1_0()); }
+	ruleAbstractControlFlowElement{ after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__StepsAssignment_3_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0()); }
+	ruleAbstractControlFlowElement{ after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getStartActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getStopActionAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getLoopActionAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__CounterAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getCounterParameterCrossReference_5_0()); }
+(
+{ before(grammarAccess.getLoopActionAccess().getCounterParameterEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getLoopActionAccess().getCounterParameterEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getLoopActionAccess().getCounterParameterCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__BodyAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getBodyAdaptationPlanParserRuleCall_7_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getLoopActionAccess().getBodyAdaptationPlanParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getBranchActionAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__ContextAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getContextEntityCrossReference_6_0()); }
+(
+{ before(grammarAccess.getBranchActionAccess().getContextEntityEStringParserRuleCall_6_0_1()); }
+	ruleEString{ after(grammarAccess.getBranchActionAccess().getContextEntityEStringParserRuleCall_6_0_1()); }
+)
+{ after(grammarAccess.getBranchActionAccess().getContextEntityCrossReference_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__ConditionAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionEStringParserRuleCall_10_0()); }
+	ruleEString{ after(grammarAccess.getBranchActionAccess().getConditionEStringParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__ConditionTrueBranchAssignment_14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionTrueBranchAdaptationPlanParserRuleCall_14_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getBranchActionAccess().getConditionTrueBranchAdaptationPlanParserRuleCall_14_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__ConditionFalseBranchAssignment_18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getConditionFalseBranchAdaptationPlanParserRuleCall_18_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getBranchActionAccess().getConditionFalseBranchAdaptationPlanParserRuleCall_18_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getActionReferenceAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__RefersToAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_4_0()); }
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_4_0_1()); }
+	ruleEString{ after(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_4_0_1()); }
+)
+{ after(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0()); }
+	ruleAdaptationDirection{ after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0()); }
+	ruleAdaptationScope{ after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__MinValueAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_6_0()); }
+	ruleEDouble{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__MaxValueAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_8_0()); }
+	ruleEDouble{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_10_0()); }
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_10_0_1()); }
+	ruleEString{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_10_0_1()); }
+)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityCrossReference_6_0()); }
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityEStringParserRuleCall_6_0_1()); }
+	ruleEString{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityEStringParserRuleCall_6_0_1()); }
+)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityCrossReference_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_8_0()); }
+	ruleVariationType{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__MinValueConstraintAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0()); }
+	ruleOclConstraint{ after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__MaxValueConstraintAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0()); }
+	ruleOclConstraint{ after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__VariantsAssignment_2_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_2_0()); }
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_2_0_1()); }
+	ruleEString{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_2_0_1()); }
+)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__VariantsAssignment_2_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_3_1_0()); }
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_3_1_0_1()); }
+)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__ValueConstraintAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintParserRuleCall_4_0()); }
+	ruleOclConstraint{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OclConstraint__OclStringAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getObjectiveAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getObjectiveAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__SpecificationsAssignment_5_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_0_0()); }
+	ruleSpecification{ after(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__SpecificationsAssignment_5_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_1_0()); }
+	ruleSpecification{ after(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Objective__SpecificationsAssignment_5_1_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_2_1_0()); }
+	ruleSpecification{ after(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getEventAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Event__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEventAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getEventAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getWeightedTacticAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getWeightedTacticAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__UsedTacticAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticCrossReference_5_0()); }
+(
+{ before(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__DefaultWeightAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_8_0()); }
+	ruleEDouble{ after(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__CurrentWeightAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_11_0()); }
+	ruleEDouble{ after(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__LastImpactAssignment_12_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLastImpactImpactCrossReference_12_2_0()); }
+(
+{ before(grammarAccess.getWeightedTacticAccess().getLastImpactImpactEStringParserRuleCall_12_2_0_1()); }
+	ruleEString{ after(grammarAccess.getWeightedTacticAccess().getLastImpactImpactEStringParserRuleCall_12_2_0_1()); }
+)
+{ after(grammarAccess.getWeightedTacticAccess().getLastImpactImpactCrossReference_12_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__NameAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getNameEStringParserRuleCall_0_0()); }
+	ruleEString{ after(grammarAccess.getWeightingFunctionAccess().getNameEStringParserRuleCall_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__IdAssignment_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getIdEStringParserRuleCall_1_1_0()); }
+	ruleEString{ after(grammarAccess.getWeightingFunctionAccess().getIdEStringParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__WeightingFunctionImplementationAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationEStringParserRuleCall_6_0()); }
+	ruleEString{ after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationEStringParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__WeightedMetricsAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_10_0()); }
+	ruleWeightedMetric{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__WeightedMetricsAssignment_11_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_11_1_0()); }
+	ruleWeightedMetric{ after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_11_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__MetricTypeAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeCrossReference_3_0()); }
+(
+{ before(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeEStringParserRuleCall_3_0_1()); }
+	ruleEString{ after(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeEStringParserRuleCall_3_0_1()); }
+)
+{ after(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeCrossReference_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__RelationalOperatorAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0()); }
+	ruleRelationalOperator{ after(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Specification__ValueAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0()); }
+	ruleEDouble{ after(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__MetricValue__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getMetricValueAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getMetricValueAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__ValueAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getValueEDoubleParserRuleCall_5_0()); }
+	ruleEDouble{ after(grammarAccess.getMetricValueAccess().getValueEDoubleParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__MeasuredEntityAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityCrossReference_7_0()); }
+(
+{ before(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityEStringParserRuleCall_7_0_1()); }
+	ruleEString{ after(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityEStringParserRuleCall_7_0_1()); }
+)
+{ after(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityCrossReference_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MetricValue__MetricTypeAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeCrossReference_9_0()); }
+(
+{ before(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeEStringParserRuleCall_9_0_1()); }
+	ruleEString{ after(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeEStringParserRuleCall_9_0_1()); }
+)
+{ after(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeCrossReference_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+rule__WeightedMetric__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getWeightedMetricAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__IdAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getIdEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getWeightedMetricAccess().getIdEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__MetricTypeAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeCrossReference_6_0()); }
+(
+{ before(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeEStringParserRuleCall_6_0_1()); }
+	ruleEString{ after(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeEStringParserRuleCall_6_0_1()); }
+)
+{ after(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeCrossReference_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedMetric__WeightAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedMetricAccess().getWeightEDoubleParserRuleCall_9_0()); }
+	ruleEDouble{ after(grammarAccess.getWeightedMetricAccess().getWeightEDoubleParserRuleCall_9_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/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.tokens b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.tokens
new file mode 100644
index 0000000000000000000000000000000000000000..e3dcc6e03429eae4190dda7c39d0d7ccf3f39350
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.tokens
@@ -0,0 +1,203 @@
+RULE_ID=5
+T__29=29
+T__28=28
+T__27=27
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=10
+T__21=21
+T__20=20
+T__93=93
+T__19=19
+T__94=94
+T__91=91
+T__92=92
+T__16=16
+T__15=15
+T__90=90
+T__18=18
+T__17=17
+T__12=12
+T__11=11
+T__14=14
+T__13=13
+T__99=99
+T__98=98
+T__97=97
+T__96=96
+T__95=95
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__85=85
+T__84=84
+T__87=87
+T__86=86
+T__89=89
+T__88=88
+RULE_ML_COMMENT=7
+RULE_STRING=4
+T__71=71
+T__72=72
+T__70=70
+T__76=76
+T__75=75
+T__74=74
+T__73=73
+T__79=79
+T__78=78
+T__77=77
+T__68=68
+T__69=69
+T__66=66
+T__67=67
+T__64=64
+T__65=65
+T__62=62
+T__63=63
+T__61=61
+T__60=60
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__107=107
+T__108=108
+T__103=103
+T__59=59
+T__104=104
+T__105=105
+T__106=106
+RULE_INT=6
+T__50=50
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__47=47
+T__44=44
+T__45=45
+T__48=48
+T__49=49
+T__102=102
+T__101=101
+T__100=100
+RULE_SL_COMMENT=8
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+RULE_WS=9
+'>='=26
+'=='=23
+'type'=60
+'e'=13
+'value'=61
+'minValueConstraint'=88
+'tactic'=96
+'OclConstraint'=93
+'objectives'=63
+'condition'=73
+'RANDOM'=18
+'referredAdaptationPoint'=56
+'{'=36
+'MIGRATE'=22
+'goal'=37
+'THIS'=15
+'triggeringEvent'=58
+'('=51
+':'=38
+'tactics'=40
+'default'=97
+']'=44
+'ImportDeclaration'=64
+'ActionReference'=76
+'refersTo'=77
+'output'=53
+'variationPossibility'=84
+'oclString'=94
+'valueConstraint'=91
+'DECREASE'=21
+'StopAction'=66
+'weightedMetrics'=101
+'BranchAction'=70
+'lastImpact'=99
+'metricType'=103
+'='=50
+'parameters'=45
+'NOT_SET'=14
+'LoopAction'=67
+'minValue'=80
+'objective'=57
+'GREATER_EQUAL'=32
+'measuredEntity'=106
+'AdaptationProcess'=35
+'Action'=54
+'<='=28
+'PropertyRange'=87
+'!='=24
+'<'=27
+'name'=79
+'E'=12
+'EQUAL'=29
+'counter'=69
+'then'=74
+'>'=25
+'NOT_EQUAL'=30
+'weightingFunction'=59
+'maxValue'=81
+'LESS_EQUAL'=34
+'.'=86
+'adaptableEntity'=82
+'LEAST_UTILIZED_FIRST'=16
+'else'=75
+'SetOfConfigurations'=90
+'LESS'=33
+'weightingFunctionImplementation'=100
+'Specification'=102
+'EDate'=11
+'if'=71
+'-'=85
+','=46
+'input'=49
+'INCREASE'=20
+'context'=72
+'implementedPlan'=48
+'GREATER'=31
+'WeightedMetric'=107
+'MOST_UTILIZED_FIRST'=17
+'repeat'=68
+'ModelVariableConfigurationRange'=78
+'Tactic'=47
+'ModelEntityConfigurationRange'=83
+')'=52
+'strategies'=41
+'StartAction'=65
+'operation'=55
+'specification'=95
+'}'=42
+'actions'=39
+'current'=98
+'weight'=108
+'description'=62
+'maxValueConstraint'=89
+'relationalOperator'=104
+'ALL'=19
+'MetricValue'=105
+'[id:'=43
+'variants'=92
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangLexer.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangLexer.java
new file mode 100644
index 0000000000000000000000000000000000000000..790419301b463be6624c07bba384c1e1d6ab4141
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangLexer.java
@@ -0,0 +1,4673 @@
+package edu.kit.ipd.descartes.mm.adaptation.sta.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 InternalStaLangLexer extends Lexer {
+    public static final int RULE_ID=5;
+    public static final int T__29=29;
+    public static final int T__28=28;
+    public static final int T__27=27;
+    public static final int T__26=26;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int EOF=-1;
+    public static final int T__93=93;
+    public static final int T__19=19;
+    public static final int T__94=94;
+    public static final int T__91=91;
+    public static final int T__92=92;
+    public static final int T__16=16;
+    public static final int T__90=90;
+    public static final int T__15=15;
+    public static final int T__18=18;
+    public static final int T__17=17;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__99=99;
+    public static final int T__98=98;
+    public static final int T__97=97;
+    public static final int T__96=96;
+    public static final int T__95=95;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__85=85;
+    public static final int T__84=84;
+    public static final int T__87=87;
+    public static final int T__86=86;
+    public static final int T__89=89;
+    public static final int T__88=88;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int RULE_STRING=4;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int T__70=70;
+    public static final int T__76=76;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__65=65;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__107=107;
+    public static final int T__108=108;
+    public static final int T__103=103;
+    public static final int T__59=59;
+    public static final int T__104=104;
+    public static final int T__105=105;
+    public static final int T__106=106;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__102=102;
+    public static final int T__101=101;
+    public static final int T__100=100;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int RULE_WS=9;
+
+    // delegates
+    // delegators
+
+    public InternalStaLangLexer() {;} 
+    public InternalStaLangLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalStaLangLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g"; }
+
+    // $ANTLR start "T__11"
+    public final void mT__11() throws RecognitionException {
+        try {
+            int _type = T__11;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11:7: ( 'EDate' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11:9: 'EDate'
+            {
+            match("EDate"); 
+
+
+            }
+
+            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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12:7: ( 'E' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12:9: 'E'
+            {
+            match('E'); 
+
+            }
+
+            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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13:7: ( 'e' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13:9: 'e'
+            {
+            match('e'); 
+
+            }
+
+            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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14:7: ( 'NOT_SET' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14:9: 'NOT_SET'
+            {
+            match("NOT_SET"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15:7: ( 'THIS' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15:9: 'THIS'
+            {
+            match("THIS"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:16:7: ( 'LEAST_UTILIZED_FIRST' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:16:9: 'LEAST_UTILIZED_FIRST'
+            {
+            match("LEAST_UTILIZED_FIRST"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__16"
+
+    // $ANTLR start "T__17"
+    public final void mT__17() throws RecognitionException {
+        try {
+            int _type = T__17;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:17:7: ( 'MOST_UTILIZED_FIRST' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:17:9: 'MOST_UTILIZED_FIRST'
+            {
+            match("MOST_UTILIZED_FIRST"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__17"
+
+    // $ANTLR start "T__18"
+    public final void mT__18() throws RecognitionException {
+        try {
+            int _type = T__18;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:18:7: ( 'RANDOM' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:18:9: 'RANDOM'
+            {
+            match("RANDOM"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__18"
+
+    // $ANTLR start "T__19"
+    public final void mT__19() throws RecognitionException {
+        try {
+            int _type = T__19;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:19:7: ( 'ALL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:19:9: 'ALL'
+            {
+            match("ALL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:20:7: ( 'INCREASE' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:20:9: 'INCREASE'
+            {
+            match("INCREASE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:21:7: ( 'DECREASE' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:21:9: 'DECREASE'
+            {
+            match("DECREASE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:22:7: ( 'MIGRATE' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:22:9: 'MIGRATE'
+            {
+            match("MIGRATE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__22"
+
+    // $ANTLR start "T__23"
+    public final void mT__23() throws RecognitionException {
+        try {
+            int _type = T__23;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:23:7: ( '==' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:23:9: '=='
+            {
+            match("=="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:24:7: ( '!=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:24:9: '!='
+            {
+            match("!="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__24"
+
+    // $ANTLR start "T__25"
+    public final void mT__25() throws RecognitionException {
+        try {
+            int _type = T__25;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:25:7: ( '>' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:25:9: '>'
+            {
+            match('>'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__25"
+
+    // $ANTLR start "T__26"
+    public final void mT__26() throws RecognitionException {
+        try {
+            int _type = T__26;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:26:7: ( '>=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:26:9: '>='
+            {
+            match(">="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__26"
+
+    // $ANTLR start "T__27"
+    public final void mT__27() throws RecognitionException {
+        try {
+            int _type = T__27;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:27:7: ( '<' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:27:9: '<'
+            {
+            match('<'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__27"
+
+    // $ANTLR start "T__28"
+    public final void mT__28() throws RecognitionException {
+        try {
+            int _type = T__28;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:28:7: ( '<=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:28:9: '<='
+            {
+            match("<="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__28"
+
+    // $ANTLR start "T__29"
+    public final void mT__29() throws RecognitionException {
+        try {
+            int _type = T__29;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:29:7: ( 'EQUAL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:29:9: 'EQUAL'
+            {
+            match("EQUAL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__29"
+
+    // $ANTLR start "T__30"
+    public final void mT__30() throws RecognitionException {
+        try {
+            int _type = T__30;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:30:7: ( 'NOT_EQUAL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:30:9: 'NOT_EQUAL'
+            {
+            match("NOT_EQUAL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__30"
+
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:31:7: ( 'GREATER' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:31:9: 'GREATER'
+            {
+            match("GREATER"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
+    // $ANTLR start "T__32"
+    public final void mT__32() throws RecognitionException {
+        try {
+            int _type = T__32;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:32:7: ( 'GREATER_EQUAL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:32:9: 'GREATER_EQUAL'
+            {
+            match("GREATER_EQUAL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__32"
+
+    // $ANTLR start "T__33"
+    public final void mT__33() throws RecognitionException {
+        try {
+            int _type = T__33;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:33:7: ( 'LESS' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:33:9: 'LESS'
+            {
+            match("LESS"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:34:7: ( 'LESS_EQUAL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:34:9: 'LESS_EQUAL'
+            {
+            match("LESS_EQUAL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__34"
+
+    // $ANTLR start "T__35"
+    public final void mT__35() throws RecognitionException {
+        try {
+            int _type = T__35;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:35:7: ( 'AdaptationProcess' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:35:9: 'AdaptationProcess'
+            {
+            match("AdaptationProcess"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__35"
+
+    // $ANTLR start "T__36"
+    public final void mT__36() throws RecognitionException {
+        try {
+            int _type = T__36;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:36:7: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:36:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__36"
+
+    // $ANTLR start "T__37"
+    public final void mT__37() throws RecognitionException {
+        try {
+            int _type = T__37;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:37:7: ( 'goal' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:37:9: 'goal'
+            {
+            match("goal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__37"
+
+    // $ANTLR start "T__38"
+    public final void mT__38() throws RecognitionException {
+        try {
+            int _type = T__38;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:38:7: ( ':' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:38:9: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__38"
+
+    // $ANTLR start "T__39"
+    public final void mT__39() throws RecognitionException {
+        try {
+            int _type = T__39;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:39:7: ( 'actions' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:39:9: 'actions'
+            {
+            match("actions"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__39"
+
+    // $ANTLR start "T__40"
+    public final void mT__40() throws RecognitionException {
+        try {
+            int _type = T__40;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:40:7: ( 'tactics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:40:9: 'tactics'
+            {
+            match("tactics"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__40"
+
+    // $ANTLR start "T__41"
+    public final void mT__41() throws RecognitionException {
+        try {
+            int _type = T__41;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:41:7: ( 'strategies' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:41:9: 'strategies'
+            {
+            match("strategies"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__41"
+
+    // $ANTLR start "T__42"
+    public final void mT__42() throws RecognitionException {
+        try {
+            int _type = T__42;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:42:7: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:42:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__42"
+
+    // $ANTLR start "T__43"
+    public final void mT__43() throws RecognitionException {
+        try {
+            int _type = T__43;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:43:7: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:43:9: '[id:'
+            {
+            match("[id:"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__43"
+
+    // $ANTLR start "T__44"
+    public final void mT__44() throws RecognitionException {
+        try {
+            int _type = T__44;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:44:7: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:44:9: ']'
+            {
+            match(']'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__44"
+
+    // $ANTLR start "T__45"
+    public final void mT__45() throws RecognitionException {
+        try {
+            int _type = T__45;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:45:7: ( 'parameters' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:45:9: 'parameters'
+            {
+            match("parameters"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__45"
+
+    // $ANTLR start "T__46"
+    public final void mT__46() throws RecognitionException {
+        try {
+            int _type = T__46;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:46:7: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:46:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__46"
+
+    // $ANTLR start "T__47"
+    public final void mT__47() throws RecognitionException {
+        try {
+            int _type = T__47;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:47:7: ( 'Tactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:47:9: 'Tactic'
+            {
+            match("Tactic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__47"
+
+    // $ANTLR start "T__48"
+    public final void mT__48() throws RecognitionException {
+        try {
+            int _type = T__48;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:48:7: ( 'implementedPlan' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:48:9: 'implementedPlan'
+            {
+            match("implementedPlan"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__48"
+
+    // $ANTLR start "T__49"
+    public final void mT__49() throws RecognitionException {
+        try {
+            int _type = T__49;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:49:7: ( 'input' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:49:9: 'input'
+            {
+            match("input"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__49"
+
+    // $ANTLR start "T__50"
+    public final void mT__50() throws RecognitionException {
+        try {
+            int _type = T__50;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:50:7: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:50:9: '='
+            {
+            match('='); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__50"
+
+    // $ANTLR start "T__51"
+    public final void mT__51() throws RecognitionException {
+        try {
+            int _type = T__51;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:51:7: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:51:9: '('
+            {
+            match('('); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__51"
+
+    // $ANTLR start "T__52"
+    public final void mT__52() throws RecognitionException {
+        try {
+            int _type = T__52;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:52:7: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:52:9: ')'
+            {
+            match(')'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__52"
+
+    // $ANTLR start "T__53"
+    public final void mT__53() throws RecognitionException {
+        try {
+            int _type = T__53;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:53:7: ( 'output' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:53:9: 'output'
+            {
+            match("output"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__53"
+
+    // $ANTLR start "T__54"
+    public final void mT__54() throws RecognitionException {
+        try {
+            int _type = T__54;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:54:7: ( 'Action' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:54:9: 'Action'
+            {
+            match("Action"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__54"
+
+    // $ANTLR start "T__55"
+    public final void mT__55() throws RecognitionException {
+        try {
+            int _type = T__55;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:55:7: ( 'operation' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:55:9: 'operation'
+            {
+            match("operation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__55"
+
+    // $ANTLR start "T__56"
+    public final void mT__56() throws RecognitionException {
+        try {
+            int _type = T__56;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:56:7: ( 'referredAdaptationPoint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:56:9: 'referredAdaptationPoint'
+            {
+            match("referredAdaptationPoint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__56"
+
+    // $ANTLR start "T__57"
+    public final void mT__57() throws RecognitionException {
+        try {
+            int _type = T__57;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:57:7: ( 'objective' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:57:9: 'objective'
+            {
+            match("objective"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__57"
+
+    // $ANTLR start "T__58"
+    public final void mT__58() throws RecognitionException {
+        try {
+            int _type = T__58;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:58:7: ( 'triggeringEvent' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:58:9: 'triggeringEvent'
+            {
+            match("triggeringEvent"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__58"
+
+    // $ANTLR start "T__59"
+    public final void mT__59() throws RecognitionException {
+        try {
+            int _type = T__59;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:59:7: ( 'weightingFunction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:59:9: 'weightingFunction'
+            {
+            match("weightingFunction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__59"
+
+    // $ANTLR start "T__60"
+    public final void mT__60() throws RecognitionException {
+        try {
+            int _type = T__60;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:60:7: ( 'type' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:60:9: 'type'
+            {
+            match("type"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__60"
+
+    // $ANTLR start "T__61"
+    public final void mT__61() throws RecognitionException {
+        try {
+            int _type = T__61;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:61:7: ( 'value' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:61:9: 'value'
+            {
+            match("value"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__61"
+
+    // $ANTLR start "T__62"
+    public final void mT__62() throws RecognitionException {
+        try {
+            int _type = T__62;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:62:7: ( 'description' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:62:9: 'description'
+            {
+            match("description"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__62"
+
+    // $ANTLR start "T__63"
+    public final void mT__63() throws RecognitionException {
+        try {
+            int _type = T__63;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:63:7: ( 'objectives' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:63:9: 'objectives'
+            {
+            match("objectives"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__63"
+
+    // $ANTLR start "T__64"
+    public final void mT__64() throws RecognitionException {
+        try {
+            int _type = T__64;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:64:7: ( 'ImportDeclaration' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:64:9: 'ImportDeclaration'
+            {
+            match("ImportDeclaration"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__64"
+
+    // $ANTLR start "T__65"
+    public final void mT__65() throws RecognitionException {
+        try {
+            int _type = T__65;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:65:7: ( 'StartAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:65:9: 'StartAction'
+            {
+            match("StartAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__65"
+
+    // $ANTLR start "T__66"
+    public final void mT__66() throws RecognitionException {
+        try {
+            int _type = T__66;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:66:7: ( 'StopAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:66:9: 'StopAction'
+            {
+            match("StopAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__66"
+
+    // $ANTLR start "T__67"
+    public final void mT__67() throws RecognitionException {
+        try {
+            int _type = T__67;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:67:7: ( 'LoopAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:67:9: 'LoopAction'
+            {
+            match("LoopAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__67"
+
+    // $ANTLR start "T__68"
+    public final void mT__68() throws RecognitionException {
+        try {
+            int _type = T__68;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:68:7: ( 'repeat' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:68:9: 'repeat'
+            {
+            match("repeat"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__68"
+
+    // $ANTLR start "T__69"
+    public final void mT__69() throws RecognitionException {
+        try {
+            int _type = T__69;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:69:7: ( 'counter' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:69:9: 'counter'
+            {
+            match("counter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__69"
+
+    // $ANTLR start "T__70"
+    public final void mT__70() throws RecognitionException {
+        try {
+            int _type = T__70;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:70:7: ( 'BranchAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:70:9: 'BranchAction'
+            {
+            match("BranchAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__70"
+
+    // $ANTLR start "T__71"
+    public final void mT__71() throws RecognitionException {
+        try {
+            int _type = T__71;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:71:7: ( 'if' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:71:9: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__71"
+
+    // $ANTLR start "T__72"
+    public final void mT__72() throws RecognitionException {
+        try {
+            int _type = T__72;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:72:7: ( 'context' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:72:9: 'context'
+            {
+            match("context"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:73:7: ( 'condition' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:73:9: 'condition'
+            {
+            match("condition"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:74:7: ( 'then' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:74:9: 'then'
+            {
+            match("then"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__74"
+
+    // $ANTLR start "T__75"
+    public final void mT__75() throws RecognitionException {
+        try {
+            int _type = T__75;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:75:7: ( 'else' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:75:9: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:76:7: ( 'ActionReference' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:76:9: 'ActionReference'
+            {
+            match("ActionReference"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:77:7: ( 'refersTo' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:77:9: 'refersTo'
+            {
+            match("refersTo"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
+
+    // $ANTLR start "T__78"
+    public final void mT__78() throws RecognitionException {
+        try {
+            int _type = T__78;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:78:7: ( 'ModelVariableConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:78:9: 'ModelVariableConfigurationRange'
+            {
+            match("ModelVariableConfigurationRange"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__78"
+
+    // $ANTLR start "T__79"
+    public final void mT__79() throws RecognitionException {
+        try {
+            int _type = T__79;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:79:7: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:79:9: 'name'
+            {
+            match("name"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__79"
+
+    // $ANTLR start "T__80"
+    public final void mT__80() throws RecognitionException {
+        try {
+            int _type = T__80;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:80:7: ( 'minValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:80:9: 'minValue'
+            {
+            match("minValue"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__80"
+
+    // $ANTLR start "T__81"
+    public final void mT__81() throws RecognitionException {
+        try {
+            int _type = T__81;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:81:7: ( 'maxValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:81:9: 'maxValue'
+            {
+            match("maxValue"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__81"
+
+    // $ANTLR start "T__82"
+    public final void mT__82() throws RecognitionException {
+        try {
+            int _type = T__82;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:82:7: ( 'adaptableEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:82:9: 'adaptableEntity'
+            {
+            match("adaptableEntity"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__82"
+
+    // $ANTLR start "T__83"
+    public final void mT__83() throws RecognitionException {
+        try {
+            int _type = T__83;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:83:7: ( 'ModelEntityConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:83:9: 'ModelEntityConfigurationRange'
+            {
+            match("ModelEntityConfigurationRange"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__83"
+
+    // $ANTLR start "T__84"
+    public final void mT__84() throws RecognitionException {
+        try {
+            int _type = T__84;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:84:7: ( 'variationPossibility' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:84:9: 'variationPossibility'
+            {
+            match("variationPossibility"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__84"
+
+    // $ANTLR start "T__85"
+    public final void mT__85() throws RecognitionException {
+        try {
+            int _type = T__85;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:85:7: ( '-' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:85:9: '-'
+            {
+            match('-'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__85"
+
+    // $ANTLR start "T__86"
+    public final void mT__86() throws RecognitionException {
+        try {
+            int _type = T__86;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:86:7: ( '.' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:86:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__86"
+
+    // $ANTLR start "T__87"
+    public final void mT__87() throws RecognitionException {
+        try {
+            int _type = T__87;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:87:7: ( 'PropertyRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:87:9: 'PropertyRange'
+            {
+            match("PropertyRange"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__87"
+
+    // $ANTLR start "T__88"
+    public final void mT__88() throws RecognitionException {
+        try {
+            int _type = T__88;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:88:7: ( 'minValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:88:9: 'minValueConstraint'
+            {
+            match("minValueConstraint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__88"
+
+    // $ANTLR start "T__89"
+    public final void mT__89() throws RecognitionException {
+        try {
+            int _type = T__89;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:89:7: ( 'maxValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:89:9: 'maxValueConstraint'
+            {
+            match("maxValueConstraint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__89"
+
+    // $ANTLR start "T__90"
+    public final void mT__90() throws RecognitionException {
+        try {
+            int _type = T__90;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:90:7: ( 'SetOfConfigurations' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:90:9: 'SetOfConfigurations'
+            {
+            match("SetOfConfigurations"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__90"
+
+    // $ANTLR start "T__91"
+    public final void mT__91() throws RecognitionException {
+        try {
+            int _type = T__91;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:91:7: ( 'valueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:91:9: 'valueConstraint'
+            {
+            match("valueConstraint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__91"
+
+    // $ANTLR start "T__92"
+    public final void mT__92() throws RecognitionException {
+        try {
+            int _type = T__92;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:92:7: ( 'variants' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:92:9: 'variants'
+            {
+            match("variants"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__92"
+
+    // $ANTLR start "T__93"
+    public final void mT__93() throws RecognitionException {
+        try {
+            int _type = T__93;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:93:7: ( 'OclConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:93:9: 'OclConstraint'
+            {
+            match("OclConstraint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__93"
+
+    // $ANTLR start "T__94"
+    public final void mT__94() throws RecognitionException {
+        try {
+            int _type = T__94;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:94:7: ( 'oclString' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:94:9: 'oclString'
+            {
+            match("oclString"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__94"
+
+    // $ANTLR start "T__95"
+    public final void mT__95() throws RecognitionException {
+        try {
+            int _type = T__95;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:95:7: ( 'specification' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:95:9: 'specification'
+            {
+            match("specification"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__95"
+
+    // $ANTLR start "T__96"
+    public final void mT__96() throws RecognitionException {
+        try {
+            int _type = T__96;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:96:7: ( 'tactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:96:9: 'tactic'
+            {
+            match("tactic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__96"
+
+    // $ANTLR start "T__97"
+    public final void mT__97() throws RecognitionException {
+        try {
+            int _type = T__97;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:97:7: ( 'default' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:97:9: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__97"
+
+    // $ANTLR start "T__98"
+    public final void mT__98() throws RecognitionException {
+        try {
+            int _type = T__98;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:98:7: ( 'current' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:98:9: 'current'
+            {
+            match("current"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__98"
+
+    // $ANTLR start "T__99"
+    public final void mT__99() throws RecognitionException {
+        try {
+            int _type = T__99;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:99:7: ( 'lastImpact' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:99:9: 'lastImpact'
+            {
+            match("lastImpact"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__99"
+
+    // $ANTLR start "T__100"
+    public final void mT__100() throws RecognitionException {
+        try {
+            int _type = T__100;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:100:8: ( 'weightingFunctionImplementation' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:100:10: 'weightingFunctionImplementation'
+            {
+            match("weightingFunctionImplementation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__100"
+
+    // $ANTLR start "T__101"
+    public final void mT__101() throws RecognitionException {
+        try {
+            int _type = T__101;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:101:8: ( 'weightedMetrics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:101:10: 'weightedMetrics'
+            {
+            match("weightedMetrics"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__101"
+
+    // $ANTLR start "T__102"
+    public final void mT__102() throws RecognitionException {
+        try {
+            int _type = T__102;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:102:8: ( 'Specification' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:102:10: 'Specification'
+            {
+            match("Specification"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__102"
+
+    // $ANTLR start "T__103"
+    public final void mT__103() throws RecognitionException {
+        try {
+            int _type = T__103;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:103:8: ( 'metricType' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:103:10: 'metricType'
+            {
+            match("metricType"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__103"
+
+    // $ANTLR start "T__104"
+    public final void mT__104() throws RecognitionException {
+        try {
+            int _type = T__104;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:104:8: ( 'relationalOperator' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:104:10: 'relationalOperator'
+            {
+            match("relationalOperator"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__104"
+
+    // $ANTLR start "T__105"
+    public final void mT__105() throws RecognitionException {
+        try {
+            int _type = T__105;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:105:8: ( 'MetricValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:105:10: 'MetricValue'
+            {
+            match("MetricValue"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__105"
+
+    // $ANTLR start "T__106"
+    public final void mT__106() throws RecognitionException {
+        try {
+            int _type = T__106;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:106:8: ( 'measuredEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:106:10: 'measuredEntity'
+            {
+            match("measuredEntity"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__106"
+
+    // $ANTLR start "T__107"
+    public final void mT__107() throws RecognitionException {
+        try {
+            int _type = T__107;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:107:8: ( 'WeightedMetric' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:107:10: 'WeightedMetric'
+            {
+            match("WeightedMetric"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__107"
+
+    // $ANTLR start "T__108"
+    public final void mT__108() throws RecognitionException {
+        try {
+            int _type = T__108;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:108:8: ( 'weight' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:108:10: 'weight'
+            {
+            match("weight"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__108"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15192:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15192:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15192:11: ( '^' )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='^') ) {
+                alt1=1;
+            }
+            switch (alt1) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15192: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;}
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15192: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15194:10: ( ( '0' .. '9' )+ )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15194:12: ( '0' .. '9' )+
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15194: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15194: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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196: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 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196: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 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196: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 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196: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 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196: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 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196: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 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15196: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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15198:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15198:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15198: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15198: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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15200:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15200:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15200: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15200: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);
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15200: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 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15200:41: ( '\\r' )? '\\n'
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15200:41: ( '\\r' )?
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
+
+                    if ( (LA9_0=='\r') ) {
+                        alt9=1;
+                    }
+                    switch (alt9) {
+                        case 1 :
+                            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15200: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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15202:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15202:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15202: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15204:16: ( . )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15204:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=105;
+        alt12 = dfa12.predict(input);
+        switch (alt12) {
+            case 1 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:10: T__11
+                {
+                mT__11(); 
+
+                }
+                break;
+            case 2 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:16: T__12
+                {
+                mT__12(); 
+
+                }
+                break;
+            case 3 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:22: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 4 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:28: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 5 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:34: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 6 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:40: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 7 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:46: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 8 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:52: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 9 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:58: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 10 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:64: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 11 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:70: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 12 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:76: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 13 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:82: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 14 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:88: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 15 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:94: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 16 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:100: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 17 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:106: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 18 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:112: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 19 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:118: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 20 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:124: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 21 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:130: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 22 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:136: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 23 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:142: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 24 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:148: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 25 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:154: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 26 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:160: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 27 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:166: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 28 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:172: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 29 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:178: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 30 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:184: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 31 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:190: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 32 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:196: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 33 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:202: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 34 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:208: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 35 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:214: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 36 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:220: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 37 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:226: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 38 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:232: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 39 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:238: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 40 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:244: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 41 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:250: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 42 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:256: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 43 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:262: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 44 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:268: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 45 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:274: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 46 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:280: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 47 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:286: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 48 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:292: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 49 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:298: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 50 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:304: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 51 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:310: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 52 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:316: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 53 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:322: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 54 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:328: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 55 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:334: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 56 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:340: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 57 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:346: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 58 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:352: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 59 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:358: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 60 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:364: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 61 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:370: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 62 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:376: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 63 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:382: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 64 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:388: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 65 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:394: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 66 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:400: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 67 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:406: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 68 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:412: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 69 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:418: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 70 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:424: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 71 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:430: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 72 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:436: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 73 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:442: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 74 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:448: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 75 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:454: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 76 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:460: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 77 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:466: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 78 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:472: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 79 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:478: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 80 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:484: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 81 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:490: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 82 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:496: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 83 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:502: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 84 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:508: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 85 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:514: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 86 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:520: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 87 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:526: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 88 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:532: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 89 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:538: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 90 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:544: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 91 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:551: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 92 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:558: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 93 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:565: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 94 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:572: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 95 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:579: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 96 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:586: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 97 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:593: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 98 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:600: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 99 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:607: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 100 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:615: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 101 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:624: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 102 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:636: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 103 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:652: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 104 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:668: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 105 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1:676: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String DFA12_eotS =
+        "\1\uffff\1\70\1\73\10\71\1\115\1\65\1\120\1\122\1\71\1\uffff\1\71"+
+        "\1\uffff\3\71\1\uffff\1\65\1\uffff\1\71\1\uffff\1\71\2\uffff\12"+
+        "\71\2\uffff\4\71\1\65\2\uffff\3\65\2\uffff\2\71\2\uffff\1\71\1\uffff"+
+        "\20\71\7\uffff\1\71\1\uffff\1\71\1\uffff\10\71\3\uffff\1\71\1\uffff"+
+        "\2\71\1\u00a7\2\uffff\22\71\2\uffff\4\71\5\uffff\16\71\1\u00d3\22"+
+        "\71\1\uffff\37\71\1\u0106\1\71\1\u0109\2\71\1\u010d\6\71\1\uffff"+
+        "\6\71\1\u011a\4\71\1\u011f\1\u0120\32\71\1\u013b\10\71\1\u0144\1"+
+        "\u0145\1\uffff\2\71\1\uffff\3\71\1\uffff\14\71\1\uffff\4\71\2\uffff"+
+        "\4\71\1\u0160\10\71\1\u016b\14\71\1\uffff\10\71\2\uffff\2\71\1\u0183"+
+        "\10\71\1\u018c\1\71\1\u018f\6\71\1\u0197\5\71\1\uffff\1\u019d\5"+
+        "\71\1\u01a3\1\71\1\u01a7\1\71\1\uffff\25\71\1\u01be\1\71\1\uffff"+
+        "\4\71\1\u01c4\3\71\1\uffff\2\71\1\uffff\3\71\1\u01ce\1\u01cf\1\71"+
+        "\1\u01d1\1\uffff\5\71\1\uffff\5\71\1\uffff\3\71\1\uffff\4\71\1\u01e3"+
+        "\4\71\1\u01e8\1\u01e9\1\71\1\u01eb\11\71\1\uffff\5\71\1\uffff\5"+
+        "\71\1\u01ff\1\71\1\u0201\1\71\2\uffff\1\71\1\uffff\11\71\1\u020d"+
+        "\5\71\1\u0213\1\71\1\uffff\4\71\2\uffff\1\71\1\uffff\1\71\1\u021c"+
+        "\1\u021e\6\71\1\u0225\11\71\1\uffff\1\71\1\uffff\7\71\1\u0237\1"+
+        "\u0239\1\u023a\1\71\1\uffff\5\71\1\uffff\5\71\1\u0246\2\71\1\uffff"+
+        "\1\71\1\uffff\6\71\1\uffff\1\71\1\u0251\1\u0252\12\71\1\u025d\1"+
+        "\71\1\u025f\1\71\1\uffff\1\u0261\2\uffff\10\71\1\u026a\2\71\1\uffff"+
+        "\3\71\1\u0270\3\71\1\u0274\2\71\2\uffff\3\71\1\u027a\6\71\1\uffff"+
+        "\1\71\1\uffff\1\71\1\uffff\6\71\1\u0289\1\u028a\1\uffff\5\71\1\uffff"+
+        "\3\71\1\uffff\5\71\1\uffff\16\71\2\uffff\2\71\1\u02a8\15\71\1\u02b6"+
+        "\2\71\1\u02b9\10\71\1\u02c2\1\uffff\3\71\1\u02c6\1\u02c7\10\71\1"+
+        "\uffff\2\71\1\uffff\10\71\1\uffff\2\71\1\u02dc\2\uffff\1\u02dd\5"+
+        "\71\1\u02e3\1\71\1\u02e5\1\u02e6\1\u02e7\3\71\1\u02eb\1\u02ec\4"+
+        "\71\2\uffff\5\71\1\uffff\1\71\3\uffff\3\71\2\uffff\10\71\1\u0302"+
+        "\1\u0303\2\71\1\u0307\10\71\2\uffff\1\71\1\u0311\1\71\1\uffff\2"+
+        "\71\1\u0315\1\u0316\1\71\1\u0318\3\71\1\uffff\2\71\1\u031e\2\uffff"+
+        "\1\u031f\1\uffff\4\71\1\u0324\2\uffff\4\71\1\uffff\6\71\1\u032f"+
+        "\3\71\1\uffff\16\71\1\u0341\2\71\1\uffff\1\71\1\u0345\1\u0346\2"+
+        "\uffff";
+    static final String DFA12_eofS =
+        "\u0347\uffff";
+    static final String DFA12_minS =
+        "\1\0\2\60\1\117\1\110\1\105\1\111\1\101\1\114\1\116\1\105\4\75\1"+
+        "\122\1\uffff\1\157\1\uffff\1\143\1\141\1\160\1\uffff\1\151\1\uffff"+
+        "\1\141\1\uffff\1\146\2\uffff\1\142\2\145\1\141\2\145\1\157\1\162"+
+        "\2\141\2\uffff\1\162\1\143\1\141\1\145\1\101\2\uffff\2\0\1\52\2"+
+        "\uffff\1\141\1\125\2\uffff\1\163\1\uffff\1\124\1\111\1\143\1\101"+
+        "\1\157\1\123\1\107\1\144\1\164\1\116\1\114\1\141\1\164\1\103\1\160"+
+        "\1\103\7\uffff\1\105\1\uffff\1\141\1\uffff\1\164\1\141\1\143\1\151"+
+        "\1\160\1\145\1\162\1\145\3\uffff\1\162\1\uffff\2\160\1\60\2\uffff"+
+        "\1\164\1\145\1\152\1\154\1\146\1\151\1\154\1\146\1\141\1\164\1\145"+
+        "\1\156\1\162\1\141\1\155\1\156\1\170\1\141\2\uffff\1\157\1\154\1"+
+        "\163\1\151\5\uffff\1\164\1\101\1\145\1\137\1\123\1\164\2\123\1\160"+
+        "\1\124\1\122\1\145\1\162\1\104\1\60\1\160\1\151\1\122\1\157\1\122"+
+        "\1\101\1\154\1\151\1\160\1\164\1\147\1\145\1\156\1\141\1\143\1\141"+
+        "\1\154\1\165\1\uffff\1\160\1\162\1\145\1\123\2\145\1\141\1\147\1"+
+        "\165\1\151\1\143\1\141\1\162\1\160\1\117\1\143\1\156\1\144\1\162"+
+        "\1\156\1\145\2\126\1\162\1\163\1\160\1\103\1\164\1\147\1\145\1\114"+
+        "\1\60\1\105\1\60\1\151\1\124\1\60\1\101\1\137\1\101\1\154\1\151"+
+        "\1\117\1\uffff\1\164\1\157\1\105\1\162\1\105\1\124\1\60\1\157\1"+
+        "\164\1\151\1\147\2\60\1\164\1\151\1\155\1\145\1\164\1\165\1\141"+
+        "\1\143\1\164\1\162\1\141\1\164\1\150\1\145\1\141\1\162\1\165\1\164"+
+        "\1\101\1\146\1\151\1\164\1\145\1\151\1\145\1\143\1\60\2\141\1\151"+
+        "\1\165\1\145\1\157\1\111\1\150\2\60\1\uffff\1\105\1\121\1\uffff"+
+        "\1\143\1\137\1\105\1\uffff\1\143\1\125\1\124\1\105\1\143\1\115\1"+
+        "\141\1\156\1\101\1\164\1\101\1\105\1\uffff\1\156\1\141\1\143\1\145"+
+        "\2\uffff\1\145\1\146\1\145\1\155\1\60\3\164\2\162\1\164\1\151\1"+
+        "\164\1\60\1\156\1\151\1\154\1\101\1\143\1\103\1\146\1\145\1\170"+
+        "\1\164\1\156\1\150\1\uffff\2\154\1\143\2\162\1\156\1\155\1\164\2"+
+        "\uffff\1\124\1\125\1\60\1\125\1\121\1\164\1\124\1\105\1\141\1\156"+
+        "\1\126\1\60\1\164\1\60\1\123\1\104\1\123\1\122\1\163\1\142\1\60"+
+        "\1\162\1\147\1\151\1\164\1\145\1\uffff\1\60\3\151\1\145\1\124\1"+
+        "\60\1\157\1\60\1\157\1\uffff\1\151\1\164\1\160\1\164\1\143\1\164"+
+        "\1\157\1\151\1\162\1\164\1\151\1\164\1\101\2\165\1\124\1\145\1\164"+
+        "\1\163\1\160\1\145\1\60\1\101\1\uffff\1\124\1\125\1\151\1\111\1"+
+        "\60\1\162\1\164\1\141\1\uffff\1\151\1\145\1\uffff\1\105\1\145\1"+
+        "\105\2\60\1\154\1\60\1\uffff\2\151\1\143\1\145\1\156\1\uffff\1\157"+
+        "\1\166\1\156\1\144\1\157\1\uffff\2\156\1\144\1\uffff\1\156\1\157"+
+        "\1\163\1\164\1\60\1\164\1\151\1\156\1\143\2\60\1\157\1\60\1\143"+
+        "\2\145\1\171\1\144\1\171\1\164\1\141\1\144\1\uffff\1\114\1\111\1"+
+        "\101\1\157\1\114\1\uffff\2\151\1\154\1\157\1\146\1\60\1\143\1\60"+
+        "\1\105\2\uffff\1\145\1\uffff\1\156\1\145\1\141\1\162\1\164\1\156"+
+        "\1\145\1\147\1\101\1\60\1\141\1\147\1\115\1\163\1\156\1\60\1\151"+
+        "\1\uffff\1\151\1\157\1\146\1\141\2\uffff\1\156\1\uffff\1\164\2\60"+
+        "\1\160\1\105\1\122\1\162\1\143\1\115\1\60\2\114\1\156\1\111\1\141"+
+        "\1\164\1\165\1\156\1\145\1\uffff\1\154\1\uffff\1\121\1\105\1\147"+
+        "\1\163\1\164\1\163\1\145\3\60\1\144\1\uffff\1\154\1\106\1\145\1"+
+        "\164\1\120\1\uffff\2\157\1\156\1\151\1\164\1\60\1\151\1\157\1\uffff"+
+        "\1\157\1\uffff\1\145\1\156\2\141\1\164\1\145\1\uffff\1\111\2\60"+
+        "\1\132\1\142\1\171\1\145\1\120\1\162\1\141\1\125\1\156\1\105\1\60"+
+        "\1\151\1\60\1\144\1\uffff\1\60\2\uffff\1\141\1\117\1\165\1\164\1"+
+        "\162\1\157\2\156\1\60\1\147\1\151\1\uffff\1\157\2\156\1\60\1\164"+
+        "\1\156\1\151\1\60\1\164\1\132\2\uffff\1\105\1\154\1\103\1\60\1\162"+
+        "\1\145\1\162\1\101\1\164\1\166\1\uffff\1\157\1\uffff\1\120\1\uffff"+
+        "\2\160\1\156\1\162\1\141\1\163\2\60\1\uffff\1\165\1\157\1\156\2"+
+        "\163\1\uffff\1\151\1\147\1\156\1\uffff\1\162\1\105\1\104\1\145\1"+
+        "\157\1\uffff\1\157\1\156\1\141\1\114\1\151\1\145\1\156\1\154\1\164"+
+        "\1\145\1\143\2\151\1\163\2\uffff\1\162\1\156\1\60\3\164\1\145\1"+
+        "\164\1\151\1\104\1\137\1\103\1\156\2\143\1\164\1\60\1\164\1\156"+
+        "\1\60\2\141\1\162\1\164\1\143\1\156\1\151\1\141\1\60\1\uffff\2\162"+
+        "\1\171\2\60\1\143\1\137\1\106\1\157\1\146\2\145\1\151\1\uffff\1"+
+        "\171\1\164\1\uffff\1\156\1\164\1\141\1\151\1\163\1\164\1\142\1\164"+
+        "\1\uffff\2\141\1\60\2\uffff\1\60\1\106\1\111\1\156\1\151\1\163\1"+
+        "\60\1\157\3\60\1\151\1\164\1\157\2\60\4\151\2\uffff\1\111\1\122"+
+        "\1\146\1\147\1\163\1\uffff\1\156\3\uffff\2\157\1\156\2\uffff\1\154"+
+        "\1\157\2\156\1\122\1\123\1\151\1\165\2\60\1\156\1\162\1\60\1\151"+
+        "\1\156\2\164\1\123\1\124\1\147\1\162\2\uffff\1\120\1\60\1\155\1"+
+        "\uffff\1\164\1\163\2\60\1\124\1\60\1\165\1\141\1\157\1\uffff\1\160"+
+        "\1\171\1\60\2\uffff\1\60\1\uffff\1\162\1\164\1\151\1\154\1\60\2"+
+        "\uffff\1\141\1\151\1\156\1\145\1\uffff\1\164\1\157\1\164\1\155\1"+
+        "\151\1\156\1\60\1\145\1\157\1\122\1\uffff\2\156\1\141\1\164\1\122"+
+        "\1\156\2\141\1\147\1\164\1\156\1\145\1\151\1\147\1\60\1\157\1\145"+
+        "\1\uffff\1\156\2\60\2\uffff";
+    static final String DFA12_maxS =
+        "\1\uffff\2\172\1\117\1\141\2\157\1\101\1\144\1\155\1\105\4\75\1"+
+        "\122\1\uffff\1\157\1\uffff\1\144\1\171\1\164\1\uffff\1\151\1\uffff"+
+        "\1\141\1\uffff\1\156\2\uffff\1\165\2\145\1\141\1\145\1\164\1\165"+
+        "\1\162\1\141\1\151\2\uffff\1\162\1\143\1\141\1\145\1\172\2\uffff"+
+        "\2\uffff\1\57\2\uffff\1\141\1\125\2\uffff\1\163\1\uffff\1\124\1"+
+        "\111\1\143\1\123\1\157\1\123\1\107\1\144\1\164\1\116\1\114\1\141"+
+        "\1\164\1\103\1\160\1\103\7\uffff\1\105\1\uffff\1\141\1\uffff\1\164"+
+        "\1\141\1\143\1\151\1\160\1\145\1\162\1\145\3\uffff\1\162\1\uffff"+
+        "\2\160\1\172\2\uffff\1\164\1\145\1\152\1\154\1\160\1\151\1\162\1"+
+        "\163\1\157\1\164\1\145\1\165\1\162\1\141\1\155\1\156\1\170\1\164"+
+        "\2\uffff\1\157\1\154\1\163\1\151\5\uffff\1\164\1\101\1\145\1\137"+
+        "\1\123\1\164\2\123\1\160\1\124\1\122\1\145\1\162\1\104\1\172\1\160"+
+        "\1\151\1\122\1\157\1\122\1\101\1\154\1\151\1\160\1\164\1\147\1\145"+
+        "\1\156\1\141\1\143\1\141\1\154\1\165\1\uffff\1\160\1\162\1\145\1"+
+        "\123\2\145\1\141\1\147\1\165\1\151\1\143\1\141\1\162\1\160\1\117"+
+        "\1\143\1\156\1\164\1\162\1\156\1\145\2\126\1\162\1\163\1\160\1\103"+
+        "\1\164\1\147\1\145\1\114\1\172\1\123\1\172\1\151\1\124\1\172\1\101"+
+        "\1\137\1\101\1\154\1\151\1\117\1\uffff\1\164\1\157\1\105\1\162\1"+
+        "\105\1\124\1\172\1\157\1\164\1\151\1\147\2\172\1\164\1\151\1\155"+
+        "\1\145\1\164\1\165\1\141\1\143\1\164\1\162\1\141\1\164\1\150\1\145"+
+        "\1\141\1\162\1\165\1\164\1\101\1\146\1\151\1\164\1\145\1\151\1\145"+
+        "\1\143\1\172\2\141\1\151\1\165\1\145\1\157\1\111\1\150\2\172\1\uffff"+
+        "\1\105\1\121\1\uffff\1\143\1\137\1\105\1\uffff\1\143\1\125\1\124"+
+        "\1\126\1\143\1\115\1\141\1\156\1\101\1\164\1\101\1\105\1\uffff\1"+
+        "\156\1\141\1\143\1\145\2\uffff\1\145\1\146\1\145\1\155\1\172\3\164"+
+        "\1\162\1\163\1\164\1\151\1\164\1\172\1\164\1\151\1\154\1\101\1\143"+
+        "\1\103\1\146\1\145\1\170\1\164\1\156\1\150\1\uffff\2\154\1\143\2"+
+        "\162\1\156\1\155\1\164\2\uffff\1\124\1\125\1\172\1\125\1\121\1\164"+
+        "\1\124\1\105\1\141\1\156\1\126\1\172\1\164\1\172\1\123\1\104\1\123"+
+        "\1\122\1\163\1\142\1\172\1\162\1\147\1\151\1\164\1\145\1\uffff\1"+
+        "\172\3\151\1\145\1\124\1\172\1\157\1\172\1\157\1\uffff\1\151\1\164"+
+        "\1\160\1\164\1\143\1\164\1\157\1\151\1\162\1\164\1\151\1\164\1\101"+
+        "\2\165\1\124\1\145\1\164\1\163\1\160\1\145\1\172\1\101\1\uffff\1"+
+        "\124\1\125\1\151\1\111\1\172\1\162\1\164\1\141\1\uffff\1\151\1\145"+
+        "\1\uffff\1\105\1\145\1\105\2\172\1\154\1\172\1\uffff\2\151\1\143"+
+        "\1\145\1\156\1\uffff\1\157\1\166\1\156\1\144\1\157\1\uffff\2\156"+
+        "\1\144\1\uffff\1\156\1\157\1\163\1\164\1\172\1\164\1\151\1\156\1"+
+        "\143\2\172\1\157\1\172\1\143\2\145\1\171\1\144\1\171\1\164\1\141"+
+        "\1\144\1\uffff\1\114\1\111\1\101\1\157\1\114\1\uffff\2\151\1\154"+
+        "\1\157\1\146\1\172\1\143\1\172\1\105\2\uffff\1\145\1\uffff\1\156"+
+        "\1\145\1\141\1\162\1\164\1\156\1\145\1\147\1\101\1\172\1\141\1\147"+
+        "\1\115\1\163\1\156\1\172\1\151\1\uffff\1\151\1\157\1\146\1\141\2"+
+        "\uffff\1\156\1\uffff\1\164\2\172\1\160\1\105\1\122\1\162\1\143\1"+
+        "\115\1\172\2\114\1\156\1\111\1\141\1\164\1\165\1\156\1\145\1\uffff"+
+        "\1\154\1\uffff\1\121\1\105\1\147\1\163\1\164\1\163\1\145\3\172\1"+
+        "\144\1\uffff\1\154\1\106\1\145\1\164\1\120\1\uffff\2\157\1\156\1"+
+        "\151\1\164\1\172\1\151\1\157\1\uffff\1\157\1\uffff\1\145\1\156\2"+
+        "\141\1\164\1\145\1\uffff\1\111\2\172\1\132\1\142\1\171\1\145\1\120"+
+        "\1\162\1\141\1\125\1\156\1\105\1\172\1\151\1\172\1\144\1\uffff\1"+
+        "\172\2\uffff\1\141\1\117\1\165\1\164\1\162\1\157\2\156\1\172\1\147"+
+        "\1\151\1\uffff\1\157\2\156\1\172\1\164\1\156\1\151\1\172\1\164\1"+
+        "\132\2\uffff\1\105\1\154\1\103\1\172\1\162\1\145\1\162\1\101\1\164"+
+        "\1\166\1\uffff\1\157\1\uffff\1\120\1\uffff\2\160\1\156\1\162\1\141"+
+        "\1\163\2\172\1\uffff\1\165\1\157\1\156\2\163\1\uffff\1\151\1\147"+
+        "\1\156\1\uffff\1\162\1\105\1\104\1\145\1\157\1\uffff\1\157\1\156"+
+        "\1\141\1\114\1\151\1\145\1\156\1\154\1\164\1\145\1\143\2\151\1\163"+
+        "\2\uffff\1\162\1\156\1\172\3\164\1\145\1\164\1\151\1\104\1\137\1"+
+        "\103\1\156\2\143\1\164\1\172\1\164\1\156\1\172\2\141\1\162\1\164"+
+        "\1\143\1\156\1\151\1\141\1\172\1\uffff\2\162\1\171\2\172\1\143\1"+
+        "\137\1\106\1\157\1\146\2\145\1\151\1\uffff\1\171\1\164\1\uffff\1"+
+        "\156\1\164\1\141\1\151\1\163\1\164\1\142\1\164\1\uffff\2\141\1\172"+
+        "\2\uffff\1\172\1\106\1\111\1\156\1\151\1\163\1\172\1\157\3\172\1"+
+        "\151\1\164\1\157\2\172\4\151\2\uffff\1\111\1\122\1\146\1\147\1\163"+
+        "\1\uffff\1\156\3\uffff\2\157\1\156\2\uffff\1\154\1\157\2\156\1\122"+
+        "\1\123\1\151\1\165\2\172\1\156\1\162\1\172\1\151\1\156\2\164\1\123"+
+        "\1\124\1\147\1\162\2\uffff\1\120\1\172\1\155\1\uffff\1\164\1\163"+
+        "\2\172\1\124\1\172\1\165\1\141\1\157\1\uffff\1\160\1\171\1\172\2"+
+        "\uffff\1\172\1\uffff\1\162\1\164\1\151\1\154\1\172\2\uffff\1\141"+
+        "\1\151\1\156\1\145\1\uffff\1\164\1\157\1\164\1\155\1\151\1\156\1"+
+        "\172\1\145\1\157\1\122\1\uffff\2\156\1\141\1\164\1\122\1\156\2\141"+
+        "\1\147\1\164\1\156\1\145\1\151\1\147\1\172\1\157\1\145\1\uffff\1"+
+        "\156\2\172\2\uffff";
+    static final String DFA12_acceptS =
+        "\20\uffff\1\32\1\uffff\1\34\3\uffff\1\40\1\uffff\1\42\1\uffff\1"+
+        "\44\1\uffff\1\51\1\52\12\uffff\1\113\1\114\5\uffff\1\143\1\144\3"+
+        "\uffff\1\150\1\151\2\uffff\1\2\1\143\1\uffff\1\3\20\uffff\1\15\1"+
+        "\50\1\16\1\20\1\17\1\22\1\21\1\uffff\1\32\1\uffff\1\34\10\uffff"+
+        "\1\40\1\41\1\42\1\uffff\1\44\3\uffff\1\51\1\52\22\uffff\1\113\1"+
+        "\114\4\uffff\1\144\1\145\1\146\1\147\1\150\41\uffff\1\75\53\uffff"+
+        "\1\11\62\uffff\1\101\2\uffff\1\5\3\uffff\1\27\14\uffff\1\33\4\uffff"+
+        "\1\62\1\100\32\uffff\1\105\10\uffff\1\1\1\23\32\uffff\1\47\12\uffff"+
+        "\1\63\27\uffff\1\45\10\uffff\1\10\2\uffff\1\54\7\uffff\1\126\5\uffff"+
+        "\1\53\5\uffff\1\72\3\uffff\1\142\26\uffff\1\4\5\uffff\1\14\11\uffff"+
+        "\1\25\1\35\1\uffff\1\36\21\uffff\1\127\4\uffff\1\73\1\76\1\uffff"+
+        "\1\130\23\uffff\1\12\1\uffff\1\13\13\uffff\1\103\5\uffff\1\122\10"+
+        "\uffff\1\106\1\uffff\1\107\6\uffff\1\24\21\uffff\1\55\1\uffff\1"+
+        "\57\1\124\13\uffff\1\77\12\uffff\1\30\1\71\12\uffff\1\37\1\uffff"+
+        "\1\43\1\uffff\1\65\10\uffff\1\70\5\uffff\1\135\3\uffff\1\131\5\uffff"+
+        "\1\137\16\uffff\1\64\1\67\35\uffff\1\74\15\uffff\1\26\2\uffff\1"+
+        "\125\10\uffff\1\134\3\uffff\1\115\1\123\24\uffff\1\140\1\141\5\uffff"+
+        "\1\102\1\uffff\1\110\1\60\1\46\3\uffff\1\133\1\121\25\uffff\1\31"+
+        "\1\66\3\uffff\1\61\11\uffff\1\136\3\uffff\1\116\1\117\1\uffff\1"+
+        "\7\5\uffff\1\120\1\6\4\uffff\1\112\12\uffff\1\56\21\uffff\1\111"+
+        "\3\uffff\1\104\1\132";
+    static final String DFA12_specialS =
+        "\1\0\60\uffff\1\2\1\1\u0314\uffff}>";
+    static final String[] DFA12_transitionS = {
+            "\11\65\2\64\2\65\1\64\22\65\1\64\1\14\1\61\4\65\1\62\1\34\1"+
+            "\35\2\65\1\32\1\50\1\51\1\63\12\60\1\22\1\65\1\16\1\13\1\15"+
+            "\2\65\1\10\1\45\1\57\1\12\1\1\1\57\1\17\1\57\1\11\2\57\1\5\1"+
+            "\6\1\3\1\53\1\52\1\57\1\7\1\43\1\4\2\57\1\55\3\57\1\27\1\65"+
+            "\1\30\1\56\1\57\1\65\1\23\1\57\1\44\1\42\1\2\1\57\1\21\1\57"+
+            "\1\33\2\57\1\54\1\47\1\46\1\36\1\31\1\57\1\37\1\25\1\24\1\57"+
+            "\1\41\1\40\3\57\1\20\1\65\1\26\uff82\65",
+            "\12\71\7\uffff\3\71\1\66\14\71\1\67\11\71\4\uffff\1\71\1\uffff"+
+            "\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\13\71\1\72\16\71",
+            "\1\74",
+            "\1\75\30\uffff\1\76",
+            "\1\77\51\uffff\1\100",
+            "\1\102\5\uffff\1\101\25\uffff\1\104\11\uffff\1\103",
+            "\1\105",
+            "\1\106\26\uffff\1\110\1\107",
+            "\1\111\36\uffff\1\112",
+            "\1\113",
+            "\1\114",
+            "\1\116",
+            "\1\117",
+            "\1\121",
+            "\1\123",
+            "",
+            "\1\125",
+            "",
+            "\1\127\1\130",
+            "\1\131\6\uffff\1\134\11\uffff\1\132\6\uffff\1\133",
+            "\1\136\3\uffff\1\135",
+            "",
+            "\1\140",
+            "",
+            "\1\142",
+            "",
+            "\1\146\6\uffff\1\144\1\145",
+            "",
+            "",
+            "\1\153\1\154\14\uffff\1\152\4\uffff\1\151",
+            "\1\155",
+            "\1\156",
+            "\1\157",
+            "\1\160",
+            "\1\162\12\uffff\1\163\3\uffff\1\161",
+            "\1\164\5\uffff\1\165",
+            "\1\166",
+            "\1\167",
+            "\1\171\3\uffff\1\172\3\uffff\1\170",
+            "",
+            "",
+            "\1\175",
+            "\1\176",
+            "\1\177",
+            "\1\u0080",
+            "\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\0\u0082",
+            "\0\u0082",
+            "\1\u0083\4\uffff\1\u0084",
+            "",
+            "",
+            "\1\u0086",
+            "\1\u0087",
+            "",
+            "",
+            "\1\u0088",
+            "",
+            "\1\u0089",
+            "\1\u008a",
+            "\1\u008b",
+            "\1\u008c\21\uffff\1\u008d",
+            "\1\u008e",
+            "\1\u008f",
+            "\1\u0090",
+            "\1\u0091",
+            "\1\u0092",
+            "\1\u0093",
+            "\1\u0094",
+            "\1\u0095",
+            "\1\u0096",
+            "\1\u0097",
+            "\1\u0098",
+            "\1\u0099",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u009a",
+            "",
+            "\1\u009b",
+            "",
+            "\1\u009c",
+            "\1\u009d",
+            "\1\u009e",
+            "\1\u009f",
+            "\1\u00a0",
+            "\1\u00a1",
+            "\1\u00a2",
+            "\1\u00a3",
+            "",
+            "",
+            "",
+            "\1\u00a4",
+            "",
+            "\1\u00a5",
+            "\1\u00a6",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u00a8",
+            "\1\u00a9",
+            "\1\u00aa",
+            "\1\u00ab",
+            "\1\u00ac\5\uffff\1\u00ae\3\uffff\1\u00ad",
+            "\1\u00af",
+            "\1\u00b0\5\uffff\1\u00b1",
+            "\1\u00b3\14\uffff\1\u00b2",
+            "\1\u00b4\15\uffff\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b9\6\uffff\1\u00b8",
+            "\1\u00ba",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "\1\u00c0\22\uffff\1\u00bf",
+            "",
+            "",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\1\u00c3",
+            "\1\u00c4",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00c5",
+            "\1\u00c6",
+            "\1\u00c7",
+            "\1\u00c8",
+            "\1\u00c9",
+            "\1\u00ca",
+            "\1\u00cb",
+            "\1\u00cc",
+            "\1\u00cd",
+            "\1\u00ce",
+            "\1\u00cf",
+            "\1\u00d0",
+            "\1\u00d1",
+            "\1\u00d2",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00d4",
+            "\1\u00d5",
+            "\1\u00d6",
+            "\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\u00da",
+            "\1\u00db",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\1\u00e4",
+            "\1\u00e5",
+            "",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\1\u00e8",
+            "\1\u00e9",
+            "\1\u00ea",
+            "\1\u00eb",
+            "\1\u00ec",
+            "\1\u00ed",
+            "\1\u00ee",
+            "\1\u00ef",
+            "\1\u00f0",
+            "\1\u00f1",
+            "\1\u00f2",
+            "\1\u00f3",
+            "\1\u00f4",
+            "\1\u00f5",
+            "\1\u00f6",
+            "\1\u00f8\17\uffff\1\u00f7",
+            "\1\u00f9",
+            "\1\u00fa",
+            "\1\u00fb",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0108\15\uffff\1\u0107",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u010a",
+            "\1\u010b",
+            "\12\71\7\uffff\32\71\4\uffff\1\u010c\1\uffff\32\71",
+            "\1\u010e",
+            "\1\u010f",
+            "\1\u0110",
+            "\1\u0111",
+            "\1\u0112",
+            "\1\u0113",
+            "",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u011b",
+            "\1\u011c",
+            "\1\u011d",
+            "\1\u011e",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0121",
+            "\1\u0122",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
+            "\1\u012d",
+            "\1\u012e",
+            "\1\u012f",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132",
+            "\1\u0133",
+            "\1\u0134",
+            "\1\u0135",
+            "\1\u0136",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\u0139",
+            "\1\u013a",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u013c",
+            "\1\u013d",
+            "\1\u013e",
+            "\1\u013f",
+            "\1\u0140",
+            "\1\u0141",
+            "\1\u0142",
+            "\1\u0143",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0146",
+            "\1\u0147",
+            "",
+            "\1\u0148",
+            "\1\u0149",
+            "\1\u014a",
+            "",
+            "\1\u014b",
+            "\1\u014c",
+            "\1\u014d",
+            "\1\u014f\20\uffff\1\u014e",
+            "\1\u0150",
+            "\1\u0151",
+            "\1\u0152",
+            "\1\u0153",
+            "\1\u0154",
+            "\1\u0155",
+            "\1\u0156",
+            "\1\u0157",
+            "",
+            "\1\u0158",
+            "\1\u0159",
+            "\1\u015a",
+            "\1\u015b",
+            "",
+            "",
+            "\1\u015c",
+            "\1\u015d",
+            "\1\u015e",
+            "\1\u015f",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0161",
+            "\1\u0162",
+            "\1\u0163",
+            "\1\u0164",
+            "\1\u0165\1\u0166",
+            "\1\u0167",
+            "\1\u0168",
+            "\1\u0169",
+            "\12\71\7\uffff\2\71\1\u016a\27\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u016d\5\uffff\1\u016c",
+            "\1\u016e",
+            "\1\u016f",
+            "\1\u0170",
+            "\1\u0171",
+            "\1\u0172",
+            "\1\u0173",
+            "\1\u0174",
+            "\1\u0175",
+            "\1\u0176",
+            "\1\u0177",
+            "\1\u0178",
+            "",
+            "\1\u0179",
+            "\1\u017a",
+            "\1\u017b",
+            "\1\u017c",
+            "\1\u017d",
+            "\1\u017e",
+            "\1\u017f",
+            "\1\u0180",
+            "",
+            "",
+            "\1\u0181",
+            "\1\u0182",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0184",
+            "\1\u0185",
+            "\1\u0186",
+            "\1\u0187",
+            "\1\u0188",
+            "\1\u0189",
+            "\1\u018a",
+            "\1\u018b",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u018d",
+            "\12\71\7\uffff\21\71\1\u018e\10\71\4\uffff\1\71\1\uffff\32"+
+            "\71",
+            "\1\u0190",
+            "\1\u0191",
+            "\1\u0192",
+            "\1\u0193",
+            "\1\u0194",
+            "\1\u0195",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\22\71\1\u0196\7\71",
+            "\1\u0198",
+            "\1\u0199",
+            "\1\u019a",
+            "\1\u019b",
+            "\1\u019c",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u019e",
+            "\1\u019f",
+            "\1\u01a0",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01a4",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\4\71\1\u01a6\3\71"+
+            "\1\u01a5\21\71",
+            "\1\u01a8",
+            "",
+            "\1\u01a9",
+            "\1\u01aa",
+            "\1\u01ab",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\u01af",
+            "\1\u01b0",
+            "\1\u01b1",
+            "\1\u01b2",
+            "\1\u01b3",
+            "\1\u01b4",
+            "\1\u01b5",
+            "\1\u01b6",
+            "\1\u01b7",
+            "\1\u01b8",
+            "\1\u01b9",
+            "\1\u01ba",
+            "\1\u01bb",
+            "\1\u01bc",
+            "\1\u01bd",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01bf",
+            "",
+            "\1\u01c0",
+            "\1\u01c1",
+            "\1\u01c2",
+            "\1\u01c3",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01c5",
+            "\1\u01c6",
+            "\1\u01c7",
+            "",
+            "\1\u01c8",
+            "\1\u01c9",
+            "",
+            "\1\u01ca",
+            "\1\u01cb",
+            "\1\u01cc",
+            "\12\71\7\uffff\32\71\4\uffff\1\u01cd\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01d0",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u01d2",
+            "\1\u01d3",
+            "\1\u01d4",
+            "\1\u01d5",
+            "\1\u01d6",
+            "",
+            "\1\u01d7",
+            "\1\u01d8",
+            "\1\u01d9",
+            "\1\u01da",
+            "\1\u01db",
+            "",
+            "\1\u01dc",
+            "\1\u01dd",
+            "\1\u01de",
+            "",
+            "\1\u01df",
+            "\1\u01e0",
+            "\1\u01e1",
+            "\1\u01e2",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01e4",
+            "\1\u01e5",
+            "\1\u01e6",
+            "\1\u01e7",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01ea",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01ec",
+            "\1\u01ed",
+            "\1\u01ee",
+            "\1\u01ef",
+            "\1\u01f0",
+            "\1\u01f1",
+            "\1\u01f2",
+            "\1\u01f3",
+            "\1\u01f4",
+            "",
+            "\1\u01f5",
+            "\1\u01f6",
+            "\1\u01f7",
+            "\1\u01f8",
+            "\1\u01f9",
+            "",
+            "\1\u01fa",
+            "\1\u01fb",
+            "\1\u01fc",
+            "\1\u01fd",
+            "\1\u01fe",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0200",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0202",
+            "",
+            "",
+            "\1\u0203",
+            "",
+            "\1\u0204",
+            "\1\u0205",
+            "\1\u0206",
+            "\1\u0207",
+            "\1\u0208",
+            "\1\u0209",
+            "\1\u020a",
+            "\1\u020b",
+            "\1\u020c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u020e",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\u0211",
+            "\1\u0212",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0214",
+            "",
+            "\1\u0215",
+            "\1\u0216",
+            "\1\u0217",
+            "\1\u0218",
+            "",
+            "",
+            "\1\u0219",
+            "",
+            "\1\u021a",
+            "\12\71\7\uffff\2\71\1\u021b\27\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\2\71\1\u021d\27\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u021f",
+            "\1\u0220",
+            "\1\u0221",
+            "\1\u0222",
+            "\1\u0223",
+            "\1\u0224",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0226",
+            "\1\u0227",
+            "\1\u0228",
+            "\1\u0229",
+            "\1\u022a",
+            "\1\u022b",
+            "\1\u022c",
+            "\1\u022d",
+            "\1\u022e",
+            "",
+            "\1\u022f",
+            "",
+            "\1\u0230",
+            "\1\u0231",
+            "\1\u0232",
+            "\1\u0233",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\u0236",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\22\71\1\u0238\7\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u023b",
+            "",
+            "\1\u023c",
+            "\1\u023d",
+            "\1\u023e",
+            "\1\u023f",
+            "\1\u0240",
+            "",
+            "\1\u0241",
+            "\1\u0242",
+            "\1\u0243",
+            "\1\u0244",
+            "\1\u0245",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0247",
+            "\1\u0248",
+            "",
+            "\1\u0249",
+            "",
+            "\1\u024a",
+            "\1\u024b",
+            "\1\u024c",
+            "\1\u024d",
+            "\1\u024e",
+            "\1\u024f",
+            "",
+            "\1\u0250",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0253",
+            "\1\u0254",
+            "\1\u0255",
+            "\1\u0256",
+            "\1\u0257",
+            "\1\u0258",
+            "\1\u0259",
+            "\1\u025a",
+            "\1\u025b",
+            "\1\u025c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u025e",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0260",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u0262",
+            "\1\u0263",
+            "\1\u0264",
+            "\1\u0265",
+            "\1\u0266",
+            "\1\u0267",
+            "\1\u0268",
+            "\1\u0269",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u026b",
+            "\1\u026c",
+            "",
+            "\1\u026d",
+            "\1\u026e",
+            "\1\u026f",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0271",
+            "\1\u0272",
+            "\1\u0273",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0275",
+            "\1\u0276",
+            "",
+            "",
+            "\1\u0277",
+            "\1\u0278",
+            "\1\u0279",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u027b",
+            "\1\u027c",
+            "\1\u027d",
+            "\1\u027e",
+            "\1\u027f",
+            "\1\u0280",
+            "",
+            "\1\u0281",
+            "",
+            "\1\u0282",
+            "",
+            "\1\u0283",
+            "\1\u0284",
+            "\1\u0285",
+            "\1\u0286",
+            "\1\u0287",
+            "\1\u0288",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u028b",
+            "\1\u028c",
+            "\1\u028d",
+            "\1\u028e",
+            "\1\u028f",
+            "",
+            "\1\u0290",
+            "\1\u0291",
+            "\1\u0292",
+            "",
+            "\1\u0293",
+            "\1\u0294",
+            "\1\u0295",
+            "\1\u0296",
+            "\1\u0297",
+            "",
+            "\1\u0298",
+            "\1\u0299",
+            "\1\u029a",
+            "\1\u029b",
+            "\1\u029c",
+            "\1\u029d",
+            "\1\u029e",
+            "\1\u029f",
+            "\1\u02a0",
+            "\1\u02a1",
+            "\1\u02a2",
+            "\1\u02a3",
+            "\1\u02a4",
+            "\1\u02a5",
+            "",
+            "",
+            "\1\u02a6",
+            "\1\u02a7",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02a9",
+            "\1\u02aa",
+            "\1\u02ab",
+            "\1\u02ac",
+            "\1\u02ad",
+            "\1\u02ae",
+            "\1\u02af",
+            "\1\u02b0",
+            "\1\u02b1",
+            "\1\u02b2",
+            "\1\u02b3",
+            "\1\u02b4",
+            "\1\u02b5",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02b7",
+            "\1\u02b8",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02ba",
+            "\1\u02bb",
+            "\1\u02bc",
+            "\1\u02bd",
+            "\1\u02be",
+            "\1\u02bf",
+            "\1\u02c0",
+            "\1\u02c1",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u02c3",
+            "\1\u02c4",
+            "\1\u02c5",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02c8",
+            "\1\u02c9",
+            "\1\u02ca",
+            "\1\u02cb",
+            "\1\u02cc",
+            "\1\u02cd",
+            "\1\u02ce",
+            "\1\u02cf",
+            "",
+            "\1\u02d0",
+            "\1\u02d1",
+            "",
+            "\1\u02d2",
+            "\1\u02d3",
+            "\1\u02d4",
+            "\1\u02d5",
+            "\1\u02d6",
+            "\1\u02d7",
+            "\1\u02d8",
+            "\1\u02d9",
+            "",
+            "\1\u02da",
+            "\1\u02db",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02de",
+            "\1\u02df",
+            "\1\u02e0",
+            "\1\u02e1",
+            "\1\u02e2",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02e4",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02e8",
+            "\1\u02e9",
+            "\1\u02ea",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02ed",
+            "\1\u02ee",
+            "\1\u02ef",
+            "\1\u02f0",
+            "",
+            "",
+            "\1\u02f1",
+            "\1\u02f2",
+            "\1\u02f3",
+            "\1\u02f4",
+            "\1\u02f5",
+            "",
+            "\1\u02f6",
+            "",
+            "",
+            "",
+            "\1\u02f7",
+            "\1\u02f8",
+            "\1\u02f9",
+            "",
+            "",
+            "\1\u02fa",
+            "\1\u02fb",
+            "\1\u02fc",
+            "\1\u02fd",
+            "\1\u02fe",
+            "\1\u02ff",
+            "\1\u0300",
+            "\1\u0301",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0304",
+            "\1\u0305",
+            "\12\71\7\uffff\10\71\1\u0306\21\71\4\uffff\1\71\1\uffff\32"+
+            "\71",
+            "\1\u0308",
+            "\1\u0309",
+            "\1\u030a",
+            "\1\u030b",
+            "\1\u030c",
+            "\1\u030d",
+            "\1\u030e",
+            "\1\u030f",
+            "",
+            "",
+            "\1\u0310",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0312",
+            "",
+            "\1\u0313",
+            "\1\u0314",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0317",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0319",
+            "\1\u031a",
+            "\1\u031b",
+            "",
+            "\1\u031c",
+            "\1\u031d",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0320",
+            "\1\u0321",
+            "\1\u0322",
+            "\1\u0323",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u0325",
+            "\1\u0326",
+            "\1\u0327",
+            "\1\u0328",
+            "",
+            "\1\u0329",
+            "\1\u032a",
+            "\1\u032b",
+            "\1\u032c",
+            "\1\u032d",
+            "\1\u032e",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0330",
+            "\1\u0331",
+            "\1\u0332",
+            "",
+            "\1\u0333",
+            "\1\u0334",
+            "\1\u0335",
+            "\1\u0336",
+            "\1\u0337",
+            "\1\u0338",
+            "\1\u0339",
+            "\1\u033a",
+            "\1\u033b",
+            "\1\u033c",
+            "\1\u033d",
+            "\1\u033e",
+            "\1\u033f",
+            "\1\u0340",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0342",
+            "\1\u0343",
+            "",
+            "\1\u0344",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            ""
+    };
+
+    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+    static final short[][] DFA12_transition;
+
+    static {
+        int numStates = DFA12_transitionS.length;
+        DFA12_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+        }
+    }
+
+    static class DFA12 extends DFA {
+
+        public DFA12(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 12;
+            this.eot = DFA12_eot;
+            this.eof = DFA12_eof;
+            this.min = DFA12_min;
+            this.max = DFA12_max;
+            this.accept = DFA12_accept;
+            this.special = DFA12_special;
+            this.transition = DFA12_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | 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_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA12_0=='E') ) {s = 1;}
+
+                        else if ( (LA12_0=='e') ) {s = 2;}
+
+                        else if ( (LA12_0=='N') ) {s = 3;}
+
+                        else if ( (LA12_0=='T') ) {s = 4;}
+
+                        else if ( (LA12_0=='L') ) {s = 5;}
+
+                        else if ( (LA12_0=='M') ) {s = 6;}
+
+                        else if ( (LA12_0=='R') ) {s = 7;}
+
+                        else if ( (LA12_0=='A') ) {s = 8;}
+
+                        else if ( (LA12_0=='I') ) {s = 9;}
+
+                        else if ( (LA12_0=='D') ) {s = 10;}
+
+                        else if ( (LA12_0=='=') ) {s = 11;}
+
+                        else if ( (LA12_0=='!') ) {s = 12;}
+
+                        else if ( (LA12_0=='>') ) {s = 13;}
+
+                        else if ( (LA12_0=='<') ) {s = 14;}
+
+                        else if ( (LA12_0=='G') ) {s = 15;}
+
+                        else if ( (LA12_0=='{') ) {s = 16;}
+
+                        else if ( (LA12_0=='g') ) {s = 17;}
+
+                        else if ( (LA12_0==':') ) {s = 18;}
+
+                        else if ( (LA12_0=='a') ) {s = 19;}
+
+                        else if ( (LA12_0=='t') ) {s = 20;}
+
+                        else if ( (LA12_0=='s') ) {s = 21;}
+
+                        else if ( (LA12_0=='}') ) {s = 22;}
+
+                        else if ( (LA12_0=='[') ) {s = 23;}
+
+                        else if ( (LA12_0==']') ) {s = 24;}
+
+                        else if ( (LA12_0=='p') ) {s = 25;}
+
+                        else if ( (LA12_0==',') ) {s = 26;}
+
+                        else if ( (LA12_0=='i') ) {s = 27;}
+
+                        else if ( (LA12_0=='(') ) {s = 28;}
+
+                        else if ( (LA12_0==')') ) {s = 29;}
+
+                        else if ( (LA12_0=='o') ) {s = 30;}
+
+                        else if ( (LA12_0=='r') ) {s = 31;}
+
+                        else if ( (LA12_0=='w') ) {s = 32;}
+
+                        else if ( (LA12_0=='v') ) {s = 33;}
+
+                        else if ( (LA12_0=='d') ) {s = 34;}
+
+                        else if ( (LA12_0=='S') ) {s = 35;}
+
+                        else if ( (LA12_0=='c') ) {s = 36;}
+
+                        else if ( (LA12_0=='B') ) {s = 37;}
+
+                        else if ( (LA12_0=='n') ) {s = 38;}
+
+                        else if ( (LA12_0=='m') ) {s = 39;}
+
+                        else if ( (LA12_0=='-') ) {s = 40;}
+
+                        else if ( (LA12_0=='.') ) {s = 41;}
+
+                        else if ( (LA12_0=='P') ) {s = 42;}
+
+                        else if ( (LA12_0=='O') ) {s = 43;}
+
+                        else if ( (LA12_0=='l') ) {s = 44;}
+
+                        else if ( (LA12_0=='W') ) {s = 45;}
+
+                        else if ( (LA12_0=='^') ) {s = 46;}
+
+                        else if ( (LA12_0=='C'||LA12_0=='F'||LA12_0=='H'||(LA12_0>='J' && LA12_0<='K')||LA12_0=='Q'||(LA12_0>='U' && LA12_0<='V')||(LA12_0>='X' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='f'||LA12_0=='h'||(LA12_0>='j' && LA12_0<='k')||LA12_0=='q'||LA12_0=='u'||(LA12_0>='x' && LA12_0<='z')) ) {s = 47;}
+
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 48;}
+
+                        else if ( (LA12_0=='\"') ) {s = 49;}
+
+                        else if ( (LA12_0=='\'') ) {s = 50;}
+
+                        else if ( (LA12_0=='/') ) {s = 51;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 52;}
+
+                        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<='\uFFFF')) ) {s = 53;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA12_50 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_50>='\u0000' && LA12_50<='\uFFFF')) ) {s = 130;}
+
+                        else s = 53;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_49 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_49>='\u0000' && LA12_49<='\uFFFF')) ) {s = 130;}
+
+                        else s = 53;
+
+                        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/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..0b405fac8b17677bb2c941afbe4083479471917e
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLangParser.java
@@ -0,0 +1,40219 @@
+package edu.kit.ipd.descartes.mm.adaptation.sta.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 edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStaLangParser extends AbstractInternalContentAssistParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'EDate'", "'E'", "'e'", "'NOT_SET'", "'THIS'", "'LEAST_UTILIZED_FIRST'", "'MOST_UTILIZED_FIRST'", "'RANDOM'", "'ALL'", "'INCREASE'", "'DECREASE'", "'MIGRATE'", "'=='", "'!='", "'>'", "'>='", "'<'", "'<='", "'EQUAL'", "'NOT_EQUAL'", "'GREATER'", "'GREATER_EQUAL'", "'LESS'", "'LESS_EQUAL'", "'AdaptationProcess'", "'{'", "'goal'", "':'", "'actions'", "'tactics'", "'strategies'", "'}'", "'[id:'", "']'", "'parameters'", "','", "'Tactic'", "'implementedPlan'", "'input'", "'='", "'('", "')'", "'output'", "'Action'", "'operation'", "'referredAdaptationPoint'", "'objective'", "'triggeringEvent'", "'weightingFunction'", "'type'", "'value'", "'description'", "'objectives'", "'ImportDeclaration'", "'StartAction'", "'StopAction'", "'LoopAction'", "'repeat'", "'counter'", "'BranchAction'", "'if'", "'context'", "'condition'", "'then'", "'else'", "'ActionReference'", "'refersTo'", "'ModelVariableConfigurationRange'", "'name'", "'minValue'", "'maxValue'", "'adaptableEntity'", "'ModelEntityConfigurationRange'", "'variationPossibility'", "'-'", "'.'", "'PropertyRange'", "'minValueConstraint'", "'maxValueConstraint'", "'SetOfConfigurations'", "'valueConstraint'", "'variants'", "'OclConstraint'", "'oclString'", "'specification'", "'tactic'", "'default'", "'current'", "'lastImpact'", "'weightingFunctionImplementation'", "'weightedMetrics'", "'Specification'", "'metricType'", "'relationalOperator'", "'MetricValue'", "'measuredEntity'", "'WeightedMetric'", "'weight'"
+    };
+    public static final int RULE_ID=5;
+    public static final int T__29=29;
+    public static final int T__28=28;
+    public static final int T__27=27;
+    public static final int T__26=26;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int EOF=-1;
+    public static final int T__93=93;
+    public static final int T__19=19;
+    public static final int T__94=94;
+    public static final int T__91=91;
+    public static final int T__92=92;
+    public static final int T__16=16;
+    public static final int T__15=15;
+    public static final int T__90=90;
+    public static final int T__18=18;
+    public static final int T__17=17;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__99=99;
+    public static final int T__98=98;
+    public static final int T__97=97;
+    public static final int T__96=96;
+    public static final int T__95=95;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__85=85;
+    public static final int T__84=84;
+    public static final int T__87=87;
+    public static final int T__86=86;
+    public static final int T__89=89;
+    public static final int T__88=88;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int RULE_STRING=4;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int T__70=70;
+    public static final int T__76=76;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__65=65;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__107=107;
+    public static final int T__108=108;
+    public static final int T__103=103;
+    public static final int T__59=59;
+    public static final int T__104=104;
+    public static final int T__105=105;
+    public static final int T__106=106;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__102=102;
+    public static final int T__101=101;
+    public static final int T__100=100;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int RULE_WS=9;
+
+    // delegates
+    // delegators
+
+
+        public InternalStaLangParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalStaLangParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalStaLangParser.tokenNames; }
+    public String getGrammarFileName() { return "../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g"; }
+
+
+     
+     	private StaLangGrammarAccess grammarAccess;
+     	
+        public void setGrammarAccess(StaLangGrammarAccess grammarAccess) {
+        	this.grammarAccess = grammarAccess;
+        }
+        
+        @Override
+        protected Grammar getGrammar() {
+        	return grammarAccess.getGrammar();
+        }
+        
+        @Override
+        protected String getValueForTokenName(String tokenName) {
+        	return tokenName;
+        }
+
+
+
+
+    // $ANTLR start "entryRuleAdaptationProcess"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:60:1: entryRuleAdaptationProcess : ruleAdaptationProcess EOF ;
+    public final void entryRuleAdaptationProcess() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:61:1: ( ruleAdaptationProcess EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:62:1: ruleAdaptationProcess EOF
+            {
+             before(grammarAccess.getAdaptationProcessRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationProcess_in_entryRuleAdaptationProcess61);
+            ruleAdaptationProcess();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAdaptationProcess68); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleAdaptationProcess"
+
+
+    // $ANTLR start "ruleAdaptationProcess"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:69:1: ruleAdaptationProcess : ( ( rule__AdaptationProcess__Group__0 ) ) ;
+    public final void ruleAdaptationProcess() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:73:2: ( ( ( rule__AdaptationProcess__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:74:1: ( ( rule__AdaptationProcess__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:74:1: ( ( rule__AdaptationProcess__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:75:1: ( rule__AdaptationProcess__Group__0 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:76:1: ( rule__AdaptationProcess__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:76:2: rule__AdaptationProcess__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__0_in_ruleAdaptationProcess94);
+            rule__AdaptationProcess__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAdaptationProcess"
+
+
+    // $ANTLR start "entryRuleAbstractControlFlowElement"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:90:1: entryRuleAbstractControlFlowElement : ruleAbstractControlFlowElement EOF ;
+    public final void entryRuleAbstractControlFlowElement() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:91:1: ( ruleAbstractControlFlowElement EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:92:1: ruleAbstractControlFlowElement EOF
+            {
+             before(grammarAccess.getAbstractControlFlowElementRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAbstractControlFlowElement_in_entryRuleAbstractControlFlowElement123);
+            ruleAbstractControlFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getAbstractControlFlowElementRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAbstractControlFlowElement130); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleAbstractControlFlowElement"
+
+
+    // $ANTLR start "ruleAbstractControlFlowElement"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:99:1: ruleAbstractControlFlowElement : ( ( rule__AbstractControlFlowElement__Alternatives ) ) ;
+    public final void ruleAbstractControlFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:103:2: ( ( ( rule__AbstractControlFlowElement__Alternatives ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:104:1: ( ( rule__AbstractControlFlowElement__Alternatives ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:104:1: ( ( rule__AbstractControlFlowElement__Alternatives ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:105:1: ( rule__AbstractControlFlowElement__Alternatives )
+            {
+             before(grammarAccess.getAbstractControlFlowElementAccess().getAlternatives()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:106:1: ( rule__AbstractControlFlowElement__Alternatives )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:106:2: rule__AbstractControlFlowElement__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AbstractControlFlowElement__Alternatives_in_ruleAbstractControlFlowElement156);
+            rule__AbstractControlFlowElement__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAbstractControlFlowElementAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAbstractControlFlowElement"
+
+
+    // $ANTLR start "entryRuleVariationType"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:118:1: entryRuleVariationType : ruleVariationType EOF ;
+    public final void entryRuleVariationType() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:119:1: ( ruleVariationType EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:120:1: ruleVariationType EOF
+            {
+             before(grammarAccess.getVariationTypeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleVariationType_in_entryRuleVariationType183);
+            ruleVariationType();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariationTypeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleVariationType190); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVariationType"
+
+
+    // $ANTLR start "ruleVariationType"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:127:1: ruleVariationType : ( ( rule__VariationType__Alternatives ) ) ;
+    public final void ruleVariationType() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:131:2: ( ( ( rule__VariationType__Alternatives ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:132:1: ( ( rule__VariationType__Alternatives ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:132:1: ( ( rule__VariationType__Alternatives ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:133:1: ( rule__VariationType__Alternatives )
+            {
+             before(grammarAccess.getVariationTypeAccess().getAlternatives()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:134:1: ( rule__VariationType__Alternatives )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:134:2: rule__VariationType__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VariationType__Alternatives_in_ruleVariationType216);
+            rule__VariationType__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariationTypeAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVariationType"
+
+
+    // $ANTLR start "entryRuleEString"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:146:1: entryRuleEString : ruleEString EOF ;
+    public final void entryRuleEString() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:147:1: ( ruleEString EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:148:1: ruleEString EOF
+            {
+             before(grammarAccess.getEStringRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_entryRuleEString243);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getEStringRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEString250); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEString"
+
+
+    // $ANTLR start "ruleEString"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:155:1: ruleEString : ( ( rule__EString__Alternatives ) ) ;
+    public final void ruleEString() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:159:2: ( ( ( rule__EString__Alternatives ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:160:1: ( ( rule__EString__Alternatives ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:160:1: ( ( rule__EString__Alternatives ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:161:1: ( rule__EString__Alternatives )
+            {
+             before(grammarAccess.getEStringAccess().getAlternatives()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:162:1: ( rule__EString__Alternatives )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:162:2: rule__EString__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EString__Alternatives_in_ruleEString276);
+            rule__EString__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEStringAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEString"
+
+
+    // $ANTLR start "entryRuleTactic"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:174:1: entryRuleTactic : ruleTactic EOF ;
+    public final void entryRuleTactic() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:175:1: ( ruleTactic EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:176:1: ruleTactic EOF
+            {
+             before(grammarAccess.getTacticRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleTactic_in_entryRuleTactic303);
+            ruleTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleTactic310); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTactic"
+
+
+    // $ANTLR start "ruleTactic"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:183:1: ruleTactic : ( ( rule__Tactic__Group__0 ) ) ;
+    public final void ruleTactic() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:187:2: ( ( ( rule__Tactic__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:188:1: ( ( rule__Tactic__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:188:1: ( ( rule__Tactic__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:189:1: ( rule__Tactic__Group__0 )
+            {
+             before(grammarAccess.getTacticAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:190:1: ( rule__Tactic__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:190:2: rule__Tactic__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__0_in_ruleTactic336);
+            rule__Tactic__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTactic"
+
+
+    // $ANTLR start "entryRuleAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:202:1: entryRuleAction : ruleAction EOF ;
+    public final void entryRuleAction() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:203:1: ( ruleAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:204:1: ruleAction EOF
+            {
+             before(grammarAccess.getActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAction_in_entryRuleAction363);
+            ruleAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAction370); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleAction"
+
+
+    // $ANTLR start "ruleAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:211:1: ruleAction : ( ( rule__Action__Group__0 ) ) ;
+    public final void ruleAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:215:2: ( ( ( rule__Action__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:216:1: ( ( rule__Action__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:216:1: ( ( rule__Action__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:217:1: ( rule__Action__Group__0 )
+            {
+             before(grammarAccess.getActionAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:218:1: ( rule__Action__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:218:2: rule__Action__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__0_in_ruleAction396);
+            rule__Action__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAction"
+
+
+    // $ANTLR start "entryRuleStrategy"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:230:1: entryRuleStrategy : ruleStrategy EOF ;
+    public final void entryRuleStrategy() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:231:1: ( ruleStrategy EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:232:1: ruleStrategy EOF
+            {
+             before(grammarAccess.getStrategyRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStrategy_in_entryRuleStrategy423);
+            ruleStrategy();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStrategy430); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStrategy"
+
+
+    // $ANTLR start "ruleStrategy"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:239:1: ruleStrategy : ( ( rule__Strategy__Group__0 ) ) ;
+    public final void ruleStrategy() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:243:2: ( ( ( rule__Strategy__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:244:1: ( ( rule__Strategy__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:244:1: ( ( rule__Strategy__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:245:1: ( rule__Strategy__Group__0 )
+            {
+             before(grammarAccess.getStrategyAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:246:1: ( rule__Strategy__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:246:2: rule__Strategy__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__0_in_ruleStrategy456);
+            rule__Strategy__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStrategy"
+
+
+    // $ANTLR start "entryRuleParameter"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:258:1: entryRuleParameter : ruleParameter EOF ;
+    public final void entryRuleParameter() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:259:1: ( ruleParameter EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:260:1: ruleParameter EOF
+            {
+             before(grammarAccess.getParameterRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleParameter_in_entryRuleParameter483);
+            ruleParameter();
+
+            state._fsp--;
+
+             after(grammarAccess.getParameterRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleParameter490); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleParameter"
+
+
+    // $ANTLR start "ruleParameter"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:267:1: ruleParameter : ( ( rule__Parameter__Group__0 ) ) ;
+    public final void ruleParameter() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:271:2: ( ( ( rule__Parameter__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:272:1: ( ( rule__Parameter__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:272:1: ( ( rule__Parameter__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:273:1: ( rule__Parameter__Group__0 )
+            {
+             before(grammarAccess.getParameterAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:274:1: ( rule__Parameter__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:274:2: rule__Parameter__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__0_in_ruleParameter516);
+            rule__Parameter__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getParameterAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleParameter"
+
+
+    // $ANTLR start "entryRuleOverallGoal"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:286:1: entryRuleOverallGoal : ruleOverallGoal EOF ;
+    public final void entryRuleOverallGoal() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:287:1: ( ruleOverallGoal EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:288:1: ruleOverallGoal EOF
+            {
+             before(grammarAccess.getOverallGoalRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleOverallGoal_in_entryRuleOverallGoal543);
+            ruleOverallGoal();
+
+            state._fsp--;
+
+             after(grammarAccess.getOverallGoalRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleOverallGoal550); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOverallGoal"
+
+
+    // $ANTLR start "ruleOverallGoal"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:295:1: ruleOverallGoal : ( ( rule__OverallGoal__Group__0 ) ) ;
+    public final void ruleOverallGoal() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:299:2: ( ( ( rule__OverallGoal__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:300:1: ( ( rule__OverallGoal__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:300:1: ( ( rule__OverallGoal__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:301:1: ( rule__OverallGoal__Group__0 )
+            {
+             before(grammarAccess.getOverallGoalAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:302:1: ( rule__OverallGoal__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:302:2: rule__OverallGoal__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__0_in_ruleOverallGoal576);
+            rule__OverallGoal__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOverallGoalAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOverallGoal"
+
+
+    // $ANTLR start "entryRuleImportDeclaration"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:314:1: entryRuleImportDeclaration : ruleImportDeclaration EOF ;
+    public final void entryRuleImportDeclaration() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:315:1: ( ruleImportDeclaration EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:316:1: ruleImportDeclaration EOF
+            {
+             before(grammarAccess.getImportDeclarationRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleImportDeclaration_in_entryRuleImportDeclaration603);
+            ruleImportDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getImportDeclarationRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleImportDeclaration610); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleImportDeclaration"
+
+
+    // $ANTLR start "ruleImportDeclaration"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:323:1: ruleImportDeclaration : ( ( rule__ImportDeclaration__Group__0 ) ) ;
+    public final void ruleImportDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:327:2: ( ( ( rule__ImportDeclaration__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:328:1: ( ( rule__ImportDeclaration__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:328:1: ( ( rule__ImportDeclaration__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:329:1: ( rule__ImportDeclaration__Group__0 )
+            {
+             before(grammarAccess.getImportDeclarationAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:330:1: ( rule__ImportDeclaration__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:330:2: rule__ImportDeclaration__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ImportDeclaration__Group__0_in_ruleImportDeclaration636);
+            rule__ImportDeclaration__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getImportDeclarationAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleImportDeclaration"
+
+
+    // $ANTLR start "entryRuleAdaptationPlan"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:342:1: entryRuleAdaptationPlan : ruleAdaptationPlan EOF ;
+    public final void entryRuleAdaptationPlan() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:343:1: ( ruleAdaptationPlan EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:344:1: ruleAdaptationPlan EOF
+            {
+             before(grammarAccess.getAdaptationPlanRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_entryRuleAdaptationPlan663);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAdaptationPlan670); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleAdaptationPlan"
+
+
+    // $ANTLR start "ruleAdaptationPlan"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:351:1: ruleAdaptationPlan : ( ( rule__AdaptationPlan__Group__0 ) ) ;
+    public final void ruleAdaptationPlan() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:355:2: ( ( ( rule__AdaptationPlan__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:356:1: ( ( rule__AdaptationPlan__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:356:1: ( ( rule__AdaptationPlan__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:357:1: ( rule__AdaptationPlan__Group__0 )
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:358:1: ( rule__AdaptationPlan__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:358:2: rule__AdaptationPlan__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__0_in_ruleAdaptationPlan696);
+            rule__AdaptationPlan__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAdaptationPlan"
+
+
+    // $ANTLR start "entryRuleStartAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:370:1: entryRuleStartAction : ruleStartAction EOF ;
+    public final void entryRuleStartAction() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:371:1: ( ruleStartAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:372:1: ruleStartAction EOF
+            {
+             before(grammarAccess.getStartActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStartAction_in_entryRuleStartAction723);
+            ruleStartAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getStartActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStartAction730); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStartAction"
+
+
+    // $ANTLR start "ruleStartAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:379:1: ruleStartAction : ( ( rule__StartAction__Group__0 ) ) ;
+    public final void ruleStartAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:383:2: ( ( ( rule__StartAction__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:384:1: ( ( rule__StartAction__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:384:1: ( ( rule__StartAction__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:385:1: ( rule__StartAction__Group__0 )
+            {
+             before(grammarAccess.getStartActionAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:386:1: ( rule__StartAction__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:386:2: rule__StartAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group__0_in_ruleStartAction756);
+            rule__StartAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStartAction"
+
+
+    // $ANTLR start "entryRuleStopAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:398:1: entryRuleStopAction : ruleStopAction EOF ;
+    public final void entryRuleStopAction() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:399:1: ( ruleStopAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:400:1: ruleStopAction EOF
+            {
+             before(grammarAccess.getStopActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStopAction_in_entryRuleStopAction783);
+            ruleStopAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getStopActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStopAction790); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStopAction"
+
+
+    // $ANTLR start "ruleStopAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:407:1: ruleStopAction : ( ( rule__StopAction__Group__0 ) ) ;
+    public final void ruleStopAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:411:2: ( ( ( rule__StopAction__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:412:1: ( ( rule__StopAction__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:412:1: ( ( rule__StopAction__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:413:1: ( rule__StopAction__Group__0 )
+            {
+             before(grammarAccess.getStopActionAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:414:1: ( rule__StopAction__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:414:2: rule__StopAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group__0_in_ruleStopAction816);
+            rule__StopAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStopActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStopAction"
+
+
+    // $ANTLR start "entryRuleLoopAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:426:1: entryRuleLoopAction : ruleLoopAction EOF ;
+    public final void entryRuleLoopAction() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:427:1: ( ruleLoopAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:428:1: ruleLoopAction EOF
+            {
+             before(grammarAccess.getLoopActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleLoopAction_in_entryRuleLoopAction843);
+            ruleLoopAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleLoopAction850); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLoopAction"
+
+
+    // $ANTLR start "ruleLoopAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:435:1: ruleLoopAction : ( ( rule__LoopAction__Group__0 ) ) ;
+    public final void ruleLoopAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:439:2: ( ( ( rule__LoopAction__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:440:1: ( ( rule__LoopAction__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:440:1: ( ( rule__LoopAction__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:441:1: ( rule__LoopAction__Group__0 )
+            {
+             before(grammarAccess.getLoopActionAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:442:1: ( rule__LoopAction__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:442:2: rule__LoopAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__0_in_ruleLoopAction876);
+            rule__LoopAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleLoopAction"
+
+
+    // $ANTLR start "entryRuleBranchAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:454:1: entryRuleBranchAction : ruleBranchAction EOF ;
+    public final void entryRuleBranchAction() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:455:1: ( ruleBranchAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:456:1: ruleBranchAction EOF
+            {
+             before(grammarAccess.getBranchActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleBranchAction_in_entryRuleBranchAction903);
+            ruleBranchAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleBranchAction910); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBranchAction"
+
+
+    // $ANTLR start "ruleBranchAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:463:1: ruleBranchAction : ( ( rule__BranchAction__Group__0 ) ) ;
+    public final void ruleBranchAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:467:2: ( ( ( rule__BranchAction__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:468:1: ( ( rule__BranchAction__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:468:1: ( ( rule__BranchAction__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:469:1: ( rule__BranchAction__Group__0 )
+            {
+             before(grammarAccess.getBranchActionAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:470:1: ( rule__BranchAction__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:470:2: rule__BranchAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__0_in_ruleBranchAction936);
+            rule__BranchAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBranchAction"
+
+
+    // $ANTLR start "entryRuleActionReference"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:482:1: entryRuleActionReference : ruleActionReference EOF ;
+    public final void entryRuleActionReference() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:483:1: ( ruleActionReference EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:484:1: ruleActionReference EOF
+            {
+             before(grammarAccess.getActionReferenceRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleActionReference_in_entryRuleActionReference963);
+            ruleActionReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionReferenceRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleActionReference970); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionReference"
+
+
+    // $ANTLR start "ruleActionReference"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:491:1: ruleActionReference : ( ( rule__ActionReference__Group__0 ) ) ;
+    public final void ruleActionReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:495:2: ( ( ( rule__ActionReference__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:496:1: ( ( rule__ActionReference__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:496:1: ( ( rule__ActionReference__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:497:1: ( rule__ActionReference__Group__0 )
+            {
+             before(grammarAccess.getActionReferenceAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:498:1: ( rule__ActionReference__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:498:2: rule__ActionReference__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__0_in_ruleActionReference996);
+            rule__ActionReference__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionReference"
+
+
+    // $ANTLR start "entryRuleAdaptationActionOperation"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:510:1: entryRuleAdaptationActionOperation : ruleAdaptationActionOperation EOF ;
+    public final void entryRuleAdaptationActionOperation() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:511:1: ( ruleAdaptationActionOperation EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:512:1: ruleAdaptationActionOperation EOF
+            {
+             before(grammarAccess.getAdaptationActionOperationRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationActionOperation_in_entryRuleAdaptationActionOperation1023);
+            ruleAdaptationActionOperation();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationActionOperationRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAdaptationActionOperation1030); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleAdaptationActionOperation"
+
+
+    // $ANTLR start "ruleAdaptationActionOperation"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:519:1: ruleAdaptationActionOperation : ( ( rule__AdaptationActionOperation__Group__0 ) ) ;
+    public final void ruleAdaptationActionOperation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:523:2: ( ( ( rule__AdaptationActionOperation__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:524:1: ( ( rule__AdaptationActionOperation__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:524:1: ( ( rule__AdaptationActionOperation__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:525:1: ( rule__AdaptationActionOperation__Group__0 )
+            {
+             before(grammarAccess.getAdaptationActionOperationAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:526:1: ( rule__AdaptationActionOperation__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:526:2: rule__AdaptationActionOperation__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__0_in_ruleAdaptationActionOperation1056);
+            rule__AdaptationActionOperation__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationActionOperationAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAdaptationActionOperation"
+
+
+    // $ANTLR start "entryRuleModelVariableConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:538:1: entryRuleModelVariableConfigurationRange : ruleModelVariableConfigurationRange EOF ;
+    public final void entryRuleModelVariableConfigurationRange() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:539:1: ( ruleModelVariableConfigurationRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:540:1: ruleModelVariableConfigurationRange EOF
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleModelVariableConfigurationRange_in_entryRuleModelVariableConfigurationRange1083);
+            ruleModelVariableConfigurationRange();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleModelVariableConfigurationRange1090); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleModelVariableConfigurationRange"
+
+
+    // $ANTLR start "ruleModelVariableConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:547:1: ruleModelVariableConfigurationRange : ( ( rule__ModelVariableConfigurationRange__Group__0 ) ) ;
+    public final void ruleModelVariableConfigurationRange() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:551:2: ( ( ( rule__ModelVariableConfigurationRange__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:552:1: ( ( rule__ModelVariableConfigurationRange__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:552:1: ( ( rule__ModelVariableConfigurationRange__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:553:1: ( rule__ModelVariableConfigurationRange__Group__0 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:554:1: ( rule__ModelVariableConfigurationRange__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:554:2: rule__ModelVariableConfigurationRange__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__0_in_ruleModelVariableConfigurationRange1116);
+            rule__ModelVariableConfigurationRange__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleModelVariableConfigurationRange"
+
+
+    // $ANTLR start "entryRuleModelEntityConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:566:1: entryRuleModelEntityConfigurationRange : ruleModelEntityConfigurationRange EOF ;
+    public final void entryRuleModelEntityConfigurationRange() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:567:1: ( ruleModelEntityConfigurationRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:568:1: ruleModelEntityConfigurationRange EOF
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleModelEntityConfigurationRange_in_entryRuleModelEntityConfigurationRange1143);
+            ruleModelEntityConfigurationRange();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleModelEntityConfigurationRange1150); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleModelEntityConfigurationRange"
+
+
+    // $ANTLR start "ruleModelEntityConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:575:1: ruleModelEntityConfigurationRange : ( ( rule__ModelEntityConfigurationRange__Group__0 ) ) ;
+    public final void ruleModelEntityConfigurationRange() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:579:2: ( ( ( rule__ModelEntityConfigurationRange__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:580:1: ( ( rule__ModelEntityConfigurationRange__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:580:1: ( ( rule__ModelEntityConfigurationRange__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:581:1: ( rule__ModelEntityConfigurationRange__Group__0 )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:582:1: ( rule__ModelEntityConfigurationRange__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:582:2: rule__ModelEntityConfigurationRange__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__0_in_ruleModelEntityConfigurationRange1176);
+            rule__ModelEntityConfigurationRange__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleModelEntityConfigurationRange"
+
+
+    // $ANTLR start "entryRuleEDouble"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:594:1: entryRuleEDouble : ruleEDouble EOF ;
+    public final void entryRuleEDouble() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:595:1: ( ruleEDouble EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:596:1: ruleEDouble EOF
+            {
+             before(grammarAccess.getEDoubleRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_entryRuleEDouble1203);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getEDoubleRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEDouble1210); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEDouble"
+
+
+    // $ANTLR start "ruleEDouble"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:603:1: ruleEDouble : ( ( rule__EDouble__Group__0 ) ) ;
+    public final void ruleEDouble() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:607:2: ( ( ( rule__EDouble__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:608:1: ( ( rule__EDouble__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:608:1: ( ( rule__EDouble__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:609:1: ( rule__EDouble__Group__0 )
+            {
+             before(grammarAccess.getEDoubleAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:610:1: ( rule__EDouble__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:610:2: rule__EDouble__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__0_in_ruleEDouble1236);
+            rule__EDouble__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEDouble"
+
+
+    // $ANTLR start "entryRulePropertyRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:622:1: entryRulePropertyRange : rulePropertyRange EOF ;
+    public final void entryRulePropertyRange() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:623:1: ( rulePropertyRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:624:1: rulePropertyRange EOF
+            {
+             before(grammarAccess.getPropertyRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePropertyRange_in_entryRulePropertyRange1263);
+            rulePropertyRange();
+
+            state._fsp--;
+
+             after(grammarAccess.getPropertyRangeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePropertyRange1270); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyRange"
+
+
+    // $ANTLR start "rulePropertyRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:631:1: rulePropertyRange : ( ( rule__PropertyRange__Group__0 ) ) ;
+    public final void rulePropertyRange() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:635:2: ( ( ( rule__PropertyRange__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:636:1: ( ( rule__PropertyRange__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:636:1: ( ( rule__PropertyRange__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:637:1: ( rule__PropertyRange__Group__0 )
+            {
+             before(grammarAccess.getPropertyRangeAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:638:1: ( rule__PropertyRange__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:638:2: rule__PropertyRange__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__0_in_rulePropertyRange1296);
+            rule__PropertyRange__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPropertyRangeAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyRange"
+
+
+    // $ANTLR start "entryRuleSetOfConfigurations"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:650:1: entryRuleSetOfConfigurations : ruleSetOfConfigurations EOF ;
+    public final void entryRuleSetOfConfigurations() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:651:1: ( ruleSetOfConfigurations EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:652:1: ruleSetOfConfigurations EOF
+            {
+             before(grammarAccess.getSetOfConfigurationsRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSetOfConfigurations_in_entryRuleSetOfConfigurations1323);
+            ruleSetOfConfigurations();
+
+            state._fsp--;
+
+             after(grammarAccess.getSetOfConfigurationsRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSetOfConfigurations1330); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSetOfConfigurations"
+
+
+    // $ANTLR start "ruleSetOfConfigurations"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:659:1: ruleSetOfConfigurations : ( ( rule__SetOfConfigurations__Group__0 ) ) ;
+    public final void ruleSetOfConfigurations() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:663:2: ( ( ( rule__SetOfConfigurations__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:664:1: ( ( rule__SetOfConfigurations__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:664:1: ( ( rule__SetOfConfigurations__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:665:1: ( rule__SetOfConfigurations__Group__0 )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:666:1: ( rule__SetOfConfigurations__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:666:2: rule__SetOfConfigurations__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__0_in_ruleSetOfConfigurations1356);
+            rule__SetOfConfigurations__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSetOfConfigurations"
+
+
+    // $ANTLR start "entryRuleOclConstraint"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:678:1: entryRuleOclConstraint : ruleOclConstraint EOF ;
+    public final void entryRuleOclConstraint() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:679:1: ( ruleOclConstraint EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:680:1: ruleOclConstraint EOF
+            {
+             before(grammarAccess.getOclConstraintRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleOclConstraint_in_entryRuleOclConstraint1383);
+            ruleOclConstraint();
+
+            state._fsp--;
+
+             after(grammarAccess.getOclConstraintRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleOclConstraint1390); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOclConstraint"
+
+
+    // $ANTLR start "ruleOclConstraint"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:687:1: ruleOclConstraint : ( ( rule__OclConstraint__Group__0 ) ) ;
+    public final void ruleOclConstraint() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:691:2: ( ( ( rule__OclConstraint__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:692:1: ( ( rule__OclConstraint__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:692:1: ( ( rule__OclConstraint__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:693:1: ( rule__OclConstraint__Group__0 )
+            {
+             before(grammarAccess.getOclConstraintAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:694:1: ( rule__OclConstraint__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:694:2: rule__OclConstraint__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__0_in_ruleOclConstraint1416);
+            rule__OclConstraint__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOclConstraintAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOclConstraint"
+
+
+    // $ANTLR start "entryRuleObjective"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:706:1: entryRuleObjective : ruleObjective EOF ;
+    public final void entryRuleObjective() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:707:1: ( ruleObjective EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:708:1: ruleObjective EOF
+            {
+             before(grammarAccess.getObjectiveRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleObjective_in_entryRuleObjective1443);
+            ruleObjective();
+
+            state._fsp--;
+
+             after(grammarAccess.getObjectiveRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleObjective1450); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleObjective"
+
+
+    // $ANTLR start "ruleObjective"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:715:1: ruleObjective : ( ( rule__Objective__Group__0 ) ) ;
+    public final void ruleObjective() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:719:2: ( ( ( rule__Objective__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:720:1: ( ( rule__Objective__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:720:1: ( ( rule__Objective__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:721:1: ( rule__Objective__Group__0 )
+            {
+             before(grammarAccess.getObjectiveAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:722:1: ( rule__Objective__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:722:2: rule__Objective__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__0_in_ruleObjective1476);
+            rule__Objective__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getObjectiveAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleObjective"
+
+
+    // $ANTLR start "entryRuleEvent"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:734:1: entryRuleEvent : ruleEvent EOF ;
+    public final void entryRuleEvent() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:735:1: ( ruleEvent EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:736:1: ruleEvent EOF
+            {
+             before(grammarAccess.getEventRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEvent_in_entryRuleEvent1503);
+            ruleEvent();
+
+            state._fsp--;
+
+             after(grammarAccess.getEventRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEvent1510); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEvent"
+
+
+    // $ANTLR start "ruleEvent"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:743:1: ruleEvent : ( ( rule__Event__Group__0 ) ) ;
+    public final void ruleEvent() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:747:2: ( ( ( rule__Event__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:748:1: ( ( rule__Event__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:748:1: ( ( rule__Event__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:749:1: ( rule__Event__Group__0 )
+            {
+             before(grammarAccess.getEventAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:750:1: ( rule__Event__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:750:2: rule__Event__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group__0_in_ruleEvent1536);
+            rule__Event__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEventAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEvent"
+
+
+    // $ANTLR start "entryRuleWeightedTactic"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:762:1: entryRuleWeightedTactic : ruleWeightedTactic EOF ;
+    public final void entryRuleWeightedTactic() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:763:1: ( ruleWeightedTactic EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:764:1: ruleWeightedTactic EOF
+            {
+             before(grammarAccess.getWeightedTacticRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_entryRuleWeightedTactic1563);
+            ruleWeightedTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightedTactic1570); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleWeightedTactic"
+
+
+    // $ANTLR start "ruleWeightedTactic"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:771:1: ruleWeightedTactic : ( ( rule__WeightedTactic__Group__0 ) ) ;
+    public final void ruleWeightedTactic() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:775:2: ( ( ( rule__WeightedTactic__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:776:1: ( ( rule__WeightedTactic__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:776:1: ( ( rule__WeightedTactic__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:777:1: ( rule__WeightedTactic__Group__0 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:778:1: ( rule__WeightedTactic__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:778:2: rule__WeightedTactic__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__0_in_ruleWeightedTactic1596);
+            rule__WeightedTactic__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleWeightedTactic"
+
+
+    // $ANTLR start "entryRuleWeightingFunction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:790:1: entryRuleWeightingFunction : ruleWeightingFunction EOF ;
+    public final void entryRuleWeightingFunction() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:791:1: ( ruleWeightingFunction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:792:1: ruleWeightingFunction EOF
+            {
+             before(grammarAccess.getWeightingFunctionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightingFunction_in_entryRuleWeightingFunction1623);
+            ruleWeightingFunction();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightingFunctionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightingFunction1630); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleWeightingFunction"
+
+
+    // $ANTLR start "ruleWeightingFunction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:799:1: ruleWeightingFunction : ( ( rule__WeightingFunction__Group__0 ) ) ;
+    public final void ruleWeightingFunction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:803:2: ( ( ( rule__WeightingFunction__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:804:1: ( ( rule__WeightingFunction__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:804:1: ( ( rule__WeightingFunction__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:805:1: ( rule__WeightingFunction__Group__0 )
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:806:1: ( rule__WeightingFunction__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:806:2: rule__WeightingFunction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__0_in_ruleWeightingFunction1656);
+            rule__WeightingFunction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightingFunctionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleWeightingFunction"
+
+
+    // $ANTLR start "entryRuleSpecification"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:818:1: entryRuleSpecification : ruleSpecification EOF ;
+    public final void entryRuleSpecification() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:819:1: ( ruleSpecification EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:820:1: ruleSpecification EOF
+            {
+             before(grammarAccess.getSpecificationRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSpecification_in_entryRuleSpecification1683);
+            ruleSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getSpecificationRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSpecification1690); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSpecification"
+
+
+    // $ANTLR start "ruleSpecification"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:827:1: ruleSpecification : ( ( rule__Specification__Group__0 ) ) ;
+    public final void ruleSpecification() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:831:2: ( ( ( rule__Specification__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:832:1: ( ( rule__Specification__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:832:1: ( ( rule__Specification__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:833:1: ( rule__Specification__Group__0 )
+            {
+             before(grammarAccess.getSpecificationAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:834:1: ( rule__Specification__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:834:2: rule__Specification__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__0_in_ruleSpecification1716);
+            rule__Specification__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSpecificationAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSpecification"
+
+
+    // $ANTLR start "entryRuleEDate"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:852:1: entryRuleEDate : ruleEDate EOF ;
+    public final void entryRuleEDate() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:853:1: ( ruleEDate EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:854:1: ruleEDate EOF
+            {
+             before(grammarAccess.getEDateRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDate_in_entryRuleEDate1749);
+            ruleEDate();
+
+            state._fsp--;
+
+             after(grammarAccess.getEDateRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEDate1756); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEDate"
+
+
+    // $ANTLR start "ruleEDate"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:861:1: ruleEDate : ( 'EDate' ) ;
+    public final void ruleEDate() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:865:2: ( ( 'EDate' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:866:1: ( 'EDate' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:866:1: ( 'EDate' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:867:1: 'EDate'
+            {
+             before(grammarAccess.getEDateAccess().getEDateKeyword()); 
+            match(input,11,FollowSets000.FOLLOW_11_in_ruleEDate1783); 
+             after(grammarAccess.getEDateAccess().getEDateKeyword()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEDate"
+
+
+    // $ANTLR start "entryRuleMetricValue"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:882:1: entryRuleMetricValue : ruleMetricValue EOF ;
+    public final void entryRuleMetricValue() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:883:1: ( ruleMetricValue EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:884:1: ruleMetricValue EOF
+            {
+             before(grammarAccess.getMetricValueRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleMetricValue_in_entryRuleMetricValue1811);
+            ruleMetricValue();
+
+            state._fsp--;
+
+             after(grammarAccess.getMetricValueRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleMetricValue1818); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleMetricValue"
+
+
+    // $ANTLR start "ruleMetricValue"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:891:1: ruleMetricValue : ( ( rule__MetricValue__Group__0 ) ) ;
+    public final void ruleMetricValue() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:895:2: ( ( ( rule__MetricValue__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:896:1: ( ( rule__MetricValue__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:896:1: ( ( rule__MetricValue__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:897:1: ( rule__MetricValue__Group__0 )
+            {
+             before(grammarAccess.getMetricValueAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:898:1: ( rule__MetricValue__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:898:2: rule__MetricValue__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__MetricValue__Group__0_in_ruleMetricValue1844);
+            rule__MetricValue__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMetricValueAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleMetricValue"
+
+
+    // $ANTLR start "entryRuleWeightedMetric"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:912:1: entryRuleWeightedMetric : ruleWeightedMetric EOF ;
+    public final void entryRuleWeightedMetric() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:913:1: ( ruleWeightedMetric EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:914:1: ruleWeightedMetric EOF
+            {
+             before(grammarAccess.getWeightedMetricRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedMetric_in_entryRuleWeightedMetric1873);
+            ruleWeightedMetric();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedMetricRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightedMetric1880); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleWeightedMetric"
+
+
+    // $ANTLR start "ruleWeightedMetric"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:921:1: ruleWeightedMetric : ( ( rule__WeightedMetric__Group__0 ) ) ;
+    public final void ruleWeightedMetric() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:925:2: ( ( ( rule__WeightedMetric__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:926:1: ( ( rule__WeightedMetric__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:926:1: ( ( rule__WeightedMetric__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:927:1: ( rule__WeightedMetric__Group__0 )
+            {
+             before(grammarAccess.getWeightedMetricAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:928:1: ( rule__WeightedMetric__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:928:2: rule__WeightedMetric__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedMetric__Group__0_in_ruleWeightedMetric1906);
+            rule__WeightedMetric__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleWeightedMetric"
+
+
+    // $ANTLR start "ruleAdaptationScope"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:941:1: ruleAdaptationScope : ( ( rule__AdaptationScope__Alternatives ) ) ;
+    public final void ruleAdaptationScope() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:945:1: ( ( ( rule__AdaptationScope__Alternatives ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:946:1: ( ( rule__AdaptationScope__Alternatives ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:946:1: ( ( rule__AdaptationScope__Alternatives ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:947:1: ( rule__AdaptationScope__Alternatives )
+            {
+             before(grammarAccess.getAdaptationScopeAccess().getAlternatives()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:948:1: ( rule__AdaptationScope__Alternatives )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:948:2: rule__AdaptationScope__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationScope__Alternatives_in_ruleAdaptationScope1943);
+            rule__AdaptationScope__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationScopeAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAdaptationScope"
+
+
+    // $ANTLR start "ruleAdaptationDirection"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:960:1: ruleAdaptationDirection : ( ( rule__AdaptationDirection__Alternatives ) ) ;
+    public final void ruleAdaptationDirection() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:964:1: ( ( ( rule__AdaptationDirection__Alternatives ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:965:1: ( ( rule__AdaptationDirection__Alternatives ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:965:1: ( ( rule__AdaptationDirection__Alternatives ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:966:1: ( rule__AdaptationDirection__Alternatives )
+            {
+             before(grammarAccess.getAdaptationDirectionAccess().getAlternatives()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:967:1: ( rule__AdaptationDirection__Alternatives )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:967:2: rule__AdaptationDirection__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationDirection__Alternatives_in_ruleAdaptationDirection1979);
+            rule__AdaptationDirection__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationDirectionAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAdaptationDirection"
+
+
+    // $ANTLR start "ruleRelationalOperator"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:979:1: ruleRelationalOperator : ( ( rule__RelationalOperator__Alternatives ) ) ;
+    public final void ruleRelationalOperator() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:983:1: ( ( ( rule__RelationalOperator__Alternatives ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:984:1: ( ( rule__RelationalOperator__Alternatives ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:984:1: ( ( rule__RelationalOperator__Alternatives ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:985:1: ( rule__RelationalOperator__Alternatives )
+            {
+             before(grammarAccess.getRelationalOperatorAccess().getAlternatives()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:986:1: ( rule__RelationalOperator__Alternatives )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:986:2: rule__RelationalOperator__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__RelationalOperator__Alternatives_in_ruleRelationalOperator2015);
+            rule__RelationalOperator__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRelationalOperatorAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleRelationalOperator"
+
+
+    // $ANTLR start "rule__AbstractControlFlowElement__Alternatives"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:998:1: rule__AbstractControlFlowElement__Alternatives : ( ( ruleStartAction ) | ( ruleStopAction ) | ( ruleLoopAction ) | ( ruleBranchAction ) | ( ruleActionReference ) );
+    public final void rule__AbstractControlFlowElement__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1002:1: ( ( ruleStartAction ) | ( ruleStopAction ) | ( ruleLoopAction ) | ( ruleBranchAction ) | ( ruleActionReference ) )
+            int alt1=5;
+            alt1 = dfa1.predict(input);
+            switch (alt1) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1003:1: ( ruleStartAction )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1003:1: ( ruleStartAction )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1004:1: ruleStartAction
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getStartActionParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleStartAction_in_rule__AbstractControlFlowElement__Alternatives2051);
+                    ruleStartAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractControlFlowElementAccess().getStartActionParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1009:6: ( ruleStopAction )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1009:6: ( ruleStopAction )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1010:1: ruleStopAction
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getStopActionParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleStopAction_in_rule__AbstractControlFlowElement__Alternatives2068);
+                    ruleStopAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractControlFlowElementAccess().getStopActionParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1015:6: ( ruleLoopAction )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1015:6: ( ruleLoopAction )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1016:1: ruleLoopAction
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getLoopActionParserRuleCall_2()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleLoopAction_in_rule__AbstractControlFlowElement__Alternatives2085);
+                    ruleLoopAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractControlFlowElementAccess().getLoopActionParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1021:6: ( ruleBranchAction )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1021:6: ( ruleBranchAction )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1022:1: ruleBranchAction
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getBranchActionParserRuleCall_3()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleBranchAction_in_rule__AbstractControlFlowElement__Alternatives2102);
+                    ruleBranchAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractControlFlowElementAccess().getBranchActionParserRuleCall_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1027:6: ( ruleActionReference )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1027:6: ( ruleActionReference )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1028:1: ruleActionReference
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleActionReference_in_rule__AbstractControlFlowElement__Alternatives2119);
+                    ruleActionReference();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AbstractControlFlowElement__Alternatives"
+
+
+    // $ANTLR start "rule__VariationType__Alternatives"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1038:1: rule__VariationType__Alternatives : ( ( rulePropertyRange ) | ( ruleSetOfConfigurations ) );
+    public final void rule__VariationType__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1042:1: ( ( rulePropertyRange ) | ( ruleSetOfConfigurations ) )
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+
+            if ( (LA2_0==87) ) {
+                alt2=1;
+            }
+            else if ( (LA2_0==90) ) {
+                alt2=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 2, 0, input);
+
+                throw nvae;
+            }
+            switch (alt2) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1043:1: ( rulePropertyRange )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1043:1: ( rulePropertyRange )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1044:1: rulePropertyRange
+                    {
+                     before(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_rulePropertyRange_in_rule__VariationType__Alternatives2151);
+                    rulePropertyRange();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1049:6: ( ruleSetOfConfigurations )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1049:6: ( ruleSetOfConfigurations )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1050:1: ruleSetOfConfigurations
+                    {
+                     before(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleSetOfConfigurations_in_rule__VariationType__Alternatives2168);
+                    ruleSetOfConfigurations();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariationType__Alternatives"
+
+
+    // $ANTLR start "rule__EString__Alternatives"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1060:1: rule__EString__Alternatives : ( ( RULE_STRING ) | ( RULE_ID ) );
+    public final void rule__EString__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1064:1: ( ( RULE_STRING ) | ( RULE_ID ) )
+            int alt3=2;
+            int LA3_0 = input.LA(1);
+
+            if ( (LA3_0==RULE_STRING) ) {
+                alt3=1;
+            }
+            else if ( (LA3_0==RULE_ID) ) {
+                alt3=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 3, 0, input);
+
+                throw nvae;
+            }
+            switch (alt3) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1065:1: ( RULE_STRING )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1065:1: ( RULE_STRING )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1066:1: RULE_STRING
+                    {
+                     before(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); 
+                    match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_rule__EString__Alternatives2200); 
+                     after(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1071:6: ( RULE_ID )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1071:6: ( RULE_ID )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1072:1: RULE_ID
+                    {
+                     before(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); 
+                    match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__EString__Alternatives2217); 
+                     after(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EString__Alternatives"
+
+
+    // $ANTLR start "rule__EDouble__Alternatives_4_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1082:1: rule__EDouble__Alternatives_4_0 : ( ( 'E' ) | ( 'e' ) );
+    public final void rule__EDouble__Alternatives_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1086:1: ( ( 'E' ) | ( 'e' ) )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==12) ) {
+                alt4=1;
+            }
+            else if ( (LA4_0==13) ) {
+                alt4=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 4, 0, input);
+
+                throw nvae;
+            }
+            switch (alt4) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1087:1: ( 'E' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1087:1: ( 'E' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1088:1: 'E'
+                    {
+                     before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); 
+                    match(input,12,FollowSets000.FOLLOW_12_in_rule__EDouble__Alternatives_4_02250); 
+                     after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1095:6: ( 'e' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1095:6: ( 'e' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1096:1: 'e'
+                    {
+                     before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); 
+                    match(input,13,FollowSets000.FOLLOW_13_in_rule__EDouble__Alternatives_4_02270); 
+                     after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Alternatives_4_0"
+
+
+    // $ANTLR start "rule__Objective__Alternatives_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1108:1: rule__Objective__Alternatives_5 : ( ( ( rule__Objective__SpecificationsAssignment_5_0 ) ) | ( ( rule__Objective__Group_5_1__0 ) ) );
+    public final void rule__Objective__Alternatives_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1112:1: ( ( ( rule__Objective__SpecificationsAssignment_5_0 ) ) | ( ( rule__Objective__Group_5_1__0 ) ) )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==102) ) {
+                alt5=1;
+            }
+            else if ( (LA5_0==51) ) {
+                int LA5_2 = input.LA(2);
+
+                if ( (LA5_2==51||LA5_2==102) ) {
+                    alt5=2;
+                }
+                else if ( ((LA5_2>=RULE_STRING && LA5_2<=RULE_ID)||LA5_2==103) ) {
+                    alt5=1;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 5, 2, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+            switch (alt5) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1113:1: ( ( rule__Objective__SpecificationsAssignment_5_0 ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1113:1: ( ( rule__Objective__SpecificationsAssignment_5_0 ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1114:1: ( rule__Objective__SpecificationsAssignment_5_0 )
+                    {
+                     before(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_0()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1115:1: ( rule__Objective__SpecificationsAssignment_5_0 )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1115:2: rule__Objective__SpecificationsAssignment_5_0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Objective__SpecificationsAssignment_5_0_in_rule__Objective__Alternatives_52304);
+                    rule__Objective__SpecificationsAssignment_5_0();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1119:6: ( ( rule__Objective__Group_5_1__0 ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1119:6: ( ( rule__Objective__Group_5_1__0 ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1120:1: ( rule__Objective__Group_5_1__0 )
+                    {
+                     before(grammarAccess.getObjectiveAccess().getGroup_5_1()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1121:1: ( rule__Objective__Group_5_1__0 )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1121:2: rule__Objective__Group_5_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1__0_in_rule__Objective__Alternatives_52322);
+                    rule__Objective__Group_5_1__0();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getObjectiveAccess().getGroup_5_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Alternatives_5"
+
+
+    // $ANTLR start "rule__AdaptationScope__Alternatives"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1130:1: rule__AdaptationScope__Alternatives : ( ( ( 'NOT_SET' ) ) | ( ( 'THIS' ) ) | ( ( 'LEAST_UTILIZED_FIRST' ) ) | ( ( 'MOST_UTILIZED_FIRST' ) ) | ( ( 'RANDOM' ) ) | ( ( 'ALL' ) ) );
+    public final void rule__AdaptationScope__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1134:1: ( ( ( 'NOT_SET' ) ) | ( ( 'THIS' ) ) | ( ( 'LEAST_UTILIZED_FIRST' ) ) | ( ( 'MOST_UTILIZED_FIRST' ) ) | ( ( 'RANDOM' ) ) | ( ( 'ALL' ) ) )
+            int alt6=6;
+            switch ( input.LA(1) ) {
+            case 14:
+                {
+                alt6=1;
+                }
+                break;
+            case 15:
+                {
+                alt6=2;
+                }
+                break;
+            case 16:
+                {
+                alt6=3;
+                }
+                break;
+            case 17:
+                {
+                alt6=4;
+                }
+                break;
+            case 18:
+                {
+                alt6=5;
+                }
+                break;
+            case 19:
+                {
+                alt6=6;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 6, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt6) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1135:1: ( ( 'NOT_SET' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1135:1: ( ( 'NOT_SET' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1136:1: ( 'NOT_SET' )
+                    {
+                     before(grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1137:1: ( 'NOT_SET' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1137:3: 'NOT_SET'
+                    {
+                    match(input,14,FollowSets000.FOLLOW_14_in_rule__AdaptationScope__Alternatives2356); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1142:6: ( ( 'THIS' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1142:6: ( ( 'THIS' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1143:1: ( 'THIS' )
+                    {
+                     before(grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1144:1: ( 'THIS' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1144:3: 'THIS'
+                    {
+                    match(input,15,FollowSets000.FOLLOW_15_in_rule__AdaptationScope__Alternatives2377); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1149:6: ( ( 'LEAST_UTILIZED_FIRST' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1149:6: ( ( 'LEAST_UTILIZED_FIRST' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1150:1: ( 'LEAST_UTILIZED_FIRST' )
+                    {
+                     before(grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1151:1: ( 'LEAST_UTILIZED_FIRST' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1151:3: 'LEAST_UTILIZED_FIRST'
+                    {
+                    match(input,16,FollowSets000.FOLLOW_16_in_rule__AdaptationScope__Alternatives2398); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1156:6: ( ( 'MOST_UTILIZED_FIRST' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1156:6: ( ( 'MOST_UTILIZED_FIRST' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1157:1: ( 'MOST_UTILIZED_FIRST' )
+                    {
+                     before(grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1158:1: ( 'MOST_UTILIZED_FIRST' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1158:3: 'MOST_UTILIZED_FIRST'
+                    {
+                    match(input,17,FollowSets000.FOLLOW_17_in_rule__AdaptationScope__Alternatives2419); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1163:6: ( ( 'RANDOM' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1163:6: ( ( 'RANDOM' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1164:1: ( 'RANDOM' )
+                    {
+                     before(grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1165:1: ( 'RANDOM' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1165:3: 'RANDOM'
+                    {
+                    match(input,18,FollowSets000.FOLLOW_18_in_rule__AdaptationScope__Alternatives2440); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1170:6: ( ( 'ALL' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1170:6: ( ( 'ALL' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1171:1: ( 'ALL' )
+                    {
+                     before(grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1172:1: ( 'ALL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1172:3: 'ALL'
+                    {
+                    match(input,19,FollowSets000.FOLLOW_19_in_rule__AdaptationScope__Alternatives2461); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationScope__Alternatives"
+
+
+    // $ANTLR start "rule__AdaptationDirection__Alternatives"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1182:1: rule__AdaptationDirection__Alternatives : ( ( ( 'NOT_SET' ) ) | ( ( 'INCREASE' ) ) | ( ( 'DECREASE' ) ) | ( ( 'MIGRATE' ) ) );
+    public final void rule__AdaptationDirection__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1186:1: ( ( ( 'NOT_SET' ) ) | ( ( 'INCREASE' ) ) | ( ( 'DECREASE' ) ) | ( ( 'MIGRATE' ) ) )
+            int alt7=4;
+            switch ( input.LA(1) ) {
+            case 14:
+                {
+                alt7=1;
+                }
+                break;
+            case 20:
+                {
+                alt7=2;
+                }
+                break;
+            case 21:
+                {
+                alt7=3;
+                }
+                break;
+            case 22:
+                {
+                alt7=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt7) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1187:1: ( ( 'NOT_SET' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1187:1: ( ( 'NOT_SET' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1188:1: ( 'NOT_SET' )
+                    {
+                     before(grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1189:1: ( 'NOT_SET' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1189:3: 'NOT_SET'
+                    {
+                    match(input,14,FollowSets000.FOLLOW_14_in_rule__AdaptationDirection__Alternatives2497); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1194:6: ( ( 'INCREASE' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1194:6: ( ( 'INCREASE' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1195:1: ( 'INCREASE' )
+                    {
+                     before(grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1196:1: ( 'INCREASE' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1196:3: 'INCREASE'
+                    {
+                    match(input,20,FollowSets000.FOLLOW_20_in_rule__AdaptationDirection__Alternatives2518); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1201:6: ( ( 'DECREASE' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1201:6: ( ( 'DECREASE' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1202:1: ( 'DECREASE' )
+                    {
+                     before(grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1203:1: ( 'DECREASE' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1203:3: 'DECREASE'
+                    {
+                    match(input,21,FollowSets000.FOLLOW_21_in_rule__AdaptationDirection__Alternatives2539); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1208:6: ( ( 'MIGRATE' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1208:6: ( ( 'MIGRATE' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1209:1: ( 'MIGRATE' )
+                    {
+                     before(grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1210:1: ( 'MIGRATE' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1210:3: 'MIGRATE'
+                    {
+                    match(input,22,FollowSets000.FOLLOW_22_in_rule__AdaptationDirection__Alternatives2560); 
+
+                    }
+
+                     after(grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationDirection__Alternatives"
+
+
+    // $ANTLR start "rule__RelationalOperator__Alternatives"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1220:1: rule__RelationalOperator__Alternatives : ( ( ( '==' ) ) | ( ( '!=' ) ) | ( ( '>' ) ) | ( ( '>=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) | ( ( 'EQUAL' ) ) | ( ( 'NOT_EQUAL' ) ) | ( ( 'GREATER' ) ) | ( ( 'GREATER_EQUAL' ) ) | ( ( 'LESS' ) ) | ( ( 'LESS_EQUAL' ) ) );
+    public final void rule__RelationalOperator__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1224:1: ( ( ( '==' ) ) | ( ( '!=' ) ) | ( ( '>' ) ) | ( ( '>=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) | ( ( 'EQUAL' ) ) | ( ( 'NOT_EQUAL' ) ) | ( ( 'GREATER' ) ) | ( ( 'GREATER_EQUAL' ) ) | ( ( 'LESS' ) ) | ( ( 'LESS_EQUAL' ) ) )
+            int alt8=12;
+            switch ( input.LA(1) ) {
+            case 23:
+                {
+                alt8=1;
+                }
+                break;
+            case 24:
+                {
+                alt8=2;
+                }
+                break;
+            case 25:
+                {
+                alt8=3;
+                }
+                break;
+            case 26:
+                {
+                alt8=4;
+                }
+                break;
+            case 27:
+                {
+                alt8=5;
+                }
+                break;
+            case 28:
+                {
+                alt8=6;
+                }
+                break;
+            case 29:
+                {
+                alt8=7;
+                }
+                break;
+            case 30:
+                {
+                alt8=8;
+                }
+                break;
+            case 31:
+                {
+                alt8=9;
+                }
+                break;
+            case 32:
+                {
+                alt8=10;
+                }
+                break;
+            case 33:
+                {
+                alt8=11;
+                }
+                break;
+            case 34:
+                {
+                alt8=12;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt8) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1225:1: ( ( '==' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1225:1: ( ( '==' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1226:1: ( '==' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1227:1: ( '==' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1227:3: '=='
+                    {
+                    match(input,23,FollowSets000.FOLLOW_23_in_rule__RelationalOperator__Alternatives2596); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1232:6: ( ( '!=' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1232:6: ( ( '!=' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1233:1: ( '!=' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1234:1: ( '!=' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1234:3: '!='
+                    {
+                    match(input,24,FollowSets000.FOLLOW_24_in_rule__RelationalOperator__Alternatives2617); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1239:6: ( ( '>' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1239:6: ( ( '>' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1240:1: ( '>' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1241:1: ( '>' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1241:3: '>'
+                    {
+                    match(input,25,FollowSets000.FOLLOW_25_in_rule__RelationalOperator__Alternatives2638); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1246:6: ( ( '>=' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1246:6: ( ( '>=' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1247:1: ( '>=' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1248:1: ( '>=' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1248:3: '>='
+                    {
+                    match(input,26,FollowSets000.FOLLOW_26_in_rule__RelationalOperator__Alternatives2659); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1253:6: ( ( '<' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1253:6: ( ( '<' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1254:1: ( '<' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1255:1: ( '<' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1255:3: '<'
+                    {
+                    match(input,27,FollowSets000.FOLLOW_27_in_rule__RelationalOperator__Alternatives2680); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1260:6: ( ( '<=' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1260:6: ( ( '<=' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1261:1: ( '<=' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1262:1: ( '<=' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1262:3: '<='
+                    {
+                    match(input,28,FollowSets000.FOLLOW_28_in_rule__RelationalOperator__Alternatives2701); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1267:6: ( ( 'EQUAL' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1267:6: ( ( 'EQUAL' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1268:1: ( 'EQUAL' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1269:1: ( 'EQUAL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1269:3: 'EQUAL'
+                    {
+                    match(input,29,FollowSets000.FOLLOW_29_in_rule__RelationalOperator__Alternatives2722); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1274:6: ( ( 'NOT_EQUAL' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1274:6: ( ( 'NOT_EQUAL' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1275:1: ( 'NOT_EQUAL' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1276:1: ( 'NOT_EQUAL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1276:3: 'NOT_EQUAL'
+                    {
+                    match(input,30,FollowSets000.FOLLOW_30_in_rule__RelationalOperator__Alternatives2743); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 9 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1281:6: ( ( 'GREATER' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1281:6: ( ( 'GREATER' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1282:1: ( 'GREATER' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1283:1: ( 'GREATER' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1283:3: 'GREATER'
+                    {
+                    match(input,31,FollowSets000.FOLLOW_31_in_rule__RelationalOperator__Alternatives2764); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 10 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1288:6: ( ( 'GREATER_EQUAL' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1288:6: ( ( 'GREATER_EQUAL' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1289:1: ( 'GREATER_EQUAL' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1290:1: ( 'GREATER_EQUAL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1290:3: 'GREATER_EQUAL'
+                    {
+                    match(input,32,FollowSets000.FOLLOW_32_in_rule__RelationalOperator__Alternatives2785); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 11 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1295:6: ( ( 'LESS' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1295:6: ( ( 'LESS' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1296:1: ( 'LESS' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1297:1: ( 'LESS' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1297:3: 'LESS'
+                    {
+                    match(input,33,FollowSets000.FOLLOW_33_in_rule__RelationalOperator__Alternatives2806); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 12 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1302:6: ( ( 'LESS_EQUAL' ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1302:6: ( ( 'LESS_EQUAL' ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1303:1: ( 'LESS_EQUAL' )
+                    {
+                     before(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11()); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1304:1: ( 'LESS_EQUAL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1304:3: 'LESS_EQUAL'
+                    {
+                    match(input,34,FollowSets000.FOLLOW_34_in_rule__RelationalOperator__Alternatives2827); 
+
+                    }
+
+                     after(grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RelationalOperator__Alternatives"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1316:1: rule__AdaptationProcess__Group__0 : rule__AdaptationProcess__Group__0__Impl rule__AdaptationProcess__Group__1 ;
+    public final void rule__AdaptationProcess__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1320:1: ( rule__AdaptationProcess__Group__0__Impl rule__AdaptationProcess__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1321:2: rule__AdaptationProcess__Group__0__Impl rule__AdaptationProcess__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__0__Impl_in_rule__AdaptationProcess__Group__02860);
+            rule__AdaptationProcess__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__1_in_rule__AdaptationProcess__Group__02863);
+            rule__AdaptationProcess__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__0"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1328:1: rule__AdaptationProcess__Group__0__Impl : ( ( rule__AdaptationProcess__ImportDeclarationAssignment_0 )* ) ;
+    public final void rule__AdaptationProcess__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1332:1: ( ( ( rule__AdaptationProcess__ImportDeclarationAssignment_0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1333:1: ( ( rule__AdaptationProcess__ImportDeclarationAssignment_0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1333:1: ( ( rule__AdaptationProcess__ImportDeclarationAssignment_0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1334:1: ( rule__AdaptationProcess__ImportDeclarationAssignment_0 )*
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getImportDeclarationAssignment_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1335:1: ( rule__AdaptationProcess__ImportDeclarationAssignment_0 )*
+            loop9:
+            do {
+                int alt9=2;
+                int LA9_0 = input.LA(1);
+
+                if ( (LA9_0==64) ) {
+                    alt9=1;
+                }
+
+
+                switch (alt9) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1335:2: rule__AdaptationProcess__ImportDeclarationAssignment_0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__ImportDeclarationAssignment_0_in_rule__AdaptationProcess__Group__0__Impl2890);
+            	    rule__AdaptationProcess__ImportDeclarationAssignment_0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop9;
+                }
+            } while (true);
+
+             after(grammarAccess.getAdaptationProcessAccess().getImportDeclarationAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1345:1: rule__AdaptationProcess__Group__1 : rule__AdaptationProcess__Group__1__Impl rule__AdaptationProcess__Group__2 ;
+    public final void rule__AdaptationProcess__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1349:1: ( rule__AdaptationProcess__Group__1__Impl rule__AdaptationProcess__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1350:2: rule__AdaptationProcess__Group__1__Impl rule__AdaptationProcess__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__1__Impl_in_rule__AdaptationProcess__Group__12921);
+            rule__AdaptationProcess__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__2_in_rule__AdaptationProcess__Group__12924);
+            rule__AdaptationProcess__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1357:1: rule__AdaptationProcess__Group__1__Impl : ( 'AdaptationProcess' ) ;
+    public final void rule__AdaptationProcess__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1361:1: ( ( 'AdaptationProcess' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1362:1: ( 'AdaptationProcess' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1362:1: ( 'AdaptationProcess' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1363:1: 'AdaptationProcess'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getAdaptationProcessKeyword_1()); 
+            match(input,35,FollowSets000.FOLLOW_35_in_rule__AdaptationProcess__Group__1__Impl2952); 
+             after(grammarAccess.getAdaptationProcessAccess().getAdaptationProcessKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1376:1: rule__AdaptationProcess__Group__2 : rule__AdaptationProcess__Group__2__Impl rule__AdaptationProcess__Group__3 ;
+    public final void rule__AdaptationProcess__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1380:1: ( rule__AdaptationProcess__Group__2__Impl rule__AdaptationProcess__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1381:2: rule__AdaptationProcess__Group__2__Impl rule__AdaptationProcess__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__2__Impl_in_rule__AdaptationProcess__Group__22983);
+            rule__AdaptationProcess__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__3_in_rule__AdaptationProcess__Group__22986);
+            rule__AdaptationProcess__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__2"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1388:1: rule__AdaptationProcess__Group__2__Impl : ( ( rule__AdaptationProcess__NameAssignment_2 ) ) ;
+    public final void rule__AdaptationProcess__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1392:1: ( ( ( rule__AdaptationProcess__NameAssignment_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1393:1: ( ( rule__AdaptationProcess__NameAssignment_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1393:1: ( ( rule__AdaptationProcess__NameAssignment_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1394:1: ( rule__AdaptationProcess__NameAssignment_2 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getNameAssignment_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1395:1: ( rule__AdaptationProcess__NameAssignment_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1395:2: rule__AdaptationProcess__NameAssignment_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__NameAssignment_2_in_rule__AdaptationProcess__Group__2__Impl3013);
+            rule__AdaptationProcess__NameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getNameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__2__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1405:1: rule__AdaptationProcess__Group__3 : rule__AdaptationProcess__Group__3__Impl rule__AdaptationProcess__Group__4 ;
+    public final void rule__AdaptationProcess__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1409:1: ( rule__AdaptationProcess__Group__3__Impl rule__AdaptationProcess__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1410:2: rule__AdaptationProcess__Group__3__Impl rule__AdaptationProcess__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__3__Impl_in_rule__AdaptationProcess__Group__33043);
+            rule__AdaptationProcess__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__4_in_rule__AdaptationProcess__Group__33046);
+            rule__AdaptationProcess__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__3"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1417:1: rule__AdaptationProcess__Group__3__Impl : ( ( rule__AdaptationProcess__Group_3__0 )? ) ;
+    public final void rule__AdaptationProcess__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1421:1: ( ( ( rule__AdaptationProcess__Group_3__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1422:1: ( ( rule__AdaptationProcess__Group_3__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1422:1: ( ( rule__AdaptationProcess__Group_3__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1423:1: ( rule__AdaptationProcess__Group_3__0 )?
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGroup_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1424:1: ( rule__AdaptationProcess__Group_3__0 )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==43) ) {
+                alt10=1;
+            }
+            switch (alt10) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1424:2: rule__AdaptationProcess__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_3__0_in_rule__AdaptationProcess__Group__3__Impl3073);
+                    rule__AdaptationProcess__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__3__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1434:1: rule__AdaptationProcess__Group__4 : rule__AdaptationProcess__Group__4__Impl rule__AdaptationProcess__Group__5 ;
+    public final void rule__AdaptationProcess__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1438:1: ( rule__AdaptationProcess__Group__4__Impl rule__AdaptationProcess__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1439:2: rule__AdaptationProcess__Group__4__Impl rule__AdaptationProcess__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__4__Impl_in_rule__AdaptationProcess__Group__43104);
+            rule__AdaptationProcess__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__5_in_rule__AdaptationProcess__Group__43107);
+            rule__AdaptationProcess__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__4"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1446:1: rule__AdaptationProcess__Group__4__Impl : ( '{' ) ;
+    public final void rule__AdaptationProcess__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1450:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1451:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1451:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1452:1: '{'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getLeftCurlyBracketKeyword_4()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__AdaptationProcess__Group__4__Impl3135); 
+             after(grammarAccess.getAdaptationProcessAccess().getLeftCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__4__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1465:1: rule__AdaptationProcess__Group__5 : rule__AdaptationProcess__Group__5__Impl rule__AdaptationProcess__Group__6 ;
+    public final void rule__AdaptationProcess__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1469:1: ( rule__AdaptationProcess__Group__5__Impl rule__AdaptationProcess__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1470:2: rule__AdaptationProcess__Group__5__Impl rule__AdaptationProcess__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__5__Impl_in_rule__AdaptationProcess__Group__53166);
+            rule__AdaptationProcess__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__6_in_rule__AdaptationProcess__Group__53169);
+            rule__AdaptationProcess__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__5"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1477:1: rule__AdaptationProcess__Group__5__Impl : ( ( rule__AdaptationProcess__Group_5__0 )? ) ;
+    public final void rule__AdaptationProcess__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1481:1: ( ( ( rule__AdaptationProcess__Group_5__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1482:1: ( ( rule__AdaptationProcess__Group_5__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1482:1: ( ( rule__AdaptationProcess__Group_5__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1483:1: ( rule__AdaptationProcess__Group_5__0 )?
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGroup_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1484:1: ( rule__AdaptationProcess__Group_5__0 )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==45) ) {
+                alt11=1;
+            }
+            switch (alt11) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1484:2: rule__AdaptationProcess__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5__0_in_rule__AdaptationProcess__Group__5__Impl3196);
+                    rule__AdaptationProcess__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__5__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1494:1: rule__AdaptationProcess__Group__6 : rule__AdaptationProcess__Group__6__Impl rule__AdaptationProcess__Group__7 ;
+    public final void rule__AdaptationProcess__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1498:1: ( rule__AdaptationProcess__Group__6__Impl rule__AdaptationProcess__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1499:2: rule__AdaptationProcess__Group__6__Impl rule__AdaptationProcess__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__6__Impl_in_rule__AdaptationProcess__Group__63227);
+            rule__AdaptationProcess__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__7_in_rule__AdaptationProcess__Group__63230);
+            rule__AdaptationProcess__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__6"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1506:1: rule__AdaptationProcess__Group__6__Impl : ( 'goal' ) ;
+    public final void rule__AdaptationProcess__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1510:1: ( ( 'goal' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1511:1: ( 'goal' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1511:1: ( 'goal' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1512:1: 'goal'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGoalKeyword_6()); 
+            match(input,37,FollowSets000.FOLLOW_37_in_rule__AdaptationProcess__Group__6__Impl3258); 
+             after(grammarAccess.getAdaptationProcessAccess().getGoalKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__6__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1525:1: rule__AdaptationProcess__Group__7 : rule__AdaptationProcess__Group__7__Impl rule__AdaptationProcess__Group__8 ;
+    public final void rule__AdaptationProcess__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1529:1: ( rule__AdaptationProcess__Group__7__Impl rule__AdaptationProcess__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1530:2: rule__AdaptationProcess__Group__7__Impl rule__AdaptationProcess__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__7__Impl_in_rule__AdaptationProcess__Group__73289);
+            rule__AdaptationProcess__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__8_in_rule__AdaptationProcess__Group__73292);
+            rule__AdaptationProcess__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__7"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1537:1: rule__AdaptationProcess__Group__7__Impl : ( ':' ) ;
+    public final void rule__AdaptationProcess__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1541:1: ( ( ':' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1542:1: ( ':' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1542:1: ( ':' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1543:1: ':'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_7()); 
+            match(input,38,FollowSets000.FOLLOW_38_in_rule__AdaptationProcess__Group__7__Impl3320); 
+             after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__7__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1556:1: rule__AdaptationProcess__Group__8 : rule__AdaptationProcess__Group__8__Impl rule__AdaptationProcess__Group__9 ;
+    public final void rule__AdaptationProcess__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1560:1: ( rule__AdaptationProcess__Group__8__Impl rule__AdaptationProcess__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1561:2: rule__AdaptationProcess__Group__8__Impl rule__AdaptationProcess__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__8__Impl_in_rule__AdaptationProcess__Group__83351);
+            rule__AdaptationProcess__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__9_in_rule__AdaptationProcess__Group__83354);
+            rule__AdaptationProcess__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__8"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1568:1: rule__AdaptationProcess__Group__8__Impl : ( ( rule__AdaptationProcess__GoalAssignment_8 ) ) ;
+    public final void rule__AdaptationProcess__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1572:1: ( ( ( rule__AdaptationProcess__GoalAssignment_8 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1573:1: ( ( rule__AdaptationProcess__GoalAssignment_8 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1573:1: ( ( rule__AdaptationProcess__GoalAssignment_8 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1574:1: ( rule__AdaptationProcess__GoalAssignment_8 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGoalAssignment_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1575:1: ( rule__AdaptationProcess__GoalAssignment_8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1575:2: rule__AdaptationProcess__GoalAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__GoalAssignment_8_in_rule__AdaptationProcess__Group__8__Impl3381);
+            rule__AdaptationProcess__GoalAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getGoalAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__8__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1585:1: rule__AdaptationProcess__Group__9 : rule__AdaptationProcess__Group__9__Impl rule__AdaptationProcess__Group__10 ;
+    public final void rule__AdaptationProcess__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1589:1: ( rule__AdaptationProcess__Group__9__Impl rule__AdaptationProcess__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1590:2: rule__AdaptationProcess__Group__9__Impl rule__AdaptationProcess__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__9__Impl_in_rule__AdaptationProcess__Group__93411);
+            rule__AdaptationProcess__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__10_in_rule__AdaptationProcess__Group__93414);
+            rule__AdaptationProcess__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__9"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1597:1: rule__AdaptationProcess__Group__9__Impl : ( 'actions' ) ;
+    public final void rule__AdaptationProcess__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1601:1: ( ( 'actions' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1602:1: ( 'actions' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1602:1: ( 'actions' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1603:1: 'actions'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getActionsKeyword_9()); 
+            match(input,39,FollowSets000.FOLLOW_39_in_rule__AdaptationProcess__Group__9__Impl3442); 
+             after(grammarAccess.getAdaptationProcessAccess().getActionsKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__9__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1616:1: rule__AdaptationProcess__Group__10 : rule__AdaptationProcess__Group__10__Impl rule__AdaptationProcess__Group__11 ;
+    public final void rule__AdaptationProcess__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1620:1: ( rule__AdaptationProcess__Group__10__Impl rule__AdaptationProcess__Group__11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1621:2: rule__AdaptationProcess__Group__10__Impl rule__AdaptationProcess__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__10__Impl_in_rule__AdaptationProcess__Group__103473);
+            rule__AdaptationProcess__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__11_in_rule__AdaptationProcess__Group__103476);
+            rule__AdaptationProcess__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__10"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1628:1: rule__AdaptationProcess__Group__10__Impl : ( ':' ) ;
+    public final void rule__AdaptationProcess__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1632:1: ( ( ':' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1633:1: ( ':' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1633:1: ( ':' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1634:1: ':'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_10()); 
+            match(input,38,FollowSets000.FOLLOW_38_in_rule__AdaptationProcess__Group__10__Impl3504); 
+             after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__10__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1647:1: rule__AdaptationProcess__Group__11 : rule__AdaptationProcess__Group__11__Impl rule__AdaptationProcess__Group__12 ;
+    public final void rule__AdaptationProcess__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1651:1: ( rule__AdaptationProcess__Group__11__Impl rule__AdaptationProcess__Group__12 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1652:2: rule__AdaptationProcess__Group__11__Impl rule__AdaptationProcess__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__11__Impl_in_rule__AdaptationProcess__Group__113535);
+            rule__AdaptationProcess__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__12_in_rule__AdaptationProcess__Group__113538);
+            rule__AdaptationProcess__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__11"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__11__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1659:1: rule__AdaptationProcess__Group__11__Impl : ( ( rule__AdaptationProcess__ActionsAssignment_11 ) ) ;
+    public final void rule__AdaptationProcess__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1663:1: ( ( ( rule__AdaptationProcess__ActionsAssignment_11 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1664:1: ( ( rule__AdaptationProcess__ActionsAssignment_11 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1664:1: ( ( rule__AdaptationProcess__ActionsAssignment_11 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1665:1: ( rule__AdaptationProcess__ActionsAssignment_11 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_11()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1666:1: ( rule__AdaptationProcess__ActionsAssignment_11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1666:2: rule__AdaptationProcess__ActionsAssignment_11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__ActionsAssignment_11_in_rule__AdaptationProcess__Group__11__Impl3565);
+            rule__AdaptationProcess__ActionsAssignment_11();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__11__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__12"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1676:1: rule__AdaptationProcess__Group__12 : rule__AdaptationProcess__Group__12__Impl rule__AdaptationProcess__Group__13 ;
+    public final void rule__AdaptationProcess__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1680:1: ( rule__AdaptationProcess__Group__12__Impl rule__AdaptationProcess__Group__13 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1681:2: rule__AdaptationProcess__Group__12__Impl rule__AdaptationProcess__Group__13
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__12__Impl_in_rule__AdaptationProcess__Group__123595);
+            rule__AdaptationProcess__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__13_in_rule__AdaptationProcess__Group__123598);
+            rule__AdaptationProcess__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__12"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__12__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1688:1: rule__AdaptationProcess__Group__12__Impl : ( ( rule__AdaptationProcess__Group_12__0 )* ) ;
+    public final void rule__AdaptationProcess__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1692:1: ( ( ( rule__AdaptationProcess__Group_12__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1693:1: ( ( rule__AdaptationProcess__Group_12__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1693:1: ( ( rule__AdaptationProcess__Group_12__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1694:1: ( rule__AdaptationProcess__Group_12__0 )*
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGroup_12()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1695:1: ( rule__AdaptationProcess__Group_12__0 )*
+            loop12:
+            do {
+                int alt12=2;
+                int LA12_0 = input.LA(1);
+
+                if ( (LA12_0==46) ) {
+                    alt12=1;
+                }
+
+
+                switch (alt12) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1695:2: rule__AdaptationProcess__Group_12__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_12__0_in_rule__AdaptationProcess__Group__12__Impl3625);
+            	    rule__AdaptationProcess__Group_12__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop12;
+                }
+            } while (true);
+
+             after(grammarAccess.getAdaptationProcessAccess().getGroup_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__12__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__13"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1705:1: rule__AdaptationProcess__Group__13 : rule__AdaptationProcess__Group__13__Impl rule__AdaptationProcess__Group__14 ;
+    public final void rule__AdaptationProcess__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1709:1: ( rule__AdaptationProcess__Group__13__Impl rule__AdaptationProcess__Group__14 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1710:2: rule__AdaptationProcess__Group__13__Impl rule__AdaptationProcess__Group__14
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__13__Impl_in_rule__AdaptationProcess__Group__133656);
+            rule__AdaptationProcess__Group__13__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__14_in_rule__AdaptationProcess__Group__133659);
+            rule__AdaptationProcess__Group__14();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__13"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__13__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1717:1: rule__AdaptationProcess__Group__13__Impl : ( 'tactics' ) ;
+    public final void rule__AdaptationProcess__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1721:1: ( ( 'tactics' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1722:1: ( 'tactics' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1722:1: ( 'tactics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1723:1: 'tactics'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getTacticsKeyword_13()); 
+            match(input,40,FollowSets000.FOLLOW_40_in_rule__AdaptationProcess__Group__13__Impl3687); 
+             after(grammarAccess.getAdaptationProcessAccess().getTacticsKeyword_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__13__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__14"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1736:1: rule__AdaptationProcess__Group__14 : rule__AdaptationProcess__Group__14__Impl rule__AdaptationProcess__Group__15 ;
+    public final void rule__AdaptationProcess__Group__14() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1740:1: ( rule__AdaptationProcess__Group__14__Impl rule__AdaptationProcess__Group__15 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1741:2: rule__AdaptationProcess__Group__14__Impl rule__AdaptationProcess__Group__15
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__14__Impl_in_rule__AdaptationProcess__Group__143718);
+            rule__AdaptationProcess__Group__14__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__15_in_rule__AdaptationProcess__Group__143721);
+            rule__AdaptationProcess__Group__15();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__14"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__14__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1748:1: rule__AdaptationProcess__Group__14__Impl : ( ':' ) ;
+    public final void rule__AdaptationProcess__Group__14__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1752:1: ( ( ':' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1753:1: ( ':' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1753:1: ( ':' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1754:1: ':'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_14()); 
+            match(input,38,FollowSets000.FOLLOW_38_in_rule__AdaptationProcess__Group__14__Impl3749); 
+             after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_14()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__14__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__15"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1767:1: rule__AdaptationProcess__Group__15 : rule__AdaptationProcess__Group__15__Impl rule__AdaptationProcess__Group__16 ;
+    public final void rule__AdaptationProcess__Group__15() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1771:1: ( rule__AdaptationProcess__Group__15__Impl rule__AdaptationProcess__Group__16 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1772:2: rule__AdaptationProcess__Group__15__Impl rule__AdaptationProcess__Group__16
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__15__Impl_in_rule__AdaptationProcess__Group__153780);
+            rule__AdaptationProcess__Group__15__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__16_in_rule__AdaptationProcess__Group__153783);
+            rule__AdaptationProcess__Group__16();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__15"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__15__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1779:1: rule__AdaptationProcess__Group__15__Impl : ( ( rule__AdaptationProcess__TacticsAssignment_15 ) ) ;
+    public final void rule__AdaptationProcess__Group__15__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1783:1: ( ( ( rule__AdaptationProcess__TacticsAssignment_15 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1784:1: ( ( rule__AdaptationProcess__TacticsAssignment_15 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1784:1: ( ( rule__AdaptationProcess__TacticsAssignment_15 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1785:1: ( rule__AdaptationProcess__TacticsAssignment_15 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_15()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1786:1: ( rule__AdaptationProcess__TacticsAssignment_15 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1786:2: rule__AdaptationProcess__TacticsAssignment_15
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__TacticsAssignment_15_in_rule__AdaptationProcess__Group__15__Impl3810);
+            rule__AdaptationProcess__TacticsAssignment_15();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_15()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__15__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__16"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1796:1: rule__AdaptationProcess__Group__16 : rule__AdaptationProcess__Group__16__Impl rule__AdaptationProcess__Group__17 ;
+    public final void rule__AdaptationProcess__Group__16() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1800:1: ( rule__AdaptationProcess__Group__16__Impl rule__AdaptationProcess__Group__17 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1801:2: rule__AdaptationProcess__Group__16__Impl rule__AdaptationProcess__Group__17
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__16__Impl_in_rule__AdaptationProcess__Group__163840);
+            rule__AdaptationProcess__Group__16__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__17_in_rule__AdaptationProcess__Group__163843);
+            rule__AdaptationProcess__Group__17();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__16"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__16__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1808:1: rule__AdaptationProcess__Group__16__Impl : ( ( rule__AdaptationProcess__Group_16__0 )* ) ;
+    public final void rule__AdaptationProcess__Group__16__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1812:1: ( ( ( rule__AdaptationProcess__Group_16__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1813:1: ( ( rule__AdaptationProcess__Group_16__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1813:1: ( ( rule__AdaptationProcess__Group_16__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1814:1: ( rule__AdaptationProcess__Group_16__0 )*
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGroup_16()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1815:1: ( rule__AdaptationProcess__Group_16__0 )*
+            loop13:
+            do {
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+
+                if ( (LA13_0==46) ) {
+                    alt13=1;
+                }
+
+
+                switch (alt13) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1815:2: rule__AdaptationProcess__Group_16__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_16__0_in_rule__AdaptationProcess__Group__16__Impl3870);
+            	    rule__AdaptationProcess__Group_16__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop13;
+                }
+            } while (true);
+
+             after(grammarAccess.getAdaptationProcessAccess().getGroup_16()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__16__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__17"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1825:1: rule__AdaptationProcess__Group__17 : rule__AdaptationProcess__Group__17__Impl rule__AdaptationProcess__Group__18 ;
+    public final void rule__AdaptationProcess__Group__17() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1829:1: ( rule__AdaptationProcess__Group__17__Impl rule__AdaptationProcess__Group__18 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1830:2: rule__AdaptationProcess__Group__17__Impl rule__AdaptationProcess__Group__18
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__17__Impl_in_rule__AdaptationProcess__Group__173901);
+            rule__AdaptationProcess__Group__17__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__18_in_rule__AdaptationProcess__Group__173904);
+            rule__AdaptationProcess__Group__18();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__17"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__17__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1837:1: rule__AdaptationProcess__Group__17__Impl : ( 'strategies' ) ;
+    public final void rule__AdaptationProcess__Group__17__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1841:1: ( ( 'strategies' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1842:1: ( 'strategies' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1842:1: ( 'strategies' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1843:1: 'strategies'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getStrategiesKeyword_17()); 
+            match(input,41,FollowSets000.FOLLOW_41_in_rule__AdaptationProcess__Group__17__Impl3932); 
+             after(grammarAccess.getAdaptationProcessAccess().getStrategiesKeyword_17()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__17__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__18"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1856:1: rule__AdaptationProcess__Group__18 : rule__AdaptationProcess__Group__18__Impl rule__AdaptationProcess__Group__19 ;
+    public final void rule__AdaptationProcess__Group__18() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1860:1: ( rule__AdaptationProcess__Group__18__Impl rule__AdaptationProcess__Group__19 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1861:2: rule__AdaptationProcess__Group__18__Impl rule__AdaptationProcess__Group__19
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__18__Impl_in_rule__AdaptationProcess__Group__183963);
+            rule__AdaptationProcess__Group__18__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__19_in_rule__AdaptationProcess__Group__183966);
+            rule__AdaptationProcess__Group__19();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__18"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__18__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1868:1: rule__AdaptationProcess__Group__18__Impl : ( ':' ) ;
+    public final void rule__AdaptationProcess__Group__18__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1872:1: ( ( ':' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1873:1: ( ':' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1873:1: ( ':' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1874:1: ':'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_18()); 
+            match(input,38,FollowSets000.FOLLOW_38_in_rule__AdaptationProcess__Group__18__Impl3994); 
+             after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_18()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__18__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__19"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1887:1: rule__AdaptationProcess__Group__19 : rule__AdaptationProcess__Group__19__Impl rule__AdaptationProcess__Group__20 ;
+    public final void rule__AdaptationProcess__Group__19() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1891:1: ( rule__AdaptationProcess__Group__19__Impl rule__AdaptationProcess__Group__20 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1892:2: rule__AdaptationProcess__Group__19__Impl rule__AdaptationProcess__Group__20
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__19__Impl_in_rule__AdaptationProcess__Group__194025);
+            rule__AdaptationProcess__Group__19__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__20_in_rule__AdaptationProcess__Group__194028);
+            rule__AdaptationProcess__Group__20();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__19"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__19__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1899:1: rule__AdaptationProcess__Group__19__Impl : ( ( rule__AdaptationProcess__StrategiesAssignment_19 ) ) ;
+    public final void rule__AdaptationProcess__Group__19__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1903:1: ( ( ( rule__AdaptationProcess__StrategiesAssignment_19 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1904:1: ( ( rule__AdaptationProcess__StrategiesAssignment_19 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1904:1: ( ( rule__AdaptationProcess__StrategiesAssignment_19 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1905:1: ( rule__AdaptationProcess__StrategiesAssignment_19 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_19()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1906:1: ( rule__AdaptationProcess__StrategiesAssignment_19 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1906:2: rule__AdaptationProcess__StrategiesAssignment_19
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__StrategiesAssignment_19_in_rule__AdaptationProcess__Group__19__Impl4055);
+            rule__AdaptationProcess__StrategiesAssignment_19();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_19()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__19__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__20"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1916:1: rule__AdaptationProcess__Group__20 : rule__AdaptationProcess__Group__20__Impl rule__AdaptationProcess__Group__21 ;
+    public final void rule__AdaptationProcess__Group__20() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1920:1: ( rule__AdaptationProcess__Group__20__Impl rule__AdaptationProcess__Group__21 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1921:2: rule__AdaptationProcess__Group__20__Impl rule__AdaptationProcess__Group__21
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__20__Impl_in_rule__AdaptationProcess__Group__204085);
+            rule__AdaptationProcess__Group__20__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__21_in_rule__AdaptationProcess__Group__204088);
+            rule__AdaptationProcess__Group__21();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__20"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__20__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1928:1: rule__AdaptationProcess__Group__20__Impl : ( ( rule__AdaptationProcess__Group_20__0 )* ) ;
+    public final void rule__AdaptationProcess__Group__20__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1932:1: ( ( ( rule__AdaptationProcess__Group_20__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1933:1: ( ( rule__AdaptationProcess__Group_20__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1933:1: ( ( rule__AdaptationProcess__Group_20__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1934:1: ( rule__AdaptationProcess__Group_20__0 )*
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGroup_20()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1935:1: ( rule__AdaptationProcess__Group_20__0 )*
+            loop14:
+            do {
+                int alt14=2;
+                int LA14_0 = input.LA(1);
+
+                if ( (LA14_0==46) ) {
+                    alt14=1;
+                }
+
+
+                switch (alt14) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1935:2: rule__AdaptationProcess__Group_20__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_20__0_in_rule__AdaptationProcess__Group__20__Impl4115);
+            	    rule__AdaptationProcess__Group_20__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop14;
+                }
+            } while (true);
+
+             after(grammarAccess.getAdaptationProcessAccess().getGroup_20()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__20__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__21"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1945:1: rule__AdaptationProcess__Group__21 : rule__AdaptationProcess__Group__21__Impl ;
+    public final void rule__AdaptationProcess__Group__21() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1949:1: ( rule__AdaptationProcess__Group__21__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1950:2: rule__AdaptationProcess__Group__21__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group__21__Impl_in_rule__AdaptationProcess__Group__214146);
+            rule__AdaptationProcess__Group__21__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__21"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group__21__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1956:1: rule__AdaptationProcess__Group__21__Impl : ( '}' ) ;
+    public final void rule__AdaptationProcess__Group__21__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1960:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1961:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1961:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:1962:1: '}'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getRightCurlyBracketKeyword_21()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__AdaptationProcess__Group__21__Impl4174); 
+             after(grammarAccess.getAdaptationProcessAccess().getRightCurlyBracketKeyword_21()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group__21__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2019:1: rule__AdaptationProcess__Group_3__0 : rule__AdaptationProcess__Group_3__0__Impl rule__AdaptationProcess__Group_3__1 ;
+    public final void rule__AdaptationProcess__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2023:1: ( rule__AdaptationProcess__Group_3__0__Impl rule__AdaptationProcess__Group_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2024:2: rule__AdaptationProcess__Group_3__0__Impl rule__AdaptationProcess__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_3__0__Impl_in_rule__AdaptationProcess__Group_3__04249);
+            rule__AdaptationProcess__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_3__1_in_rule__AdaptationProcess__Group_3__04252);
+            rule__AdaptationProcess__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_3__0"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2031:1: rule__AdaptationProcess__Group_3__0__Impl : ( '[id:' ) ;
+    public final void rule__AdaptationProcess__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2035:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2036:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2036:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2037:1: '[id:'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getIdKeyword_3_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__AdaptationProcess__Group_3__0__Impl4280); 
+             after(grammarAccess.getAdaptationProcessAccess().getIdKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2050:1: rule__AdaptationProcess__Group_3__1 : rule__AdaptationProcess__Group_3__1__Impl rule__AdaptationProcess__Group_3__2 ;
+    public final void rule__AdaptationProcess__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2054:1: ( rule__AdaptationProcess__Group_3__1__Impl rule__AdaptationProcess__Group_3__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2055:2: rule__AdaptationProcess__Group_3__1__Impl rule__AdaptationProcess__Group_3__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_3__1__Impl_in_rule__AdaptationProcess__Group_3__14311);
+            rule__AdaptationProcess__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_3__2_in_rule__AdaptationProcess__Group_3__14314);
+            rule__AdaptationProcess__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_3__1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2062:1: rule__AdaptationProcess__Group_3__1__Impl : ( ( rule__AdaptationProcess__IdAssignment_3_1 ) ) ;
+    public final void rule__AdaptationProcess__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2066:1: ( ( ( rule__AdaptationProcess__IdAssignment_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2067:1: ( ( rule__AdaptationProcess__IdAssignment_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2067:1: ( ( rule__AdaptationProcess__IdAssignment_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2068:1: ( rule__AdaptationProcess__IdAssignment_3_1 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getIdAssignment_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2069:1: ( rule__AdaptationProcess__IdAssignment_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2069:2: rule__AdaptationProcess__IdAssignment_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__IdAssignment_3_1_in_rule__AdaptationProcess__Group_3__1__Impl4341);
+            rule__AdaptationProcess__IdAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getIdAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_3__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2079:1: rule__AdaptationProcess__Group_3__2 : rule__AdaptationProcess__Group_3__2__Impl ;
+    public final void rule__AdaptationProcess__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2083:1: ( rule__AdaptationProcess__Group_3__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2084:2: rule__AdaptationProcess__Group_3__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_3__2__Impl_in_rule__AdaptationProcess__Group_3__24371);
+            rule__AdaptationProcess__Group_3__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_3__2"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_3__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2090:1: rule__AdaptationProcess__Group_3__2__Impl : ( ']' ) ;
+    public final void rule__AdaptationProcess__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2094:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2095:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2095:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2096:1: ']'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getRightSquareBracketKeyword_3_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__AdaptationProcess__Group_3__2__Impl4399); 
+             after(grammarAccess.getAdaptationProcessAccess().getRightSquareBracketKeyword_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2115:1: rule__AdaptationProcess__Group_5__0 : rule__AdaptationProcess__Group_5__0__Impl rule__AdaptationProcess__Group_5__1 ;
+    public final void rule__AdaptationProcess__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2119:1: ( rule__AdaptationProcess__Group_5__0__Impl rule__AdaptationProcess__Group_5__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2120:2: rule__AdaptationProcess__Group_5__0__Impl rule__AdaptationProcess__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5__0__Impl_in_rule__AdaptationProcess__Group_5__04436);
+            rule__AdaptationProcess__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5__1_in_rule__AdaptationProcess__Group_5__04439);
+            rule__AdaptationProcess__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5__0"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2127:1: rule__AdaptationProcess__Group_5__0__Impl : ( 'parameters' ) ;
+    public final void rule__AdaptationProcess__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2131:1: ( ( 'parameters' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2132:1: ( 'parameters' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2132:1: ( 'parameters' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2133:1: 'parameters'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getParametersKeyword_5_0()); 
+            match(input,45,FollowSets000.FOLLOW_45_in_rule__AdaptationProcess__Group_5__0__Impl4467); 
+             after(grammarAccess.getAdaptationProcessAccess().getParametersKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2146:1: rule__AdaptationProcess__Group_5__1 : rule__AdaptationProcess__Group_5__1__Impl rule__AdaptationProcess__Group_5__2 ;
+    public final void rule__AdaptationProcess__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2150:1: ( rule__AdaptationProcess__Group_5__1__Impl rule__AdaptationProcess__Group_5__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2151:2: rule__AdaptationProcess__Group_5__1__Impl rule__AdaptationProcess__Group_5__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5__1__Impl_in_rule__AdaptationProcess__Group_5__14498);
+            rule__AdaptationProcess__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5__2_in_rule__AdaptationProcess__Group_5__14501);
+            rule__AdaptationProcess__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5__1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2158:1: rule__AdaptationProcess__Group_5__1__Impl : ( ':' ) ;
+    public final void rule__AdaptationProcess__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2162:1: ( ( ':' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2163:1: ( ':' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2163:1: ( ':' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2164:1: ':'
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getColonKeyword_5_1()); 
+            match(input,38,FollowSets000.FOLLOW_38_in_rule__AdaptationProcess__Group_5__1__Impl4529); 
+             after(grammarAccess.getAdaptationProcessAccess().getColonKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2177:1: rule__AdaptationProcess__Group_5__2 : rule__AdaptationProcess__Group_5__2__Impl rule__AdaptationProcess__Group_5__3 ;
+    public final void rule__AdaptationProcess__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2181:1: ( rule__AdaptationProcess__Group_5__2__Impl rule__AdaptationProcess__Group_5__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2182:2: rule__AdaptationProcess__Group_5__2__Impl rule__AdaptationProcess__Group_5__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5__2__Impl_in_rule__AdaptationProcess__Group_5__24560);
+            rule__AdaptationProcess__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5__3_in_rule__AdaptationProcess__Group_5__24563);
+            rule__AdaptationProcess__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5__2"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2189:1: rule__AdaptationProcess__Group_5__2__Impl : ( ( rule__AdaptationProcess__ParametersAssignment_5_2 ) ) ;
+    public final void rule__AdaptationProcess__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2193:1: ( ( ( rule__AdaptationProcess__ParametersAssignment_5_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2194:1: ( ( rule__AdaptationProcess__ParametersAssignment_5_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2194:1: ( ( rule__AdaptationProcess__ParametersAssignment_5_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2195:1: ( rule__AdaptationProcess__ParametersAssignment_5_2 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2196:1: ( rule__AdaptationProcess__ParametersAssignment_5_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2196:2: rule__AdaptationProcess__ParametersAssignment_5_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__ParametersAssignment_5_2_in_rule__AdaptationProcess__Group_5__2__Impl4590);
+            rule__AdaptationProcess__ParametersAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2206:1: rule__AdaptationProcess__Group_5__3 : rule__AdaptationProcess__Group_5__3__Impl ;
+    public final void rule__AdaptationProcess__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2210:1: ( rule__AdaptationProcess__Group_5__3__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2211:2: rule__AdaptationProcess__Group_5__3__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5__3__Impl_in_rule__AdaptationProcess__Group_5__34620);
+            rule__AdaptationProcess__Group_5__3__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5__3"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2217:1: rule__AdaptationProcess__Group_5__3__Impl : ( ( rule__AdaptationProcess__Group_5_3__0 )* ) ;
+    public final void rule__AdaptationProcess__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2221:1: ( ( ( rule__AdaptationProcess__Group_5_3__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2222:1: ( ( rule__AdaptationProcess__Group_5_3__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2222:1: ( ( rule__AdaptationProcess__Group_5_3__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2223:1: ( rule__AdaptationProcess__Group_5_3__0 )*
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGroup_5_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2224:1: ( rule__AdaptationProcess__Group_5_3__0 )*
+            loop15:
+            do {
+                int alt15=2;
+                int LA15_0 = input.LA(1);
+
+                if ( (LA15_0==46) ) {
+                    alt15=1;
+                }
+
+
+                switch (alt15) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2224:2: rule__AdaptationProcess__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5_3__0_in_rule__AdaptationProcess__Group_5__3__Impl4647);
+            	    rule__AdaptationProcess__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop15;
+                }
+            } while (true);
+
+             after(grammarAccess.getAdaptationProcessAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2242:1: rule__AdaptationProcess__Group_5_3__0 : rule__AdaptationProcess__Group_5_3__0__Impl rule__AdaptationProcess__Group_5_3__1 ;
+    public final void rule__AdaptationProcess__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2246:1: ( rule__AdaptationProcess__Group_5_3__0__Impl rule__AdaptationProcess__Group_5_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2247:2: rule__AdaptationProcess__Group_5_3__0__Impl rule__AdaptationProcess__Group_5_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5_3__0__Impl_in_rule__AdaptationProcess__Group_5_3__04686);
+            rule__AdaptationProcess__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5_3__1_in_rule__AdaptationProcess__Group_5_3__04689);
+            rule__AdaptationProcess__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5_3__0"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2254:1: rule__AdaptationProcess__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__AdaptationProcess__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2258:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2259:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2259:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2260:1: ','
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_5_3_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__AdaptationProcess__Group_5_3__0__Impl4717); 
+             after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2273:1: rule__AdaptationProcess__Group_5_3__1 : rule__AdaptationProcess__Group_5_3__1__Impl ;
+    public final void rule__AdaptationProcess__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2277:1: ( rule__AdaptationProcess__Group_5_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2278:2: rule__AdaptationProcess__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_5_3__1__Impl_in_rule__AdaptationProcess__Group_5_3__14748);
+            rule__AdaptationProcess__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5_3__1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_5_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2284:1: rule__AdaptationProcess__Group_5_3__1__Impl : ( ( rule__AdaptationProcess__ParametersAssignment_5_3_1 ) ) ;
+    public final void rule__AdaptationProcess__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2288:1: ( ( ( rule__AdaptationProcess__ParametersAssignment_5_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2289:1: ( ( rule__AdaptationProcess__ParametersAssignment_5_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2289:1: ( ( rule__AdaptationProcess__ParametersAssignment_5_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2290:1: ( rule__AdaptationProcess__ParametersAssignment_5_3_1 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2291:1: ( rule__AdaptationProcess__ParametersAssignment_5_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2291:2: rule__AdaptationProcess__ParametersAssignment_5_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__ParametersAssignment_5_3_1_in_rule__AdaptationProcess__Group_5_3__1__Impl4775);
+            rule__AdaptationProcess__ParametersAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getParametersAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_12__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2305:1: rule__AdaptationProcess__Group_12__0 : rule__AdaptationProcess__Group_12__0__Impl rule__AdaptationProcess__Group_12__1 ;
+    public final void rule__AdaptationProcess__Group_12__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2309:1: ( rule__AdaptationProcess__Group_12__0__Impl rule__AdaptationProcess__Group_12__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2310:2: rule__AdaptationProcess__Group_12__0__Impl rule__AdaptationProcess__Group_12__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_12__0__Impl_in_rule__AdaptationProcess__Group_12__04809);
+            rule__AdaptationProcess__Group_12__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_12__1_in_rule__AdaptationProcess__Group_12__04812);
+            rule__AdaptationProcess__Group_12__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_12__0"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_12__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2317:1: rule__AdaptationProcess__Group_12__0__Impl : ( ',' ) ;
+    public final void rule__AdaptationProcess__Group_12__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2321:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2322:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2322:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2323:1: ','
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_12_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__AdaptationProcess__Group_12__0__Impl4840); 
+             after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_12__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_12__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2336:1: rule__AdaptationProcess__Group_12__1 : rule__AdaptationProcess__Group_12__1__Impl ;
+    public final void rule__AdaptationProcess__Group_12__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2340:1: ( rule__AdaptationProcess__Group_12__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2341:2: rule__AdaptationProcess__Group_12__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_12__1__Impl_in_rule__AdaptationProcess__Group_12__14871);
+            rule__AdaptationProcess__Group_12__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_12__1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_12__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2347:1: rule__AdaptationProcess__Group_12__1__Impl : ( ( rule__AdaptationProcess__ActionsAssignment_12_1 ) ) ;
+    public final void rule__AdaptationProcess__Group_12__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2351:1: ( ( ( rule__AdaptationProcess__ActionsAssignment_12_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2352:1: ( ( rule__AdaptationProcess__ActionsAssignment_12_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2352:1: ( ( rule__AdaptationProcess__ActionsAssignment_12_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2353:1: ( rule__AdaptationProcess__ActionsAssignment_12_1 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_12_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2354:1: ( rule__AdaptationProcess__ActionsAssignment_12_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2354:2: rule__AdaptationProcess__ActionsAssignment_12_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__ActionsAssignment_12_1_in_rule__AdaptationProcess__Group_12__1__Impl4898);
+            rule__AdaptationProcess__ActionsAssignment_12_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getActionsAssignment_12_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_12__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_16__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2368:1: rule__AdaptationProcess__Group_16__0 : rule__AdaptationProcess__Group_16__0__Impl rule__AdaptationProcess__Group_16__1 ;
+    public final void rule__AdaptationProcess__Group_16__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2372:1: ( rule__AdaptationProcess__Group_16__0__Impl rule__AdaptationProcess__Group_16__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2373:2: rule__AdaptationProcess__Group_16__0__Impl rule__AdaptationProcess__Group_16__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_16__0__Impl_in_rule__AdaptationProcess__Group_16__04932);
+            rule__AdaptationProcess__Group_16__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_16__1_in_rule__AdaptationProcess__Group_16__04935);
+            rule__AdaptationProcess__Group_16__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_16__0"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_16__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2380:1: rule__AdaptationProcess__Group_16__0__Impl : ( ',' ) ;
+    public final void rule__AdaptationProcess__Group_16__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2384:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2385:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2385:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2386:1: ','
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_16_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__AdaptationProcess__Group_16__0__Impl4963); 
+             after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_16_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_16__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_16__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2399:1: rule__AdaptationProcess__Group_16__1 : rule__AdaptationProcess__Group_16__1__Impl ;
+    public final void rule__AdaptationProcess__Group_16__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2403:1: ( rule__AdaptationProcess__Group_16__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2404:2: rule__AdaptationProcess__Group_16__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_16__1__Impl_in_rule__AdaptationProcess__Group_16__14994);
+            rule__AdaptationProcess__Group_16__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_16__1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_16__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2410:1: rule__AdaptationProcess__Group_16__1__Impl : ( ( rule__AdaptationProcess__TacticsAssignment_16_1 ) ) ;
+    public final void rule__AdaptationProcess__Group_16__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2414:1: ( ( ( rule__AdaptationProcess__TacticsAssignment_16_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2415:1: ( ( rule__AdaptationProcess__TacticsAssignment_16_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2415:1: ( ( rule__AdaptationProcess__TacticsAssignment_16_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2416:1: ( rule__AdaptationProcess__TacticsAssignment_16_1 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_16_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2417:1: ( rule__AdaptationProcess__TacticsAssignment_16_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2417:2: rule__AdaptationProcess__TacticsAssignment_16_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__TacticsAssignment_16_1_in_rule__AdaptationProcess__Group_16__1__Impl5021);
+            rule__AdaptationProcess__TacticsAssignment_16_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getTacticsAssignment_16_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_16__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_20__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2431:1: rule__AdaptationProcess__Group_20__0 : rule__AdaptationProcess__Group_20__0__Impl rule__AdaptationProcess__Group_20__1 ;
+    public final void rule__AdaptationProcess__Group_20__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2435:1: ( rule__AdaptationProcess__Group_20__0__Impl rule__AdaptationProcess__Group_20__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2436:2: rule__AdaptationProcess__Group_20__0__Impl rule__AdaptationProcess__Group_20__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_20__0__Impl_in_rule__AdaptationProcess__Group_20__05055);
+            rule__AdaptationProcess__Group_20__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_20__1_in_rule__AdaptationProcess__Group_20__05058);
+            rule__AdaptationProcess__Group_20__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_20__0"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_20__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2443:1: rule__AdaptationProcess__Group_20__0__Impl : ( ',' ) ;
+    public final void rule__AdaptationProcess__Group_20__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2447:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2448:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2448:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2449:1: ','
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_20_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__AdaptationProcess__Group_20__0__Impl5086); 
+             after(grammarAccess.getAdaptationProcessAccess().getCommaKeyword_20_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_20__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_20__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2462:1: rule__AdaptationProcess__Group_20__1 : rule__AdaptationProcess__Group_20__1__Impl ;
+    public final void rule__AdaptationProcess__Group_20__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2466:1: ( rule__AdaptationProcess__Group_20__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2467:2: rule__AdaptationProcess__Group_20__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__Group_20__1__Impl_in_rule__AdaptationProcess__Group_20__15117);
+            rule__AdaptationProcess__Group_20__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_20__1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__Group_20__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2473:1: rule__AdaptationProcess__Group_20__1__Impl : ( ( rule__AdaptationProcess__StrategiesAssignment_20_1 ) ) ;
+    public final void rule__AdaptationProcess__Group_20__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2477:1: ( ( ( rule__AdaptationProcess__StrategiesAssignment_20_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2478:1: ( ( rule__AdaptationProcess__StrategiesAssignment_20_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2478:1: ( ( rule__AdaptationProcess__StrategiesAssignment_20_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2479:1: ( rule__AdaptationProcess__StrategiesAssignment_20_1 )
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_20_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2480:1: ( rule__AdaptationProcess__StrategiesAssignment_20_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2480:2: rule__AdaptationProcess__StrategiesAssignment_20_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationProcess__StrategiesAssignment_20_1_in_rule__AdaptationProcess__Group_20__1__Impl5144);
+            rule__AdaptationProcess__StrategiesAssignment_20_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationProcessAccess().getStrategiesAssignment_20_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__Group_20__1__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2494:1: rule__Tactic__Group__0 : rule__Tactic__Group__0__Impl rule__Tactic__Group__1 ;
+    public final void rule__Tactic__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2498:1: ( rule__Tactic__Group__0__Impl rule__Tactic__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2499:2: rule__Tactic__Group__0__Impl rule__Tactic__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__0__Impl_in_rule__Tactic__Group__05178);
+            rule__Tactic__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__1_in_rule__Tactic__Group__05181);
+            rule__Tactic__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__0"
+
+
+    // $ANTLR start "rule__Tactic__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2506:1: rule__Tactic__Group__0__Impl : ( ( 'Tactic' )? ) ;
+    public final void rule__Tactic__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2510:1: ( ( ( 'Tactic' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2511:1: ( ( 'Tactic' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2511:1: ( ( 'Tactic' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2512:1: ( 'Tactic' )?
+            {
+             before(grammarAccess.getTacticAccess().getTacticKeyword_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2513:1: ( 'Tactic' )?
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+
+            if ( (LA16_0==47) ) {
+                alt16=1;
+            }
+            switch (alt16) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2514:2: 'Tactic'
+                    {
+                    match(input,47,FollowSets000.FOLLOW_47_in_rule__Tactic__Group__0__Impl5210); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTacticAccess().getTacticKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2525:1: rule__Tactic__Group__1 : rule__Tactic__Group__1__Impl rule__Tactic__Group__2 ;
+    public final void rule__Tactic__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2529:1: ( rule__Tactic__Group__1__Impl rule__Tactic__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2530:2: rule__Tactic__Group__1__Impl rule__Tactic__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__1__Impl_in_rule__Tactic__Group__15243);
+            rule__Tactic__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__2_in_rule__Tactic__Group__15246);
+            rule__Tactic__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__1"
+
+
+    // $ANTLR start "rule__Tactic__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2537:1: rule__Tactic__Group__1__Impl : ( ( rule__Tactic__NameAssignment_1 ) ) ;
+    public final void rule__Tactic__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2541:1: ( ( ( rule__Tactic__NameAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2542:1: ( ( rule__Tactic__NameAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2542:1: ( ( rule__Tactic__NameAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2543:1: ( rule__Tactic__NameAssignment_1 )
+            {
+             before(grammarAccess.getTacticAccess().getNameAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2544:1: ( rule__Tactic__NameAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2544:2: rule__Tactic__NameAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__NameAssignment_1_in_rule__Tactic__Group__1__Impl5273);
+            rule__Tactic__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2554:1: rule__Tactic__Group__2 : rule__Tactic__Group__2__Impl rule__Tactic__Group__3 ;
+    public final void rule__Tactic__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2558:1: ( rule__Tactic__Group__2__Impl rule__Tactic__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2559:2: rule__Tactic__Group__2__Impl rule__Tactic__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__2__Impl_in_rule__Tactic__Group__25303);
+            rule__Tactic__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__3_in_rule__Tactic__Group__25306);
+            rule__Tactic__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__2"
+
+
+    // $ANTLR start "rule__Tactic__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2566:1: rule__Tactic__Group__2__Impl : ( ( rule__Tactic__Group_2__0 )? ) ;
+    public final void rule__Tactic__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2570:1: ( ( ( rule__Tactic__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2571:1: ( ( rule__Tactic__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2571:1: ( ( rule__Tactic__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2572:1: ( rule__Tactic__Group_2__0 )?
+            {
+             before(grammarAccess.getTacticAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2573:1: ( rule__Tactic__Group_2__0 )?
+            int alt17=2;
+            int LA17_0 = input.LA(1);
+
+            if ( (LA17_0==43) ) {
+                alt17=1;
+            }
+            switch (alt17) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2573:2: rule__Tactic__Group_2__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_2__0_in_rule__Tactic__Group__2__Impl5333);
+                    rule__Tactic__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTacticAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2583:1: rule__Tactic__Group__3 : rule__Tactic__Group__3__Impl rule__Tactic__Group__4 ;
+    public final void rule__Tactic__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2587:1: ( rule__Tactic__Group__3__Impl rule__Tactic__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2588:2: rule__Tactic__Group__3__Impl rule__Tactic__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__3__Impl_in_rule__Tactic__Group__35364);
+            rule__Tactic__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__4_in_rule__Tactic__Group__35367);
+            rule__Tactic__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__3"
+
+
+    // $ANTLR start "rule__Tactic__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2595:1: rule__Tactic__Group__3__Impl : ( '{' ) ;
+    public final void rule__Tactic__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2599:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2600:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2600:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2601:1: '{'
+            {
+             before(grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_3()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__Tactic__Group__3__Impl5395); 
+             after(grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2614:1: rule__Tactic__Group__4 : rule__Tactic__Group__4__Impl rule__Tactic__Group__5 ;
+    public final void rule__Tactic__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2618:1: ( rule__Tactic__Group__4__Impl rule__Tactic__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2619:2: rule__Tactic__Group__4__Impl rule__Tactic__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__4__Impl_in_rule__Tactic__Group__45426);
+            rule__Tactic__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__5_in_rule__Tactic__Group__45429);
+            rule__Tactic__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__4"
+
+
+    // $ANTLR start "rule__Tactic__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2626:1: rule__Tactic__Group__4__Impl : ( 'implementedPlan' ) ;
+    public final void rule__Tactic__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2630:1: ( ( 'implementedPlan' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2631:1: ( 'implementedPlan' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2631:1: ( 'implementedPlan' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2632:1: 'implementedPlan'
+            {
+             before(grammarAccess.getTacticAccess().getImplementedPlanKeyword_4()); 
+            match(input,48,FollowSets000.FOLLOW_48_in_rule__Tactic__Group__4__Impl5457); 
+             after(grammarAccess.getTacticAccess().getImplementedPlanKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2645:1: rule__Tactic__Group__5 : rule__Tactic__Group__5__Impl rule__Tactic__Group__6 ;
+    public final void rule__Tactic__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2649:1: ( rule__Tactic__Group__5__Impl rule__Tactic__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2650:2: rule__Tactic__Group__5__Impl rule__Tactic__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__5__Impl_in_rule__Tactic__Group__55488);
+            rule__Tactic__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__6_in_rule__Tactic__Group__55491);
+            rule__Tactic__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__5"
+
+
+    // $ANTLR start "rule__Tactic__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2657:1: rule__Tactic__Group__5__Impl : ( ( rule__Tactic__ImplementedPlanAssignment_5 ) ) ;
+    public final void rule__Tactic__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2661:1: ( ( ( rule__Tactic__ImplementedPlanAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2662:1: ( ( rule__Tactic__ImplementedPlanAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2662:1: ( ( rule__Tactic__ImplementedPlanAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2663:1: ( rule__Tactic__ImplementedPlanAssignment_5 )
+            {
+             before(grammarAccess.getTacticAccess().getImplementedPlanAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2664:1: ( rule__Tactic__ImplementedPlanAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2664:2: rule__Tactic__ImplementedPlanAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__ImplementedPlanAssignment_5_in_rule__Tactic__Group__5__Impl5518);
+            rule__Tactic__ImplementedPlanAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getImplementedPlanAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2674:1: rule__Tactic__Group__6 : rule__Tactic__Group__6__Impl rule__Tactic__Group__7 ;
+    public final void rule__Tactic__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2678:1: ( rule__Tactic__Group__6__Impl rule__Tactic__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2679:2: rule__Tactic__Group__6__Impl rule__Tactic__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__6__Impl_in_rule__Tactic__Group__65548);
+            rule__Tactic__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__7_in_rule__Tactic__Group__65551);
+            rule__Tactic__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__6"
+
+
+    // $ANTLR start "rule__Tactic__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2686:1: rule__Tactic__Group__6__Impl : ( ( rule__Tactic__Group_6__0 )? ) ;
+    public final void rule__Tactic__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2690:1: ( ( ( rule__Tactic__Group_6__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2691:1: ( ( rule__Tactic__Group_6__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2691:1: ( ( rule__Tactic__Group_6__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2692:1: ( rule__Tactic__Group_6__0 )?
+            {
+             before(grammarAccess.getTacticAccess().getGroup_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2693:1: ( rule__Tactic__Group_6__0 )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0==49) ) {
+                alt18=1;
+            }
+            switch (alt18) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2693:2: rule__Tactic__Group_6__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__0_in_rule__Tactic__Group__6__Impl5578);
+                    rule__Tactic__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTacticAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2703:1: rule__Tactic__Group__7 : rule__Tactic__Group__7__Impl rule__Tactic__Group__8 ;
+    public final void rule__Tactic__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2707:1: ( rule__Tactic__Group__7__Impl rule__Tactic__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2708:2: rule__Tactic__Group__7__Impl rule__Tactic__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__7__Impl_in_rule__Tactic__Group__75609);
+            rule__Tactic__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__8_in_rule__Tactic__Group__75612);
+            rule__Tactic__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__7"
+
+
+    // $ANTLR start "rule__Tactic__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2715:1: rule__Tactic__Group__7__Impl : ( ( rule__Tactic__Group_7__0 )? ) ;
+    public final void rule__Tactic__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2719:1: ( ( ( rule__Tactic__Group_7__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2720:1: ( ( rule__Tactic__Group_7__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2720:1: ( ( rule__Tactic__Group_7__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2721:1: ( rule__Tactic__Group_7__0 )?
+            {
+             before(grammarAccess.getTacticAccess().getGroup_7()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2722:1: ( rule__Tactic__Group_7__0 )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==53) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2722:2: rule__Tactic__Group_7__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_7__0_in_rule__Tactic__Group__7__Impl5639);
+                    rule__Tactic__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTacticAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2732:1: rule__Tactic__Group__8 : rule__Tactic__Group__8__Impl ;
+    public final void rule__Tactic__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2736:1: ( rule__Tactic__Group__8__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2737:2: rule__Tactic__Group__8__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__8__Impl_in_rule__Tactic__Group__85670);
+            rule__Tactic__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__8"
+
+
+    // $ANTLR start "rule__Tactic__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2743:1: rule__Tactic__Group__8__Impl : ( '}' ) ;
+    public final void rule__Tactic__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2747:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2748:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2748:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2749:1: '}'
+            {
+             before(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_8()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__Tactic__Group__8__Impl5698); 
+             after(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2780:1: rule__Tactic__Group_2__0 : rule__Tactic__Group_2__0__Impl rule__Tactic__Group_2__1 ;
+    public final void rule__Tactic__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2784:1: ( rule__Tactic__Group_2__0__Impl rule__Tactic__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2785:2: rule__Tactic__Group_2__0__Impl rule__Tactic__Group_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_2__0__Impl_in_rule__Tactic__Group_2__05747);
+            rule__Tactic__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_2__1_in_rule__Tactic__Group_2__05750);
+            rule__Tactic__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_2__0"
+
+
+    // $ANTLR start "rule__Tactic__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2792:1: rule__Tactic__Group_2__0__Impl : ( '[id:' ) ;
+    public final void rule__Tactic__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2796:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2797:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2797:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2798:1: '[id:'
+            {
+             before(grammarAccess.getTacticAccess().getIdKeyword_2_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__Tactic__Group_2__0__Impl5778); 
+             after(grammarAccess.getTacticAccess().getIdKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2811:1: rule__Tactic__Group_2__1 : rule__Tactic__Group_2__1__Impl rule__Tactic__Group_2__2 ;
+    public final void rule__Tactic__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2815:1: ( rule__Tactic__Group_2__1__Impl rule__Tactic__Group_2__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2816:2: rule__Tactic__Group_2__1__Impl rule__Tactic__Group_2__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_2__1__Impl_in_rule__Tactic__Group_2__15809);
+            rule__Tactic__Group_2__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_2__2_in_rule__Tactic__Group_2__15812);
+            rule__Tactic__Group_2__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_2__1"
+
+
+    // $ANTLR start "rule__Tactic__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2823:1: rule__Tactic__Group_2__1__Impl : ( ( rule__Tactic__IdAssignment_2_1 ) ) ;
+    public final void rule__Tactic__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2827:1: ( ( ( rule__Tactic__IdAssignment_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2828:1: ( ( rule__Tactic__IdAssignment_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2828:1: ( ( rule__Tactic__IdAssignment_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2829:1: ( rule__Tactic__IdAssignment_2_1 )
+            {
+             before(grammarAccess.getTacticAccess().getIdAssignment_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2830:1: ( rule__Tactic__IdAssignment_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2830:2: rule__Tactic__IdAssignment_2_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__IdAssignment_2_1_in_rule__Tactic__Group_2__1__Impl5839);
+            rule__Tactic__IdAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getIdAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_2__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2840:1: rule__Tactic__Group_2__2 : rule__Tactic__Group_2__2__Impl ;
+    public final void rule__Tactic__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2844:1: ( rule__Tactic__Group_2__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2845:2: rule__Tactic__Group_2__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_2__2__Impl_in_rule__Tactic__Group_2__25869);
+            rule__Tactic__Group_2__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_2__2"
+
+
+    // $ANTLR start "rule__Tactic__Group_2__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2851:1: rule__Tactic__Group_2__2__Impl : ( ']' ) ;
+    public final void rule__Tactic__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2855:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2856:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2856:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2857:1: ']'
+            {
+             before(grammarAccess.getTacticAccess().getRightSquareBracketKeyword_2_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__Tactic__Group_2__2__Impl5897); 
+             after(grammarAccess.getTacticAccess().getRightSquareBracketKeyword_2_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2876:1: rule__Tactic__Group_6__0 : rule__Tactic__Group_6__0__Impl rule__Tactic__Group_6__1 ;
+    public final void rule__Tactic__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2880:1: ( rule__Tactic__Group_6__0__Impl rule__Tactic__Group_6__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2881:2: rule__Tactic__Group_6__0__Impl rule__Tactic__Group_6__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__0__Impl_in_rule__Tactic__Group_6__05934);
+            rule__Tactic__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__1_in_rule__Tactic__Group_6__05937);
+            rule__Tactic__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__0"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2888:1: rule__Tactic__Group_6__0__Impl : ( 'input' ) ;
+    public final void rule__Tactic__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2892:1: ( ( 'input' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2893:1: ( 'input' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2893:1: ( 'input' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2894:1: 'input'
+            {
+             before(grammarAccess.getTacticAccess().getInputKeyword_6_0()); 
+            match(input,49,FollowSets000.FOLLOW_49_in_rule__Tactic__Group_6__0__Impl5965); 
+             after(grammarAccess.getTacticAccess().getInputKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2907:1: rule__Tactic__Group_6__1 : rule__Tactic__Group_6__1__Impl rule__Tactic__Group_6__2 ;
+    public final void rule__Tactic__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2911:1: ( rule__Tactic__Group_6__1__Impl rule__Tactic__Group_6__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2912:2: rule__Tactic__Group_6__1__Impl rule__Tactic__Group_6__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__1__Impl_in_rule__Tactic__Group_6__15996);
+            rule__Tactic__Group_6__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__2_in_rule__Tactic__Group_6__15999);
+            rule__Tactic__Group_6__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__1"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2919:1: rule__Tactic__Group_6__1__Impl : ( '=' ) ;
+    public final void rule__Tactic__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2923:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2924:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2924:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2925:1: '='
+            {
+             before(grammarAccess.getTacticAccess().getEqualsSignKeyword_6_1()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Tactic__Group_6__1__Impl6027); 
+             after(grammarAccess.getTacticAccess().getEqualsSignKeyword_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2938:1: rule__Tactic__Group_6__2 : rule__Tactic__Group_6__2__Impl rule__Tactic__Group_6__3 ;
+    public final void rule__Tactic__Group_6__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2942:1: ( rule__Tactic__Group_6__2__Impl rule__Tactic__Group_6__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2943:2: rule__Tactic__Group_6__2__Impl rule__Tactic__Group_6__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__2__Impl_in_rule__Tactic__Group_6__26058);
+            rule__Tactic__Group_6__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__3_in_rule__Tactic__Group_6__26061);
+            rule__Tactic__Group_6__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__2"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2950:1: rule__Tactic__Group_6__2__Impl : ( '(' ) ;
+    public final void rule__Tactic__Group_6__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2954:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2955:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2955:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2956:1: '('
+            {
+             before(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_6_2()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__Tactic__Group_6__2__Impl6089); 
+             after(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_6_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2969:1: rule__Tactic__Group_6__3 : rule__Tactic__Group_6__3__Impl rule__Tactic__Group_6__4 ;
+    public final void rule__Tactic__Group_6__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2973:1: ( rule__Tactic__Group_6__3__Impl rule__Tactic__Group_6__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2974:2: rule__Tactic__Group_6__3__Impl rule__Tactic__Group_6__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__3__Impl_in_rule__Tactic__Group_6__36120);
+            rule__Tactic__Group_6__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__4_in_rule__Tactic__Group_6__36123);
+            rule__Tactic__Group_6__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__3"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2981:1: rule__Tactic__Group_6__3__Impl : ( ( rule__Tactic__InputParamsAssignment_6_3 ) ) ;
+    public final void rule__Tactic__Group_6__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2985:1: ( ( ( rule__Tactic__InputParamsAssignment_6_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2986:1: ( ( rule__Tactic__InputParamsAssignment_6_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2986:1: ( ( rule__Tactic__InputParamsAssignment_6_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2987:1: ( rule__Tactic__InputParamsAssignment_6_3 )
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsAssignment_6_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2988:1: ( rule__Tactic__InputParamsAssignment_6_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2988:2: rule__Tactic__InputParamsAssignment_6_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__InputParamsAssignment_6_3_in_rule__Tactic__Group_6__3__Impl6150);
+            rule__Tactic__InputParamsAssignment_6_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getInputParamsAssignment_6_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__3__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:2998:1: rule__Tactic__Group_6__4 : rule__Tactic__Group_6__4__Impl rule__Tactic__Group_6__5 ;
+    public final void rule__Tactic__Group_6__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3002:1: ( rule__Tactic__Group_6__4__Impl rule__Tactic__Group_6__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3003:2: rule__Tactic__Group_6__4__Impl rule__Tactic__Group_6__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__4__Impl_in_rule__Tactic__Group_6__46180);
+            rule__Tactic__Group_6__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__5_in_rule__Tactic__Group_6__46183);
+            rule__Tactic__Group_6__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__4"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3010:1: rule__Tactic__Group_6__4__Impl : ( ( rule__Tactic__Group_6_4__0 )* ) ;
+    public final void rule__Tactic__Group_6__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3014:1: ( ( ( rule__Tactic__Group_6_4__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3015:1: ( ( rule__Tactic__Group_6_4__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3015:1: ( ( rule__Tactic__Group_6_4__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3016:1: ( rule__Tactic__Group_6_4__0 )*
+            {
+             before(grammarAccess.getTacticAccess().getGroup_6_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3017:1: ( rule__Tactic__Group_6_4__0 )*
+            loop20:
+            do {
+                int alt20=2;
+                int LA20_0 = input.LA(1);
+
+                if ( (LA20_0==46) ) {
+                    alt20=1;
+                }
+
+
+                switch (alt20) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3017:2: rule__Tactic__Group_6_4__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6_4__0_in_rule__Tactic__Group_6__4__Impl6210);
+            	    rule__Tactic__Group_6_4__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop20;
+                }
+            } while (true);
+
+             after(grammarAccess.getTacticAccess().getGroup_6_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__4__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3027:1: rule__Tactic__Group_6__5 : rule__Tactic__Group_6__5__Impl ;
+    public final void rule__Tactic__Group_6__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3031:1: ( rule__Tactic__Group_6__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3032:2: rule__Tactic__Group_6__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__5__Impl_in_rule__Tactic__Group_6__56241);
+            rule__Tactic__Group_6__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__5"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3038:1: rule__Tactic__Group_6__5__Impl : ( ')' ) ;
+    public final void rule__Tactic__Group_6__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3042:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3043:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3043:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3044:1: ')'
+            {
+             before(grammarAccess.getTacticAccess().getRightParenthesisKeyword_6_5()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__Tactic__Group_6__5__Impl6269); 
+             after(grammarAccess.getTacticAccess().getRightParenthesisKeyword_6_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6__5__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_6_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3069:1: rule__Tactic__Group_6_4__0 : rule__Tactic__Group_6_4__0__Impl rule__Tactic__Group_6_4__1 ;
+    public final void rule__Tactic__Group_6_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3073:1: ( rule__Tactic__Group_6_4__0__Impl rule__Tactic__Group_6_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3074:2: rule__Tactic__Group_6_4__0__Impl rule__Tactic__Group_6_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6_4__0__Impl_in_rule__Tactic__Group_6_4__06312);
+            rule__Tactic__Group_6_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6_4__1_in_rule__Tactic__Group_6_4__06315);
+            rule__Tactic__Group_6_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6_4__0"
+
+
+    // $ANTLR start "rule__Tactic__Group_6_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3081:1: rule__Tactic__Group_6_4__0__Impl : ( ',' ) ;
+    public final void rule__Tactic__Group_6_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3085:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3086:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3086:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3087:1: ','
+            {
+             before(grammarAccess.getTacticAccess().getCommaKeyword_6_4_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__Tactic__Group_6_4__0__Impl6343); 
+             after(grammarAccess.getTacticAccess().getCommaKeyword_6_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6_4__0__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_6_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3100:1: rule__Tactic__Group_6_4__1 : rule__Tactic__Group_6_4__1__Impl ;
+    public final void rule__Tactic__Group_6_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3104:1: ( rule__Tactic__Group_6_4__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3105:2: rule__Tactic__Group_6_4__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6_4__1__Impl_in_rule__Tactic__Group_6_4__16374);
+            rule__Tactic__Group_6_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6_4__1"
+
+
+    // $ANTLR start "rule__Tactic__Group_6_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3111:1: rule__Tactic__Group_6_4__1__Impl : ( ( rule__Tactic__InputParamsAssignment_6_4_1 ) ) ;
+    public final void rule__Tactic__Group_6_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3115:1: ( ( ( rule__Tactic__InputParamsAssignment_6_4_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3116:1: ( ( rule__Tactic__InputParamsAssignment_6_4_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3116:1: ( ( rule__Tactic__InputParamsAssignment_6_4_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3117:1: ( rule__Tactic__InputParamsAssignment_6_4_1 )
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsAssignment_6_4_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3118:1: ( rule__Tactic__InputParamsAssignment_6_4_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3118:2: rule__Tactic__InputParamsAssignment_6_4_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__InputParamsAssignment_6_4_1_in_rule__Tactic__Group_6_4__1__Impl6401);
+            rule__Tactic__InputParamsAssignment_6_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getInputParamsAssignment_6_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_6_4__1__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_7__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3132:1: rule__Tactic__Group_7__0 : rule__Tactic__Group_7__0__Impl rule__Tactic__Group_7__1 ;
+    public final void rule__Tactic__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3136:1: ( rule__Tactic__Group_7__0__Impl rule__Tactic__Group_7__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3137:2: rule__Tactic__Group_7__0__Impl rule__Tactic__Group_7__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_7__0__Impl_in_rule__Tactic__Group_7__06435);
+            rule__Tactic__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_7__1_in_rule__Tactic__Group_7__06438);
+            rule__Tactic__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_7__0"
+
+
+    // $ANTLR start "rule__Tactic__Group_7__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3144:1: rule__Tactic__Group_7__0__Impl : ( 'output' ) ;
+    public final void rule__Tactic__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3148:1: ( ( 'output' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3149:1: ( 'output' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3149:1: ( 'output' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3150:1: 'output'
+            {
+             before(grammarAccess.getTacticAccess().getOutputKeyword_7_0()); 
+            match(input,53,FollowSets000.FOLLOW_53_in_rule__Tactic__Group_7__0__Impl6466); 
+             after(grammarAccess.getTacticAccess().getOutputKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_7__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3163:1: rule__Tactic__Group_7__1 : rule__Tactic__Group_7__1__Impl rule__Tactic__Group_7__2 ;
+    public final void rule__Tactic__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3167:1: ( rule__Tactic__Group_7__1__Impl rule__Tactic__Group_7__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3168:2: rule__Tactic__Group_7__1__Impl rule__Tactic__Group_7__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_7__1__Impl_in_rule__Tactic__Group_7__16497);
+            rule__Tactic__Group_7__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_7__2_in_rule__Tactic__Group_7__16500);
+            rule__Tactic__Group_7__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_7__1"
+
+
+    // $ANTLR start "rule__Tactic__Group_7__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3175:1: rule__Tactic__Group_7__1__Impl : ( '=' ) ;
+    public final void rule__Tactic__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3179:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3180:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3180:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3181:1: '='
+            {
+             before(grammarAccess.getTacticAccess().getEqualsSignKeyword_7_1()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Tactic__Group_7__1__Impl6528); 
+             after(grammarAccess.getTacticAccess().getEqualsSignKeyword_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_7__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3194:1: rule__Tactic__Group_7__2 : rule__Tactic__Group_7__2__Impl ;
+    public final void rule__Tactic__Group_7__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3198:1: ( rule__Tactic__Group_7__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3199:2: rule__Tactic__Group_7__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_7__2__Impl_in_rule__Tactic__Group_7__26559);
+            rule__Tactic__Group_7__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_7__2"
+
+
+    // $ANTLR start "rule__Tactic__Group_7__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3205:1: rule__Tactic__Group_7__2__Impl : ( ( rule__Tactic__OutputParamAssignment_7_2 ) ) ;
+    public final void rule__Tactic__Group_7__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3209:1: ( ( ( rule__Tactic__OutputParamAssignment_7_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3210:1: ( ( rule__Tactic__OutputParamAssignment_7_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3210:1: ( ( rule__Tactic__OutputParamAssignment_7_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3211:1: ( rule__Tactic__OutputParamAssignment_7_2 )
+            {
+             before(grammarAccess.getTacticAccess().getOutputParamAssignment_7_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3212:1: ( rule__Tactic__OutputParamAssignment_7_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3212:2: rule__Tactic__OutputParamAssignment_7_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__OutputParamAssignment_7_2_in_rule__Tactic__Group_7__2__Impl6586);
+            rule__Tactic__OutputParamAssignment_7_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getOutputParamAssignment_7_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_7__2__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3228:1: rule__Action__Group__0 : rule__Action__Group__0__Impl rule__Action__Group__1 ;
+    public final void rule__Action__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3232:1: ( rule__Action__Group__0__Impl rule__Action__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3233:2: rule__Action__Group__0__Impl rule__Action__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__0__Impl_in_rule__Action__Group__06622);
+            rule__Action__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__1_in_rule__Action__Group__06625);
+            rule__Action__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__0"
+
+
+    // $ANTLR start "rule__Action__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3240:1: rule__Action__Group__0__Impl : ( ( 'Action' )? ) ;
+    public final void rule__Action__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3244:1: ( ( ( 'Action' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3245:1: ( ( 'Action' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3245:1: ( ( 'Action' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3246:1: ( 'Action' )?
+            {
+             before(grammarAccess.getActionAccess().getActionKeyword_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3247:1: ( 'Action' )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==54) ) {
+                alt21=1;
+            }
+            switch (alt21) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3248:2: 'Action'
+                    {
+                    match(input,54,FollowSets000.FOLLOW_54_in_rule__Action__Group__0__Impl6654); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getActionAccess().getActionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3259:1: rule__Action__Group__1 : rule__Action__Group__1__Impl rule__Action__Group__2 ;
+    public final void rule__Action__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3263:1: ( rule__Action__Group__1__Impl rule__Action__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3264:2: rule__Action__Group__1__Impl rule__Action__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__1__Impl_in_rule__Action__Group__16687);
+            rule__Action__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__2_in_rule__Action__Group__16690);
+            rule__Action__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__1"
+
+
+    // $ANTLR start "rule__Action__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3271:1: rule__Action__Group__1__Impl : ( ( rule__Action__NameAssignment_1 ) ) ;
+    public final void rule__Action__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3275:1: ( ( ( rule__Action__NameAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3276:1: ( ( rule__Action__NameAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3276:1: ( ( rule__Action__NameAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3277:1: ( rule__Action__NameAssignment_1 )
+            {
+             before(grammarAccess.getActionAccess().getNameAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3278:1: ( rule__Action__NameAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3278:2: rule__Action__NameAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__NameAssignment_1_in_rule__Action__Group__1__Impl6717);
+            rule__Action__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3288:1: rule__Action__Group__2 : rule__Action__Group__2__Impl rule__Action__Group__3 ;
+    public final void rule__Action__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3292:1: ( rule__Action__Group__2__Impl rule__Action__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3293:2: rule__Action__Group__2__Impl rule__Action__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__2__Impl_in_rule__Action__Group__26747);
+            rule__Action__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__3_in_rule__Action__Group__26750);
+            rule__Action__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__2"
+
+
+    // $ANTLR start "rule__Action__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3300:1: rule__Action__Group__2__Impl : ( ( rule__Action__Group_2__0 )? ) ;
+    public final void rule__Action__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3304:1: ( ( ( rule__Action__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3305:1: ( ( rule__Action__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3305:1: ( ( rule__Action__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3306:1: ( rule__Action__Group_2__0 )?
+            {
+             before(grammarAccess.getActionAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3307:1: ( rule__Action__Group_2__0 )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0==43) ) {
+                alt22=1;
+            }
+            switch (alt22) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3307:2: rule__Action__Group_2__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Action__Group_2__0_in_rule__Action__Group__2__Impl6777);
+                    rule__Action__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getActionAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3317:1: rule__Action__Group__3 : rule__Action__Group__3__Impl rule__Action__Group__4 ;
+    public final void rule__Action__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3321:1: ( rule__Action__Group__3__Impl rule__Action__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3322:2: rule__Action__Group__3__Impl rule__Action__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__3__Impl_in_rule__Action__Group__36808);
+            rule__Action__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__4_in_rule__Action__Group__36811);
+            rule__Action__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__3"
+
+
+    // $ANTLR start "rule__Action__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3329:1: rule__Action__Group__3__Impl : ( '{' ) ;
+    public final void rule__Action__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3333:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3334:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3334:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3335:1: '{'
+            {
+             before(grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_3()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__Action__Group__3__Impl6839); 
+             after(grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3348:1: rule__Action__Group__4 : rule__Action__Group__4__Impl rule__Action__Group__5 ;
+    public final void rule__Action__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3352:1: ( rule__Action__Group__4__Impl rule__Action__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3353:2: rule__Action__Group__4__Impl rule__Action__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__4__Impl_in_rule__Action__Group__46870);
+            rule__Action__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__5_in_rule__Action__Group__46873);
+            rule__Action__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__4"
+
+
+    // $ANTLR start "rule__Action__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3360:1: rule__Action__Group__4__Impl : ( 'operation' ) ;
+    public final void rule__Action__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3364:1: ( ( 'operation' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3365:1: ( 'operation' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3365:1: ( 'operation' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3366:1: 'operation'
+            {
+             before(grammarAccess.getActionAccess().getOperationKeyword_4()); 
+            match(input,55,FollowSets000.FOLLOW_55_in_rule__Action__Group__4__Impl6901); 
+             after(grammarAccess.getActionAccess().getOperationKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3379:1: rule__Action__Group__5 : rule__Action__Group__5__Impl rule__Action__Group__6 ;
+    public final void rule__Action__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3383:1: ( rule__Action__Group__5__Impl rule__Action__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3384:2: rule__Action__Group__5__Impl rule__Action__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__5__Impl_in_rule__Action__Group__56932);
+            rule__Action__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__6_in_rule__Action__Group__56935);
+            rule__Action__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__5"
+
+
+    // $ANTLR start "rule__Action__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3391:1: rule__Action__Group__5__Impl : ( '=' ) ;
+    public final void rule__Action__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3395:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3396:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3396:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3397:1: '='
+            {
+             before(grammarAccess.getActionAccess().getEqualsSignKeyword_5()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Action__Group__5__Impl6963); 
+             after(grammarAccess.getActionAccess().getEqualsSignKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3410:1: rule__Action__Group__6 : rule__Action__Group__6__Impl rule__Action__Group__7 ;
+    public final void rule__Action__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3414:1: ( rule__Action__Group__6__Impl rule__Action__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3415:2: rule__Action__Group__6__Impl rule__Action__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__6__Impl_in_rule__Action__Group__66994);
+            rule__Action__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__7_in_rule__Action__Group__66997);
+            rule__Action__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__6"
+
+
+    // $ANTLR start "rule__Action__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3422:1: rule__Action__Group__6__Impl : ( ( rule__Action__AdaptationActionOperationAssignment_6 ) ) ;
+    public final void rule__Action__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3426:1: ( ( ( rule__Action__AdaptationActionOperationAssignment_6 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3427:1: ( ( rule__Action__AdaptationActionOperationAssignment_6 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3427:1: ( ( rule__Action__AdaptationActionOperationAssignment_6 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3428:1: ( rule__Action__AdaptationActionOperationAssignment_6 )
+            {
+             before(grammarAccess.getActionAccess().getAdaptationActionOperationAssignment_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3429:1: ( rule__Action__AdaptationActionOperationAssignment_6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3429:2: rule__Action__AdaptationActionOperationAssignment_6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__AdaptationActionOperationAssignment_6_in_rule__Action__Group__6__Impl7024);
+            rule__Action__AdaptationActionOperationAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getAdaptationActionOperationAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3439:1: rule__Action__Group__7 : rule__Action__Group__7__Impl rule__Action__Group__8 ;
+    public final void rule__Action__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3443:1: ( rule__Action__Group__7__Impl rule__Action__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3444:2: rule__Action__Group__7__Impl rule__Action__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__7__Impl_in_rule__Action__Group__77054);
+            rule__Action__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__8_in_rule__Action__Group__77057);
+            rule__Action__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__7"
+
+
+    // $ANTLR start "rule__Action__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3451:1: rule__Action__Group__7__Impl : ( 'referredAdaptationPoint' ) ;
+    public final void rule__Action__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3455:1: ( ( 'referredAdaptationPoint' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3456:1: ( 'referredAdaptationPoint' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3456:1: ( 'referredAdaptationPoint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3457:1: 'referredAdaptationPoint'
+            {
+             before(grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7()); 
+            match(input,56,FollowSets000.FOLLOW_56_in_rule__Action__Group__7__Impl7085); 
+             after(grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3470:1: rule__Action__Group__8 : rule__Action__Group__8__Impl rule__Action__Group__9 ;
+    public final void rule__Action__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3474:1: ( rule__Action__Group__8__Impl rule__Action__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3475:2: rule__Action__Group__8__Impl rule__Action__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__8__Impl_in_rule__Action__Group__87116);
+            rule__Action__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__9_in_rule__Action__Group__87119);
+            rule__Action__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__8"
+
+
+    // $ANTLR start "rule__Action__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3482:1: rule__Action__Group__8__Impl : ( '=' ) ;
+    public final void rule__Action__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3486:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3487:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3487:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3488:1: '='
+            {
+             before(grammarAccess.getActionAccess().getEqualsSignKeyword_8()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Action__Group__8__Impl7147); 
+             after(grammarAccess.getActionAccess().getEqualsSignKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3501:1: rule__Action__Group__9 : rule__Action__Group__9__Impl rule__Action__Group__10 ;
+    public final void rule__Action__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3505:1: ( rule__Action__Group__9__Impl rule__Action__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3506:2: rule__Action__Group__9__Impl rule__Action__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__9__Impl_in_rule__Action__Group__97178);
+            rule__Action__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__10_in_rule__Action__Group__97181);
+            rule__Action__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__9"
+
+
+    // $ANTLR start "rule__Action__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3513:1: rule__Action__Group__9__Impl : ( ( rule__Action__ReferredAdaptationPointAssignment_9 ) ) ;
+    public final void rule__Action__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3517:1: ( ( ( rule__Action__ReferredAdaptationPointAssignment_9 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3518:1: ( ( rule__Action__ReferredAdaptationPointAssignment_9 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3518:1: ( ( rule__Action__ReferredAdaptationPointAssignment_9 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3519:1: ( rule__Action__ReferredAdaptationPointAssignment_9 )
+            {
+             before(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_9()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3520:1: ( rule__Action__ReferredAdaptationPointAssignment_9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3520:2: rule__Action__ReferredAdaptationPointAssignment_9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__ReferredAdaptationPointAssignment_9_in_rule__Action__Group__9__Impl7208);
+            rule__Action__ReferredAdaptationPointAssignment_9();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3530:1: rule__Action__Group__10 : rule__Action__Group__10__Impl rule__Action__Group__11 ;
+    public final void rule__Action__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3534:1: ( rule__Action__Group__10__Impl rule__Action__Group__11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3535:2: rule__Action__Group__10__Impl rule__Action__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__10__Impl_in_rule__Action__Group__107238);
+            rule__Action__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__11_in_rule__Action__Group__107241);
+            rule__Action__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__10"
+
+
+    // $ANTLR start "rule__Action__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3542:1: rule__Action__Group__10__Impl : ( ( rule__Action__Group_10__0 )? ) ;
+    public final void rule__Action__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3546:1: ( ( ( rule__Action__Group_10__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3547:1: ( ( rule__Action__Group_10__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3547:1: ( ( rule__Action__Group_10__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3548:1: ( rule__Action__Group_10__0 )?
+            {
+             before(grammarAccess.getActionAccess().getGroup_10()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3549:1: ( rule__Action__Group_10__0 )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==49) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3549:2: rule__Action__Group_10__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__0_in_rule__Action__Group__10__Impl7268);
+                    rule__Action__Group_10__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getActionAccess().getGroup_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__10__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3559:1: rule__Action__Group__11 : rule__Action__Group__11__Impl rule__Action__Group__12 ;
+    public final void rule__Action__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3563:1: ( rule__Action__Group__11__Impl rule__Action__Group__12 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3564:2: rule__Action__Group__11__Impl rule__Action__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__11__Impl_in_rule__Action__Group__117299);
+            rule__Action__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__12_in_rule__Action__Group__117302);
+            rule__Action__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__11"
+
+
+    // $ANTLR start "rule__Action__Group__11__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3571:1: rule__Action__Group__11__Impl : ( ( rule__Action__Group_11__0 )? ) ;
+    public final void rule__Action__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3575:1: ( ( ( rule__Action__Group_11__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3576:1: ( ( rule__Action__Group_11__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3576:1: ( ( rule__Action__Group_11__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3577:1: ( rule__Action__Group_11__0 )?
+            {
+             before(grammarAccess.getActionAccess().getGroup_11()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3578:1: ( rule__Action__Group_11__0 )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==53) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3578:2: rule__Action__Group_11__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Action__Group_11__0_in_rule__Action__Group__11__Impl7329);
+                    rule__Action__Group_11__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getActionAccess().getGroup_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__11__Impl"
+
+
+    // $ANTLR start "rule__Action__Group__12"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3588:1: rule__Action__Group__12 : rule__Action__Group__12__Impl ;
+    public final void rule__Action__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3592:1: ( rule__Action__Group__12__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3593:2: rule__Action__Group__12__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__12__Impl_in_rule__Action__Group__127360);
+            rule__Action__Group__12__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__12"
+
+
+    // $ANTLR start "rule__Action__Group__12__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3599:1: rule__Action__Group__12__Impl : ( '}' ) ;
+    public final void rule__Action__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3603:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3604:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3604:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3605:1: '}'
+            {
+             before(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_12()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__Action__Group__12__Impl7388); 
+             after(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group__12__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3644:1: rule__Action__Group_2__0 : rule__Action__Group_2__0__Impl rule__Action__Group_2__1 ;
+    public final void rule__Action__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3648:1: ( rule__Action__Group_2__0__Impl rule__Action__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3649:2: rule__Action__Group_2__0__Impl rule__Action__Group_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_2__0__Impl_in_rule__Action__Group_2__07445);
+            rule__Action__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_2__1_in_rule__Action__Group_2__07448);
+            rule__Action__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_2__0"
+
+
+    // $ANTLR start "rule__Action__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3656:1: rule__Action__Group_2__0__Impl : ( '[id:' ) ;
+    public final void rule__Action__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3660:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3661:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3661:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3662:1: '[id:'
+            {
+             before(grammarAccess.getActionAccess().getIdKeyword_2_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__Action__Group_2__0__Impl7476); 
+             after(grammarAccess.getActionAccess().getIdKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3675:1: rule__Action__Group_2__1 : rule__Action__Group_2__1__Impl rule__Action__Group_2__2 ;
+    public final void rule__Action__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3679:1: ( rule__Action__Group_2__1__Impl rule__Action__Group_2__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3680:2: rule__Action__Group_2__1__Impl rule__Action__Group_2__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_2__1__Impl_in_rule__Action__Group_2__17507);
+            rule__Action__Group_2__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_2__2_in_rule__Action__Group_2__17510);
+            rule__Action__Group_2__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_2__1"
+
+
+    // $ANTLR start "rule__Action__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3687:1: rule__Action__Group_2__1__Impl : ( ( rule__Action__IdAssignment_2_1 ) ) ;
+    public final void rule__Action__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3691:1: ( ( ( rule__Action__IdAssignment_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3692:1: ( ( rule__Action__IdAssignment_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3692:1: ( ( rule__Action__IdAssignment_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3693:1: ( rule__Action__IdAssignment_2_1 )
+            {
+             before(grammarAccess.getActionAccess().getIdAssignment_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3694:1: ( rule__Action__IdAssignment_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3694:2: rule__Action__IdAssignment_2_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__IdAssignment_2_1_in_rule__Action__Group_2__1__Impl7537);
+            rule__Action__IdAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getIdAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_2__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3704:1: rule__Action__Group_2__2 : rule__Action__Group_2__2__Impl ;
+    public final void rule__Action__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3708:1: ( rule__Action__Group_2__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3709:2: rule__Action__Group_2__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_2__2__Impl_in_rule__Action__Group_2__27567);
+            rule__Action__Group_2__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_2__2"
+
+
+    // $ANTLR start "rule__Action__Group_2__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3715:1: rule__Action__Group_2__2__Impl : ( ']' ) ;
+    public final void rule__Action__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3719:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3720:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3720:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3721:1: ']'
+            {
+             before(grammarAccess.getActionAccess().getRightSquareBracketKeyword_2_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__Action__Group_2__2__Impl7595); 
+             after(grammarAccess.getActionAccess().getRightSquareBracketKeyword_2_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_10__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3740:1: rule__Action__Group_10__0 : rule__Action__Group_10__0__Impl rule__Action__Group_10__1 ;
+    public final void rule__Action__Group_10__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3744:1: ( rule__Action__Group_10__0__Impl rule__Action__Group_10__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3745:2: rule__Action__Group_10__0__Impl rule__Action__Group_10__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__0__Impl_in_rule__Action__Group_10__07632);
+            rule__Action__Group_10__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__1_in_rule__Action__Group_10__07635);
+            rule__Action__Group_10__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__0"
+
+
+    // $ANTLR start "rule__Action__Group_10__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3752:1: rule__Action__Group_10__0__Impl : ( 'input' ) ;
+    public final void rule__Action__Group_10__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3756:1: ( ( 'input' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3757:1: ( 'input' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3757:1: ( 'input' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3758:1: 'input'
+            {
+             before(grammarAccess.getActionAccess().getInputKeyword_10_0()); 
+            match(input,49,FollowSets000.FOLLOW_49_in_rule__Action__Group_10__0__Impl7663); 
+             after(grammarAccess.getActionAccess().getInputKeyword_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__0__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_10__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3771:1: rule__Action__Group_10__1 : rule__Action__Group_10__1__Impl rule__Action__Group_10__2 ;
+    public final void rule__Action__Group_10__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3775:1: ( rule__Action__Group_10__1__Impl rule__Action__Group_10__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3776:2: rule__Action__Group_10__1__Impl rule__Action__Group_10__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__1__Impl_in_rule__Action__Group_10__17694);
+            rule__Action__Group_10__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__2_in_rule__Action__Group_10__17697);
+            rule__Action__Group_10__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__1"
+
+
+    // $ANTLR start "rule__Action__Group_10__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3783:1: rule__Action__Group_10__1__Impl : ( '=' ) ;
+    public final void rule__Action__Group_10__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3787:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3788:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3788:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3789:1: '='
+            {
+             before(grammarAccess.getActionAccess().getEqualsSignKeyword_10_1()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Action__Group_10__1__Impl7725); 
+             after(grammarAccess.getActionAccess().getEqualsSignKeyword_10_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__1__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_10__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3802:1: rule__Action__Group_10__2 : rule__Action__Group_10__2__Impl rule__Action__Group_10__3 ;
+    public final void rule__Action__Group_10__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3806:1: ( rule__Action__Group_10__2__Impl rule__Action__Group_10__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3807:2: rule__Action__Group_10__2__Impl rule__Action__Group_10__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__2__Impl_in_rule__Action__Group_10__27756);
+            rule__Action__Group_10__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__3_in_rule__Action__Group_10__27759);
+            rule__Action__Group_10__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__2"
+
+
+    // $ANTLR start "rule__Action__Group_10__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3814:1: rule__Action__Group_10__2__Impl : ( '(' ) ;
+    public final void rule__Action__Group_10__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3818:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3819:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3819:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3820:1: '('
+            {
+             before(grammarAccess.getActionAccess().getLeftParenthesisKeyword_10_2()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__Action__Group_10__2__Impl7787); 
+             after(grammarAccess.getActionAccess().getLeftParenthesisKeyword_10_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__2__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_10__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3833:1: rule__Action__Group_10__3 : rule__Action__Group_10__3__Impl rule__Action__Group_10__4 ;
+    public final void rule__Action__Group_10__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3837:1: ( rule__Action__Group_10__3__Impl rule__Action__Group_10__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3838:2: rule__Action__Group_10__3__Impl rule__Action__Group_10__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__3__Impl_in_rule__Action__Group_10__37818);
+            rule__Action__Group_10__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__4_in_rule__Action__Group_10__37821);
+            rule__Action__Group_10__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__3"
+
+
+    // $ANTLR start "rule__Action__Group_10__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3845:1: rule__Action__Group_10__3__Impl : ( ( rule__Action__InputParamsAssignment_10_3 ) ) ;
+    public final void rule__Action__Group_10__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3849:1: ( ( ( rule__Action__InputParamsAssignment_10_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3850:1: ( ( rule__Action__InputParamsAssignment_10_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3850:1: ( ( rule__Action__InputParamsAssignment_10_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3851:1: ( rule__Action__InputParamsAssignment_10_3 )
+            {
+             before(grammarAccess.getActionAccess().getInputParamsAssignment_10_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3852:1: ( rule__Action__InputParamsAssignment_10_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3852:2: rule__Action__InputParamsAssignment_10_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__InputParamsAssignment_10_3_in_rule__Action__Group_10__3__Impl7848);
+            rule__Action__InputParamsAssignment_10_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getInputParamsAssignment_10_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__3__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_10__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3862:1: rule__Action__Group_10__4 : rule__Action__Group_10__4__Impl rule__Action__Group_10__5 ;
+    public final void rule__Action__Group_10__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3866:1: ( rule__Action__Group_10__4__Impl rule__Action__Group_10__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3867:2: rule__Action__Group_10__4__Impl rule__Action__Group_10__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__4__Impl_in_rule__Action__Group_10__47878);
+            rule__Action__Group_10__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__5_in_rule__Action__Group_10__47881);
+            rule__Action__Group_10__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__4"
+
+
+    // $ANTLR start "rule__Action__Group_10__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3874:1: rule__Action__Group_10__4__Impl : ( ( rule__Action__Group_10_4__0 )* ) ;
+    public final void rule__Action__Group_10__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3878:1: ( ( ( rule__Action__Group_10_4__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3879:1: ( ( rule__Action__Group_10_4__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3879:1: ( ( rule__Action__Group_10_4__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3880:1: ( rule__Action__Group_10_4__0 )*
+            {
+             before(grammarAccess.getActionAccess().getGroup_10_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3881:1: ( rule__Action__Group_10_4__0 )*
+            loop25:
+            do {
+                int alt25=2;
+                int LA25_0 = input.LA(1);
+
+                if ( (LA25_0==46) ) {
+                    alt25=1;
+                }
+
+
+                switch (alt25) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3881:2: rule__Action__Group_10_4__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10_4__0_in_rule__Action__Group_10__4__Impl7908);
+            	    rule__Action__Group_10_4__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop25;
+                }
+            } while (true);
+
+             after(grammarAccess.getActionAccess().getGroup_10_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__4__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_10__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3891:1: rule__Action__Group_10__5 : rule__Action__Group_10__5__Impl ;
+    public final void rule__Action__Group_10__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3895:1: ( rule__Action__Group_10__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3896:2: rule__Action__Group_10__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10__5__Impl_in_rule__Action__Group_10__57939);
+            rule__Action__Group_10__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__5"
+
+
+    // $ANTLR start "rule__Action__Group_10__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3902:1: rule__Action__Group_10__5__Impl : ( ')' ) ;
+    public final void rule__Action__Group_10__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3906:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3907:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3907:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3908:1: ')'
+            {
+             before(grammarAccess.getActionAccess().getRightParenthesisKeyword_10_5()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__Action__Group_10__5__Impl7967); 
+             after(grammarAccess.getActionAccess().getRightParenthesisKeyword_10_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10__5__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_10_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3933:1: rule__Action__Group_10_4__0 : rule__Action__Group_10_4__0__Impl rule__Action__Group_10_4__1 ;
+    public final void rule__Action__Group_10_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3937:1: ( rule__Action__Group_10_4__0__Impl rule__Action__Group_10_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3938:2: rule__Action__Group_10_4__0__Impl rule__Action__Group_10_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10_4__0__Impl_in_rule__Action__Group_10_4__08010);
+            rule__Action__Group_10_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10_4__1_in_rule__Action__Group_10_4__08013);
+            rule__Action__Group_10_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10_4__0"
+
+
+    // $ANTLR start "rule__Action__Group_10_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3945:1: rule__Action__Group_10_4__0__Impl : ( ',' ) ;
+    public final void rule__Action__Group_10_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3949:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3950:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3950:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3951:1: ','
+            {
+             before(grammarAccess.getActionAccess().getCommaKeyword_10_4_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__Action__Group_10_4__0__Impl8041); 
+             after(grammarAccess.getActionAccess().getCommaKeyword_10_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10_4__0__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_10_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3964:1: rule__Action__Group_10_4__1 : rule__Action__Group_10_4__1__Impl ;
+    public final void rule__Action__Group_10_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3968:1: ( rule__Action__Group_10_4__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3969:2: rule__Action__Group_10_4__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_10_4__1__Impl_in_rule__Action__Group_10_4__18072);
+            rule__Action__Group_10_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10_4__1"
+
+
+    // $ANTLR start "rule__Action__Group_10_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3975:1: rule__Action__Group_10_4__1__Impl : ( ( rule__Action__InputParamsAssignment_10_4_1 ) ) ;
+    public final void rule__Action__Group_10_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3979:1: ( ( ( rule__Action__InputParamsAssignment_10_4_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3980:1: ( ( rule__Action__InputParamsAssignment_10_4_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3980:1: ( ( rule__Action__InputParamsAssignment_10_4_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3981:1: ( rule__Action__InputParamsAssignment_10_4_1 )
+            {
+             before(grammarAccess.getActionAccess().getInputParamsAssignment_10_4_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3982:1: ( rule__Action__InputParamsAssignment_10_4_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3982:2: rule__Action__InputParamsAssignment_10_4_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__InputParamsAssignment_10_4_1_in_rule__Action__Group_10_4__1__Impl8099);
+            rule__Action__InputParamsAssignment_10_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getInputParamsAssignment_10_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_10_4__1__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_11__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:3996:1: rule__Action__Group_11__0 : rule__Action__Group_11__0__Impl rule__Action__Group_11__1 ;
+    public final void rule__Action__Group_11__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4000:1: ( rule__Action__Group_11__0__Impl rule__Action__Group_11__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4001:2: rule__Action__Group_11__0__Impl rule__Action__Group_11__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_11__0__Impl_in_rule__Action__Group_11__08133);
+            rule__Action__Group_11__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_11__1_in_rule__Action__Group_11__08136);
+            rule__Action__Group_11__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_11__0"
+
+
+    // $ANTLR start "rule__Action__Group_11__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4008:1: rule__Action__Group_11__0__Impl : ( 'output' ) ;
+    public final void rule__Action__Group_11__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4012:1: ( ( 'output' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4013:1: ( 'output' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4013:1: ( 'output' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4014:1: 'output'
+            {
+             before(grammarAccess.getActionAccess().getOutputKeyword_11_0()); 
+            match(input,53,FollowSets000.FOLLOW_53_in_rule__Action__Group_11__0__Impl8164); 
+             after(grammarAccess.getActionAccess().getOutputKeyword_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_11__0__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_11__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4027:1: rule__Action__Group_11__1 : rule__Action__Group_11__1__Impl rule__Action__Group_11__2 ;
+    public final void rule__Action__Group_11__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4031:1: ( rule__Action__Group_11__1__Impl rule__Action__Group_11__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4032:2: rule__Action__Group_11__1__Impl rule__Action__Group_11__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_11__1__Impl_in_rule__Action__Group_11__18195);
+            rule__Action__Group_11__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_11__2_in_rule__Action__Group_11__18198);
+            rule__Action__Group_11__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_11__1"
+
+
+    // $ANTLR start "rule__Action__Group_11__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4039:1: rule__Action__Group_11__1__Impl : ( '=' ) ;
+    public final void rule__Action__Group_11__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4043:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4044:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4044:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4045:1: '='
+            {
+             before(grammarAccess.getActionAccess().getEqualsSignKeyword_11_1()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Action__Group_11__1__Impl8226); 
+             after(grammarAccess.getActionAccess().getEqualsSignKeyword_11_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_11__1__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_11__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4058:1: rule__Action__Group_11__2 : rule__Action__Group_11__2__Impl ;
+    public final void rule__Action__Group_11__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4062:1: ( rule__Action__Group_11__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4063:2: rule__Action__Group_11__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_11__2__Impl_in_rule__Action__Group_11__28257);
+            rule__Action__Group_11__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_11__2"
+
+
+    // $ANTLR start "rule__Action__Group_11__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4069:1: rule__Action__Group_11__2__Impl : ( ( rule__Action__OutputParamAssignment_11_2 ) ) ;
+    public final void rule__Action__Group_11__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4073:1: ( ( ( rule__Action__OutputParamAssignment_11_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4074:1: ( ( rule__Action__OutputParamAssignment_11_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4074:1: ( ( rule__Action__OutputParamAssignment_11_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4075:1: ( rule__Action__OutputParamAssignment_11_2 )
+            {
+             before(grammarAccess.getActionAccess().getOutputParamAssignment_11_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4076:1: ( rule__Action__OutputParamAssignment_11_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4076:2: rule__Action__OutputParamAssignment_11_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__OutputParamAssignment_11_2_in_rule__Action__Group_11__2__Impl8284);
+            rule__Action__OutputParamAssignment_11_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getOutputParamAssignment_11_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_11__2__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4092:1: rule__Strategy__Group__0 : rule__Strategy__Group__0__Impl rule__Strategy__Group__1 ;
+    public final void rule__Strategy__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4096:1: ( rule__Strategy__Group__0__Impl rule__Strategy__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4097:2: rule__Strategy__Group__0__Impl rule__Strategy__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__0__Impl_in_rule__Strategy__Group__08320);
+            rule__Strategy__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__1_in_rule__Strategy__Group__08323);
+            rule__Strategy__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__0"
+
+
+    // $ANTLR start "rule__Strategy__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4104:1: rule__Strategy__Group__0__Impl : ( ( rule__Strategy__NameAssignment_0 ) ) ;
+    public final void rule__Strategy__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4108:1: ( ( ( rule__Strategy__NameAssignment_0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4109:1: ( ( rule__Strategy__NameAssignment_0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4109:1: ( ( rule__Strategy__NameAssignment_0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4110:1: ( rule__Strategy__NameAssignment_0 )
+            {
+             before(grammarAccess.getStrategyAccess().getNameAssignment_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4111:1: ( rule__Strategy__NameAssignment_0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4111:2: rule__Strategy__NameAssignment_0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__NameAssignment_0_in_rule__Strategy__Group__0__Impl8350);
+            rule__Strategy__NameAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getNameAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4121:1: rule__Strategy__Group__1 : rule__Strategy__Group__1__Impl rule__Strategy__Group__2 ;
+    public final void rule__Strategy__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4125:1: ( rule__Strategy__Group__1__Impl rule__Strategy__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4126:2: rule__Strategy__Group__1__Impl rule__Strategy__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__1__Impl_in_rule__Strategy__Group__18380);
+            rule__Strategy__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__2_in_rule__Strategy__Group__18383);
+            rule__Strategy__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__1"
+
+
+    // $ANTLR start "rule__Strategy__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4133:1: rule__Strategy__Group__1__Impl : ( ( rule__Strategy__Group_1__0 )? ) ;
+    public final void rule__Strategy__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4137:1: ( ( ( rule__Strategy__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4138:1: ( ( rule__Strategy__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4138:1: ( ( rule__Strategy__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4139:1: ( rule__Strategy__Group_1__0 )?
+            {
+             before(grammarAccess.getStrategyAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4140:1: ( rule__Strategy__Group_1__0 )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
+
+            if ( (LA26_0==43) ) {
+                alt26=1;
+            }
+            switch (alt26) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4140:2: rule__Strategy__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_1__0_in_rule__Strategy__Group__1__Impl8410);
+                    rule__Strategy__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4150:1: rule__Strategy__Group__2 : rule__Strategy__Group__2__Impl rule__Strategy__Group__3 ;
+    public final void rule__Strategy__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4154:1: ( rule__Strategy__Group__2__Impl rule__Strategy__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4155:2: rule__Strategy__Group__2__Impl rule__Strategy__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__2__Impl_in_rule__Strategy__Group__28441);
+            rule__Strategy__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__3_in_rule__Strategy__Group__28444);
+            rule__Strategy__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__2"
+
+
+    // $ANTLR start "rule__Strategy__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4162:1: rule__Strategy__Group__2__Impl : ( '{' ) ;
+    public final void rule__Strategy__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4166:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4167:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4167:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4168:1: '{'
+            {
+             before(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__Strategy__Group__2__Impl8472); 
+             after(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4181:1: rule__Strategy__Group__3 : rule__Strategy__Group__3__Impl rule__Strategy__Group__4 ;
+    public final void rule__Strategy__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4185:1: ( rule__Strategy__Group__3__Impl rule__Strategy__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4186:2: rule__Strategy__Group__3__Impl rule__Strategy__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__3__Impl_in_rule__Strategy__Group__38503);
+            rule__Strategy__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__4_in_rule__Strategy__Group__38506);
+            rule__Strategy__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__3"
+
+
+    // $ANTLR start "rule__Strategy__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4193:1: rule__Strategy__Group__3__Impl : ( 'objective' ) ;
+    public final void rule__Strategy__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4197:1: ( ( 'objective' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4198:1: ( 'objective' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4198:1: ( 'objective' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4199:1: 'objective'
+            {
+             before(grammarAccess.getStrategyAccess().getObjectiveKeyword_3()); 
+            match(input,57,FollowSets000.FOLLOW_57_in_rule__Strategy__Group__3__Impl8534); 
+             after(grammarAccess.getStrategyAccess().getObjectiveKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4212:1: rule__Strategy__Group__4 : rule__Strategy__Group__4__Impl rule__Strategy__Group__5 ;
+    public final void rule__Strategy__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4216:1: ( rule__Strategy__Group__4__Impl rule__Strategy__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4217:2: rule__Strategy__Group__4__Impl rule__Strategy__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__4__Impl_in_rule__Strategy__Group__48565);
+            rule__Strategy__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__5_in_rule__Strategy__Group__48568);
+            rule__Strategy__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__4"
+
+
+    // $ANTLR start "rule__Strategy__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4224:1: rule__Strategy__Group__4__Impl : ( '=' ) ;
+    public final void rule__Strategy__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4228:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4229:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4229:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4230:1: '='
+            {
+             before(grammarAccess.getStrategyAccess().getEqualsSignKeyword_4()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Strategy__Group__4__Impl8596); 
+             after(grammarAccess.getStrategyAccess().getEqualsSignKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4243:1: rule__Strategy__Group__5 : rule__Strategy__Group__5__Impl rule__Strategy__Group__6 ;
+    public final void rule__Strategy__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4247:1: ( rule__Strategy__Group__5__Impl rule__Strategy__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4248:2: rule__Strategy__Group__5__Impl rule__Strategy__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__5__Impl_in_rule__Strategy__Group__58627);
+            rule__Strategy__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__6_in_rule__Strategy__Group__58630);
+            rule__Strategy__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__5"
+
+
+    // $ANTLR start "rule__Strategy__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4255:1: rule__Strategy__Group__5__Impl : ( ( rule__Strategy__ObjectiveAssignment_5 ) ) ;
+    public final void rule__Strategy__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4259:1: ( ( ( rule__Strategy__ObjectiveAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4260:1: ( ( rule__Strategy__ObjectiveAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4260:1: ( ( rule__Strategy__ObjectiveAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4261:1: ( rule__Strategy__ObjectiveAssignment_5 )
+            {
+             before(grammarAccess.getStrategyAccess().getObjectiveAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4262:1: ( rule__Strategy__ObjectiveAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4262:2: rule__Strategy__ObjectiveAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__ObjectiveAssignment_5_in_rule__Strategy__Group__5__Impl8657);
+            rule__Strategy__ObjectiveAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getObjectiveAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4272:1: rule__Strategy__Group__6 : rule__Strategy__Group__6__Impl rule__Strategy__Group__7 ;
+    public final void rule__Strategy__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4276:1: ( rule__Strategy__Group__6__Impl rule__Strategy__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4277:2: rule__Strategy__Group__6__Impl rule__Strategy__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__6__Impl_in_rule__Strategy__Group__68687);
+            rule__Strategy__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__7_in_rule__Strategy__Group__68690);
+            rule__Strategy__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__6"
+
+
+    // $ANTLR start "rule__Strategy__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4284:1: rule__Strategy__Group__6__Impl : ( 'triggeringEvent' ) ;
+    public final void rule__Strategy__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4288:1: ( ( 'triggeringEvent' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4289:1: ( 'triggeringEvent' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4289:1: ( 'triggeringEvent' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4290:1: 'triggeringEvent'
+            {
+             before(grammarAccess.getStrategyAccess().getTriggeringEventKeyword_6()); 
+            match(input,58,FollowSets000.FOLLOW_58_in_rule__Strategy__Group__6__Impl8718); 
+             after(grammarAccess.getStrategyAccess().getTriggeringEventKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4303:1: rule__Strategy__Group__7 : rule__Strategy__Group__7__Impl rule__Strategy__Group__8 ;
+    public final void rule__Strategy__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4307:1: ( rule__Strategy__Group__7__Impl rule__Strategy__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4308:2: rule__Strategy__Group__7__Impl rule__Strategy__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__7__Impl_in_rule__Strategy__Group__78749);
+            rule__Strategy__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__8_in_rule__Strategy__Group__78752);
+            rule__Strategy__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__7"
+
+
+    // $ANTLR start "rule__Strategy__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4315:1: rule__Strategy__Group__7__Impl : ( '=' ) ;
+    public final void rule__Strategy__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4319:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4320:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4320:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4321:1: '='
+            {
+             before(grammarAccess.getStrategyAccess().getEqualsSignKeyword_7()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Strategy__Group__7__Impl8780); 
+             after(grammarAccess.getStrategyAccess().getEqualsSignKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4334:1: rule__Strategy__Group__8 : rule__Strategy__Group__8__Impl rule__Strategy__Group__9 ;
+    public final void rule__Strategy__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4338:1: ( rule__Strategy__Group__8__Impl rule__Strategy__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4339:2: rule__Strategy__Group__8__Impl rule__Strategy__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__8__Impl_in_rule__Strategy__Group__88811);
+            rule__Strategy__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__9_in_rule__Strategy__Group__88814);
+            rule__Strategy__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__8"
+
+
+    // $ANTLR start "rule__Strategy__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4346:1: rule__Strategy__Group__8__Impl : ( ( rule__Strategy__TriggeringEventsAssignment_8 ) ) ;
+    public final void rule__Strategy__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4350:1: ( ( ( rule__Strategy__TriggeringEventsAssignment_8 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4351:1: ( ( rule__Strategy__TriggeringEventsAssignment_8 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4351:1: ( ( rule__Strategy__TriggeringEventsAssignment_8 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4352:1: ( rule__Strategy__TriggeringEventsAssignment_8 )
+            {
+             before(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4353:1: ( rule__Strategy__TriggeringEventsAssignment_8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4353:2: rule__Strategy__TriggeringEventsAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__TriggeringEventsAssignment_8_in_rule__Strategy__Group__8__Impl8841);
+            rule__Strategy__TriggeringEventsAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4363:1: rule__Strategy__Group__9 : rule__Strategy__Group__9__Impl rule__Strategy__Group__10 ;
+    public final void rule__Strategy__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4367:1: ( rule__Strategy__Group__9__Impl rule__Strategy__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4368:2: rule__Strategy__Group__9__Impl rule__Strategy__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__9__Impl_in_rule__Strategy__Group__98871);
+            rule__Strategy__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__10_in_rule__Strategy__Group__98874);
+            rule__Strategy__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__9"
+
+
+    // $ANTLR start "rule__Strategy__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4375:1: rule__Strategy__Group__9__Impl : ( 'tactics' ) ;
+    public final void rule__Strategy__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4379:1: ( ( 'tactics' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4380:1: ( 'tactics' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4380:1: ( 'tactics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4381:1: 'tactics'
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsKeyword_9()); 
+            match(input,40,FollowSets000.FOLLOW_40_in_rule__Strategy__Group__9__Impl8902); 
+             after(grammarAccess.getStrategyAccess().getTacticsKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4394:1: rule__Strategy__Group__10 : rule__Strategy__Group__10__Impl rule__Strategy__Group__11 ;
+    public final void rule__Strategy__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4398:1: ( rule__Strategy__Group__10__Impl rule__Strategy__Group__11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4399:2: rule__Strategy__Group__10__Impl rule__Strategy__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__10__Impl_in_rule__Strategy__Group__108933);
+            rule__Strategy__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__11_in_rule__Strategy__Group__108936);
+            rule__Strategy__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__10"
+
+
+    // $ANTLR start "rule__Strategy__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4406:1: rule__Strategy__Group__10__Impl : ( '=' ) ;
+    public final void rule__Strategy__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4410:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4411:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4411:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4412:1: '='
+            {
+             before(grammarAccess.getStrategyAccess().getEqualsSignKeyword_10()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Strategy__Group__10__Impl8964); 
+             after(grammarAccess.getStrategyAccess().getEqualsSignKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__10__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4425:1: rule__Strategy__Group__11 : rule__Strategy__Group__11__Impl rule__Strategy__Group__12 ;
+    public final void rule__Strategy__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4429:1: ( rule__Strategy__Group__11__Impl rule__Strategy__Group__12 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4430:2: rule__Strategy__Group__11__Impl rule__Strategy__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__11__Impl_in_rule__Strategy__Group__118995);
+            rule__Strategy__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__12_in_rule__Strategy__Group__118998);
+            rule__Strategy__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__11"
+
+
+    // $ANTLR start "rule__Strategy__Group__11__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4437:1: rule__Strategy__Group__11__Impl : ( '(' ) ;
+    public final void rule__Strategy__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4441:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4442:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4442:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4443:1: '('
+            {
+             before(grammarAccess.getStrategyAccess().getLeftParenthesisKeyword_11()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__Strategy__Group__11__Impl9026); 
+             after(grammarAccess.getStrategyAccess().getLeftParenthesisKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__11__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__12"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4456:1: rule__Strategy__Group__12 : rule__Strategy__Group__12__Impl rule__Strategy__Group__13 ;
+    public final void rule__Strategy__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4460:1: ( rule__Strategy__Group__12__Impl rule__Strategy__Group__13 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4461:2: rule__Strategy__Group__12__Impl rule__Strategy__Group__13
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__12__Impl_in_rule__Strategy__Group__129057);
+            rule__Strategy__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__13_in_rule__Strategy__Group__129060);
+            rule__Strategy__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__12"
+
+
+    // $ANTLR start "rule__Strategy__Group__12__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4468:1: rule__Strategy__Group__12__Impl : ( ( rule__Strategy__TacticsAssignment_12 ) ) ;
+    public final void rule__Strategy__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4472:1: ( ( ( rule__Strategy__TacticsAssignment_12 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4473:1: ( ( rule__Strategy__TacticsAssignment_12 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4473:1: ( ( rule__Strategy__TacticsAssignment_12 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4474:1: ( rule__Strategy__TacticsAssignment_12 )
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsAssignment_12()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4475:1: ( rule__Strategy__TacticsAssignment_12 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4475:2: rule__Strategy__TacticsAssignment_12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__TacticsAssignment_12_in_rule__Strategy__Group__12__Impl9087);
+            rule__Strategy__TacticsAssignment_12();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getTacticsAssignment_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__12__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__13"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4485:1: rule__Strategy__Group__13 : rule__Strategy__Group__13__Impl rule__Strategy__Group__14 ;
+    public final void rule__Strategy__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4489:1: ( rule__Strategy__Group__13__Impl rule__Strategy__Group__14 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4490:2: rule__Strategy__Group__13__Impl rule__Strategy__Group__14
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__13__Impl_in_rule__Strategy__Group__139117);
+            rule__Strategy__Group__13__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__14_in_rule__Strategy__Group__139120);
+            rule__Strategy__Group__14();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__13"
+
+
+    // $ANTLR start "rule__Strategy__Group__13__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4497:1: rule__Strategy__Group__13__Impl : ( ( rule__Strategy__Group_13__0 )* ) ;
+    public final void rule__Strategy__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4501:1: ( ( ( rule__Strategy__Group_13__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4502:1: ( ( rule__Strategy__Group_13__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4502:1: ( ( rule__Strategy__Group_13__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4503:1: ( rule__Strategy__Group_13__0 )*
+            {
+             before(grammarAccess.getStrategyAccess().getGroup_13()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4504:1: ( rule__Strategy__Group_13__0 )*
+            loop27:
+            do {
+                int alt27=2;
+                int LA27_0 = input.LA(1);
+
+                if ( (LA27_0==46) ) {
+                    alt27=1;
+                }
+
+
+                switch (alt27) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4504:2: rule__Strategy__Group_13__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_13__0_in_rule__Strategy__Group__13__Impl9147);
+            	    rule__Strategy__Group_13__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop27;
+                }
+            } while (true);
+
+             after(grammarAccess.getStrategyAccess().getGroup_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__13__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__14"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4514:1: rule__Strategy__Group__14 : rule__Strategy__Group__14__Impl rule__Strategy__Group__15 ;
+    public final void rule__Strategy__Group__14() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4518:1: ( rule__Strategy__Group__14__Impl rule__Strategy__Group__15 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4519:2: rule__Strategy__Group__14__Impl rule__Strategy__Group__15
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__14__Impl_in_rule__Strategy__Group__149178);
+            rule__Strategy__Group__14__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__15_in_rule__Strategy__Group__149181);
+            rule__Strategy__Group__15();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__14"
+
+
+    // $ANTLR start "rule__Strategy__Group__14__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4526:1: rule__Strategy__Group__14__Impl : ( ')' ) ;
+    public final void rule__Strategy__Group__14__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4530:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4531:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4531:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4532:1: ')'
+            {
+             before(grammarAccess.getStrategyAccess().getRightParenthesisKeyword_14()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__Strategy__Group__14__Impl9209); 
+             after(grammarAccess.getStrategyAccess().getRightParenthesisKeyword_14()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__14__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__15"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4545:1: rule__Strategy__Group__15 : rule__Strategy__Group__15__Impl rule__Strategy__Group__16 ;
+    public final void rule__Strategy__Group__15() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4549:1: ( rule__Strategy__Group__15__Impl rule__Strategy__Group__16 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4550:2: rule__Strategy__Group__15__Impl rule__Strategy__Group__16
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__15__Impl_in_rule__Strategy__Group__159240);
+            rule__Strategy__Group__15__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__16_in_rule__Strategy__Group__159243);
+            rule__Strategy__Group__16();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__15"
+
+
+    // $ANTLR start "rule__Strategy__Group__15__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4557:1: rule__Strategy__Group__15__Impl : ( ( 'weightingFunction' )? ) ;
+    public final void rule__Strategy__Group__15__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4561:1: ( ( ( 'weightingFunction' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4562:1: ( ( 'weightingFunction' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4562:1: ( ( 'weightingFunction' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4563:1: ( 'weightingFunction' )?
+            {
+             before(grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4564:1: ( 'weightingFunction' )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==59) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4565:2: 'weightingFunction'
+                    {
+                    match(input,59,FollowSets000.FOLLOW_59_in_rule__Strategy__Group__15__Impl9272); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__15__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__16"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4576:1: rule__Strategy__Group__16 : rule__Strategy__Group__16__Impl rule__Strategy__Group__17 ;
+    public final void rule__Strategy__Group__16() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4580:1: ( rule__Strategy__Group__16__Impl rule__Strategy__Group__17 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4581:2: rule__Strategy__Group__16__Impl rule__Strategy__Group__17
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__16__Impl_in_rule__Strategy__Group__169305);
+            rule__Strategy__Group__16__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__17_in_rule__Strategy__Group__169308);
+            rule__Strategy__Group__17();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__16"
+
+
+    // $ANTLR start "rule__Strategy__Group__16__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4588:1: rule__Strategy__Group__16__Impl : ( ( rule__Strategy__WeightingFunctionAssignment_16 ) ) ;
+    public final void rule__Strategy__Group__16__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4592:1: ( ( ( rule__Strategy__WeightingFunctionAssignment_16 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4593:1: ( ( rule__Strategy__WeightingFunctionAssignment_16 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4593:1: ( ( rule__Strategy__WeightingFunctionAssignment_16 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4594:1: ( rule__Strategy__WeightingFunctionAssignment_16 )
+            {
+             before(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_16()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4595:1: ( rule__Strategy__WeightingFunctionAssignment_16 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4595:2: rule__Strategy__WeightingFunctionAssignment_16
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__WeightingFunctionAssignment_16_in_rule__Strategy__Group__16__Impl9335);
+            rule__Strategy__WeightingFunctionAssignment_16();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_16()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__16__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__17"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4605:1: rule__Strategy__Group__17 : rule__Strategy__Group__17__Impl ;
+    public final void rule__Strategy__Group__17() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4609:1: ( rule__Strategy__Group__17__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4610:2: rule__Strategy__Group__17__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__17__Impl_in_rule__Strategy__Group__179365);
+            rule__Strategy__Group__17__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__17"
+
+
+    // $ANTLR start "rule__Strategy__Group__17__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4616:1: rule__Strategy__Group__17__Impl : ( '}' ) ;
+    public final void rule__Strategy__Group__17__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4620:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4621:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4621:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4622:1: '}'
+            {
+             before(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_17()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__Strategy__Group__17__Impl9393); 
+             after(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_17()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group__17__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4671:1: rule__Strategy__Group_1__0 : rule__Strategy__Group_1__0__Impl rule__Strategy__Group_1__1 ;
+    public final void rule__Strategy__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4675:1: ( rule__Strategy__Group_1__0__Impl rule__Strategy__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4676:2: rule__Strategy__Group_1__0__Impl rule__Strategy__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_1__0__Impl_in_rule__Strategy__Group_1__09460);
+            rule__Strategy__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_1__1_in_rule__Strategy__Group_1__09463);
+            rule__Strategy__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_1__0"
+
+
+    // $ANTLR start "rule__Strategy__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4683:1: rule__Strategy__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__Strategy__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4687:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4688:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4688:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4689:1: '[id:'
+            {
+             before(grammarAccess.getStrategyAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__Strategy__Group_1__0__Impl9491); 
+             after(grammarAccess.getStrategyAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4702:1: rule__Strategy__Group_1__1 : rule__Strategy__Group_1__1__Impl rule__Strategy__Group_1__2 ;
+    public final void rule__Strategy__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4706:1: ( rule__Strategy__Group_1__1__Impl rule__Strategy__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4707:2: rule__Strategy__Group_1__1__Impl rule__Strategy__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_1__1__Impl_in_rule__Strategy__Group_1__19522);
+            rule__Strategy__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_1__2_in_rule__Strategy__Group_1__19525);
+            rule__Strategy__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_1__1"
+
+
+    // $ANTLR start "rule__Strategy__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4714:1: rule__Strategy__Group_1__1__Impl : ( ( rule__Strategy__IdAssignment_1_1 ) ) ;
+    public final void rule__Strategy__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4718:1: ( ( ( rule__Strategy__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4719:1: ( ( rule__Strategy__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4719:1: ( ( rule__Strategy__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4720:1: ( rule__Strategy__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getStrategyAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4721:1: ( rule__Strategy__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4721:2: rule__Strategy__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__IdAssignment_1_1_in_rule__Strategy__Group_1__1__Impl9552);
+            rule__Strategy__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4731:1: rule__Strategy__Group_1__2 : rule__Strategy__Group_1__2__Impl ;
+    public final void rule__Strategy__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4735:1: ( rule__Strategy__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4736:2: rule__Strategy__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_1__2__Impl_in_rule__Strategy__Group_1__29582);
+            rule__Strategy__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_1__2"
+
+
+    // $ANTLR start "rule__Strategy__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4742:1: rule__Strategy__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__Strategy__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4746:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4747:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4747:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4748:1: ']'
+            {
+             before(grammarAccess.getStrategyAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__Strategy__Group_1__2__Impl9610); 
+             after(grammarAccess.getStrategyAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group_13__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4767:1: rule__Strategy__Group_13__0 : rule__Strategy__Group_13__0__Impl rule__Strategy__Group_13__1 ;
+    public final void rule__Strategy__Group_13__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4771:1: ( rule__Strategy__Group_13__0__Impl rule__Strategy__Group_13__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4772:2: rule__Strategy__Group_13__0__Impl rule__Strategy__Group_13__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_13__0__Impl_in_rule__Strategy__Group_13__09647);
+            rule__Strategy__Group_13__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_13__1_in_rule__Strategy__Group_13__09650);
+            rule__Strategy__Group_13__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_13__0"
+
+
+    // $ANTLR start "rule__Strategy__Group_13__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4779:1: rule__Strategy__Group_13__0__Impl : ( ',' ) ;
+    public final void rule__Strategy__Group_13__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4783:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4784:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4784:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4785:1: ','
+            {
+             before(grammarAccess.getStrategyAccess().getCommaKeyword_13_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__Strategy__Group_13__0__Impl9678); 
+             after(grammarAccess.getStrategyAccess().getCommaKeyword_13_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_13__0__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group_13__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4798:1: rule__Strategy__Group_13__1 : rule__Strategy__Group_13__1__Impl ;
+    public final void rule__Strategy__Group_13__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4802:1: ( rule__Strategy__Group_13__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4803:2: rule__Strategy__Group_13__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_13__1__Impl_in_rule__Strategy__Group_13__19709);
+            rule__Strategy__Group_13__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_13__1"
+
+
+    // $ANTLR start "rule__Strategy__Group_13__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4809:1: rule__Strategy__Group_13__1__Impl : ( ( rule__Strategy__TacticsAssignment_13_1 ) ) ;
+    public final void rule__Strategy__Group_13__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4813:1: ( ( ( rule__Strategy__TacticsAssignment_13_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4814:1: ( ( rule__Strategy__TacticsAssignment_13_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4814:1: ( ( rule__Strategy__TacticsAssignment_13_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4815:1: ( rule__Strategy__TacticsAssignment_13_1 )
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsAssignment_13_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4816:1: ( rule__Strategy__TacticsAssignment_13_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4816:2: rule__Strategy__TacticsAssignment_13_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__TacticsAssignment_13_1_in_rule__Strategy__Group_13__1__Impl9736);
+            rule__Strategy__TacticsAssignment_13_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getTacticsAssignment_13_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_13__1__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4830:1: rule__Parameter__Group__0 : rule__Parameter__Group__0__Impl rule__Parameter__Group__1 ;
+    public final void rule__Parameter__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4834:1: ( rule__Parameter__Group__0__Impl rule__Parameter__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4835:2: rule__Parameter__Group__0__Impl rule__Parameter__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__0__Impl_in_rule__Parameter__Group__09770);
+            rule__Parameter__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__1_in_rule__Parameter__Group__09773);
+            rule__Parameter__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__0"
+
+
+    // $ANTLR start "rule__Parameter__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4842:1: rule__Parameter__Group__0__Impl : ( ( rule__Parameter__NameAssignment_0 ) ) ;
+    public final void rule__Parameter__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4846:1: ( ( ( rule__Parameter__NameAssignment_0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4847:1: ( ( rule__Parameter__NameAssignment_0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4847:1: ( ( rule__Parameter__NameAssignment_0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4848:1: ( rule__Parameter__NameAssignment_0 )
+            {
+             before(grammarAccess.getParameterAccess().getNameAssignment_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4849:1: ( rule__Parameter__NameAssignment_0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4849:2: rule__Parameter__NameAssignment_0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__NameAssignment_0_in_rule__Parameter__Group__0__Impl9800);
+            rule__Parameter__NameAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getParameterAccess().getNameAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4859:1: rule__Parameter__Group__1 : rule__Parameter__Group__1__Impl rule__Parameter__Group__2 ;
+    public final void rule__Parameter__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4863:1: ( rule__Parameter__Group__1__Impl rule__Parameter__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4864:2: rule__Parameter__Group__1__Impl rule__Parameter__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__1__Impl_in_rule__Parameter__Group__19830);
+            rule__Parameter__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__2_in_rule__Parameter__Group__19833);
+            rule__Parameter__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__1"
+
+
+    // $ANTLR start "rule__Parameter__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4871:1: rule__Parameter__Group__1__Impl : ( '{' ) ;
+    public final void rule__Parameter__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4875:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4876:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4876:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4877:1: '{'
+            {
+             before(grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__Parameter__Group__1__Impl9861); 
+             after(grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4890:1: rule__Parameter__Group__2 : rule__Parameter__Group__2__Impl rule__Parameter__Group__3 ;
+    public final void rule__Parameter__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4894:1: ( rule__Parameter__Group__2__Impl rule__Parameter__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4895:2: rule__Parameter__Group__2__Impl rule__Parameter__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__2__Impl_in_rule__Parameter__Group__29892);
+            rule__Parameter__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__3_in_rule__Parameter__Group__29895);
+            rule__Parameter__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__2"
+
+
+    // $ANTLR start "rule__Parameter__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4902:1: rule__Parameter__Group__2__Impl : ( ( rule__Parameter__Group_2__0 )? ) ;
+    public final void rule__Parameter__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4906:1: ( ( ( rule__Parameter__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4907:1: ( ( rule__Parameter__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4907:1: ( ( rule__Parameter__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4908:1: ( rule__Parameter__Group_2__0 )?
+            {
+             before(grammarAccess.getParameterAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4909:1: ( rule__Parameter__Group_2__0 )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+
+            if ( (LA29_0==60) ) {
+                alt29=1;
+            }
+            switch (alt29) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4909:2: rule__Parameter__Group_2__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_2__0_in_rule__Parameter__Group__2__Impl9922);
+                    rule__Parameter__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getParameterAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4919:1: rule__Parameter__Group__3 : rule__Parameter__Group__3__Impl rule__Parameter__Group__4 ;
+    public final void rule__Parameter__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4923:1: ( rule__Parameter__Group__3__Impl rule__Parameter__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4924:2: rule__Parameter__Group__3__Impl rule__Parameter__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__3__Impl_in_rule__Parameter__Group__39953);
+            rule__Parameter__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__4_in_rule__Parameter__Group__39956);
+            rule__Parameter__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__3"
+
+
+    // $ANTLR start "rule__Parameter__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4931:1: rule__Parameter__Group__3__Impl : ( ( rule__Parameter__TypeAssignment_3 ) ) ;
+    public final void rule__Parameter__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4935:1: ( ( ( rule__Parameter__TypeAssignment_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4936:1: ( ( rule__Parameter__TypeAssignment_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4936:1: ( ( rule__Parameter__TypeAssignment_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4937:1: ( rule__Parameter__TypeAssignment_3 )
+            {
+             before(grammarAccess.getParameterAccess().getTypeAssignment_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4938:1: ( rule__Parameter__TypeAssignment_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4938:2: rule__Parameter__TypeAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__TypeAssignment_3_in_rule__Parameter__Group__3__Impl9983);
+            rule__Parameter__TypeAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getParameterAccess().getTypeAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4948:1: rule__Parameter__Group__4 : rule__Parameter__Group__4__Impl rule__Parameter__Group__5 ;
+    public final void rule__Parameter__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4952:1: ( rule__Parameter__Group__4__Impl rule__Parameter__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4953:2: rule__Parameter__Group__4__Impl rule__Parameter__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__4__Impl_in_rule__Parameter__Group__410013);
+            rule__Parameter__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__5_in_rule__Parameter__Group__410016);
+            rule__Parameter__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__4"
+
+
+    // $ANTLR start "rule__Parameter__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4960:1: rule__Parameter__Group__4__Impl : ( ( rule__Parameter__Group_4__0 )? ) ;
+    public final void rule__Parameter__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4964:1: ( ( ( rule__Parameter__Group_4__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4965:1: ( ( rule__Parameter__Group_4__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4965:1: ( ( rule__Parameter__Group_4__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4966:1: ( rule__Parameter__Group_4__0 )?
+            {
+             before(grammarAccess.getParameterAccess().getGroup_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4967:1: ( rule__Parameter__Group_4__0 )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
+
+            if ( (LA30_0==46) ) {
+                alt30=1;
+            }
+            switch (alt30) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4967:2: rule__Parameter__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4__0_in_rule__Parameter__Group__4__Impl10043);
+                    rule__Parameter__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getParameterAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4977:1: rule__Parameter__Group__5 : rule__Parameter__Group__5__Impl ;
+    public final void rule__Parameter__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4981:1: ( rule__Parameter__Group__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4982:2: rule__Parameter__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__5__Impl_in_rule__Parameter__Group__510074);
+            rule__Parameter__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__5"
+
+
+    // $ANTLR start "rule__Parameter__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4988:1: rule__Parameter__Group__5__Impl : ( '}' ) ;
+    public final void rule__Parameter__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4992:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4993:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4993:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:4994:1: '}'
+            {
+             before(grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__Parameter__Group__5__Impl10102); 
+             after(grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5019:1: rule__Parameter__Group_2__0 : rule__Parameter__Group_2__0__Impl rule__Parameter__Group_2__1 ;
+    public final void rule__Parameter__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5023:1: ( rule__Parameter__Group_2__0__Impl rule__Parameter__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5024:2: rule__Parameter__Group_2__0__Impl rule__Parameter__Group_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_2__0__Impl_in_rule__Parameter__Group_2__010145);
+            rule__Parameter__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_2__1_in_rule__Parameter__Group_2__010148);
+            rule__Parameter__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_2__0"
+
+
+    // $ANTLR start "rule__Parameter__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5031:1: rule__Parameter__Group_2__0__Impl : ( 'type' ) ;
+    public final void rule__Parameter__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5035:1: ( ( 'type' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5036:1: ( 'type' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5036:1: ( 'type' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5037:1: 'type'
+            {
+             before(grammarAccess.getParameterAccess().getTypeKeyword_2_0()); 
+            match(input,60,FollowSets000.FOLLOW_60_in_rule__Parameter__Group_2__0__Impl10176); 
+             after(grammarAccess.getParameterAccess().getTypeKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5050:1: rule__Parameter__Group_2__1 : rule__Parameter__Group_2__1__Impl ;
+    public final void rule__Parameter__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5054:1: ( rule__Parameter__Group_2__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5055:2: rule__Parameter__Group_2__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_2__1__Impl_in_rule__Parameter__Group_2__110207);
+            rule__Parameter__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_2__1"
+
+
+    // $ANTLR start "rule__Parameter__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5061:1: rule__Parameter__Group_2__1__Impl : ( '=' ) ;
+    public final void rule__Parameter__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5065:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5066:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5066:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5067:1: '='
+            {
+             before(grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Parameter__Group_2__1__Impl10235); 
+             after(grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5084:1: rule__Parameter__Group_4__0 : rule__Parameter__Group_4__0__Impl rule__Parameter__Group_4__1 ;
+    public final void rule__Parameter__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5088:1: ( rule__Parameter__Group_4__0__Impl rule__Parameter__Group_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5089:2: rule__Parameter__Group_4__0__Impl rule__Parameter__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4__0__Impl_in_rule__Parameter__Group_4__010270);
+            rule__Parameter__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4__1_in_rule__Parameter__Group_4__010273);
+            rule__Parameter__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4__0"
+
+
+    // $ANTLR start "rule__Parameter__Group_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5096:1: rule__Parameter__Group_4__0__Impl : ( ',' ) ;
+    public final void rule__Parameter__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5100:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5101:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5101:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5102:1: ','
+            {
+             before(grammarAccess.getParameterAccess().getCommaKeyword_4_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__Parameter__Group_4__0__Impl10301); 
+             after(grammarAccess.getParameterAccess().getCommaKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5115:1: rule__Parameter__Group_4__1 : rule__Parameter__Group_4__1__Impl rule__Parameter__Group_4__2 ;
+    public final void rule__Parameter__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5119:1: ( rule__Parameter__Group_4__1__Impl rule__Parameter__Group_4__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5120:2: rule__Parameter__Group_4__1__Impl rule__Parameter__Group_4__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4__1__Impl_in_rule__Parameter__Group_4__110332);
+            rule__Parameter__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4__2_in_rule__Parameter__Group_4__110335);
+            rule__Parameter__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4__1"
+
+
+    // $ANTLR start "rule__Parameter__Group_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5127:1: rule__Parameter__Group_4__1__Impl : ( ( rule__Parameter__Group_4_1__0 )? ) ;
+    public final void rule__Parameter__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5131:1: ( ( ( rule__Parameter__Group_4_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5132:1: ( ( rule__Parameter__Group_4_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5132:1: ( ( rule__Parameter__Group_4_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5133:1: ( rule__Parameter__Group_4_1__0 )?
+            {
+             before(grammarAccess.getParameterAccess().getGroup_4_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5134:1: ( rule__Parameter__Group_4_1__0 )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==61) ) {
+                alt31=1;
+            }
+            switch (alt31) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5134:2: rule__Parameter__Group_4_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4_1__0_in_rule__Parameter__Group_4__1__Impl10362);
+                    rule__Parameter__Group_4_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getParameterAccess().getGroup_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group_4__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5144:1: rule__Parameter__Group_4__2 : rule__Parameter__Group_4__2__Impl ;
+    public final void rule__Parameter__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5148:1: ( rule__Parameter__Group_4__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5149:2: rule__Parameter__Group_4__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4__2__Impl_in_rule__Parameter__Group_4__210393);
+            rule__Parameter__Group_4__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4__2"
+
+
+    // $ANTLR start "rule__Parameter__Group_4__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5155:1: rule__Parameter__Group_4__2__Impl : ( ( rule__Parameter__ValueAssignment_4_2 ) ) ;
+    public final void rule__Parameter__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5159:1: ( ( ( rule__Parameter__ValueAssignment_4_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5160:1: ( ( rule__Parameter__ValueAssignment_4_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5160:1: ( ( rule__Parameter__ValueAssignment_4_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5161:1: ( rule__Parameter__ValueAssignment_4_2 )
+            {
+             before(grammarAccess.getParameterAccess().getValueAssignment_4_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5162:1: ( rule__Parameter__ValueAssignment_4_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5162:2: rule__Parameter__ValueAssignment_4_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__ValueAssignment_4_2_in_rule__Parameter__Group_4__2__Impl10420);
+            rule__Parameter__ValueAssignment_4_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getParameterAccess().getValueAssignment_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group_4_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5178:1: rule__Parameter__Group_4_1__0 : rule__Parameter__Group_4_1__0__Impl rule__Parameter__Group_4_1__1 ;
+    public final void rule__Parameter__Group_4_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5182:1: ( rule__Parameter__Group_4_1__0__Impl rule__Parameter__Group_4_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5183:2: rule__Parameter__Group_4_1__0__Impl rule__Parameter__Group_4_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4_1__0__Impl_in_rule__Parameter__Group_4_1__010456);
+            rule__Parameter__Group_4_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4_1__1_in_rule__Parameter__Group_4_1__010459);
+            rule__Parameter__Group_4_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4_1__0"
+
+
+    // $ANTLR start "rule__Parameter__Group_4_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5190:1: rule__Parameter__Group_4_1__0__Impl : ( 'value' ) ;
+    public final void rule__Parameter__Group_4_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5194:1: ( ( 'value' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5195:1: ( 'value' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5195:1: ( 'value' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5196:1: 'value'
+            {
+             before(grammarAccess.getParameterAccess().getValueKeyword_4_1_0()); 
+            match(input,61,FollowSets000.FOLLOW_61_in_rule__Parameter__Group_4_1__0__Impl10487); 
+             after(grammarAccess.getParameterAccess().getValueKeyword_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4_1__0__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group_4_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5209:1: rule__Parameter__Group_4_1__1 : rule__Parameter__Group_4_1__1__Impl ;
+    public final void rule__Parameter__Group_4_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5213:1: ( rule__Parameter__Group_4_1__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5214:2: rule__Parameter__Group_4_1__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group_4_1__1__Impl_in_rule__Parameter__Group_4_1__110518);
+            rule__Parameter__Group_4_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4_1__1"
+
+
+    // $ANTLR start "rule__Parameter__Group_4_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5220:1: rule__Parameter__Group_4_1__1__Impl : ( '=' ) ;
+    public final void rule__Parameter__Group_4_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5224:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5225:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5225:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5226:1: '='
+            {
+             before(grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Parameter__Group_4_1__1__Impl10546); 
+             after(grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__Group_4_1__1__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5243:1: rule__OverallGoal__Group__0 : rule__OverallGoal__Group__0__Impl rule__OverallGoal__Group__1 ;
+    public final void rule__OverallGoal__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5247:1: ( rule__OverallGoal__Group__0__Impl rule__OverallGoal__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5248:2: rule__OverallGoal__Group__0__Impl rule__OverallGoal__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__0__Impl_in_rule__OverallGoal__Group__010581);
+            rule__OverallGoal__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__1_in_rule__OverallGoal__Group__010584);
+            rule__OverallGoal__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__0"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5255:1: rule__OverallGoal__Group__0__Impl : ( 'description' ) ;
+    public final void rule__OverallGoal__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5259:1: ( ( 'description' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5260:1: ( 'description' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5260:1: ( 'description' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5261:1: 'description'
+            {
+             before(grammarAccess.getOverallGoalAccess().getDescriptionKeyword_0()); 
+            match(input,62,FollowSets000.FOLLOW_62_in_rule__OverallGoal__Group__0__Impl10612); 
+             after(grammarAccess.getOverallGoalAccess().getDescriptionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__0__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5274:1: rule__OverallGoal__Group__1 : rule__OverallGoal__Group__1__Impl rule__OverallGoal__Group__2 ;
+    public final void rule__OverallGoal__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5278:1: ( rule__OverallGoal__Group__1__Impl rule__OverallGoal__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5279:2: rule__OverallGoal__Group__1__Impl rule__OverallGoal__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__1__Impl_in_rule__OverallGoal__Group__110643);
+            rule__OverallGoal__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__2_in_rule__OverallGoal__Group__110646);
+            rule__OverallGoal__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__1"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5286:1: rule__OverallGoal__Group__1__Impl : ( ( rule__OverallGoal__DescriptionAssignment_1 ) ) ;
+    public final void rule__OverallGoal__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5290:1: ( ( ( rule__OverallGoal__DescriptionAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5291:1: ( ( rule__OverallGoal__DescriptionAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5291:1: ( ( rule__OverallGoal__DescriptionAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5292:1: ( rule__OverallGoal__DescriptionAssignment_1 )
+            {
+             before(grammarAccess.getOverallGoalAccess().getDescriptionAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5293:1: ( rule__OverallGoal__DescriptionAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5293:2: rule__OverallGoal__DescriptionAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__DescriptionAssignment_1_in_rule__OverallGoal__Group__1__Impl10673);
+            rule__OverallGoal__DescriptionAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOverallGoalAccess().getDescriptionAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__1__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5303:1: rule__OverallGoal__Group__2 : rule__OverallGoal__Group__2__Impl rule__OverallGoal__Group__3 ;
+    public final void rule__OverallGoal__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5307:1: ( rule__OverallGoal__Group__2__Impl rule__OverallGoal__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5308:2: rule__OverallGoal__Group__2__Impl rule__OverallGoal__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__2__Impl_in_rule__OverallGoal__Group__210703);
+            rule__OverallGoal__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__3_in_rule__OverallGoal__Group__210706);
+            rule__OverallGoal__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__2"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5315:1: rule__OverallGoal__Group__2__Impl : ( 'objectives' ) ;
+    public final void rule__OverallGoal__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5319:1: ( ( 'objectives' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5320:1: ( 'objectives' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5320:1: ( 'objectives' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5321:1: 'objectives'
+            {
+             before(grammarAccess.getOverallGoalAccess().getObjectivesKeyword_2()); 
+            match(input,63,FollowSets000.FOLLOW_63_in_rule__OverallGoal__Group__2__Impl10734); 
+             after(grammarAccess.getOverallGoalAccess().getObjectivesKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__2__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5334:1: rule__OverallGoal__Group__3 : rule__OverallGoal__Group__3__Impl rule__OverallGoal__Group__4 ;
+    public final void rule__OverallGoal__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5338:1: ( rule__OverallGoal__Group__3__Impl rule__OverallGoal__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5339:2: rule__OverallGoal__Group__3__Impl rule__OverallGoal__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__3__Impl_in_rule__OverallGoal__Group__310765);
+            rule__OverallGoal__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__4_in_rule__OverallGoal__Group__310768);
+            rule__OverallGoal__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__3"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5346:1: rule__OverallGoal__Group__3__Impl : ( '=' ) ;
+    public final void rule__OverallGoal__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5350:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5351:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5351:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5352:1: '='
+            {
+             before(grammarAccess.getOverallGoalAccess().getEqualsSignKeyword_3()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__OverallGoal__Group__3__Impl10796); 
+             after(grammarAccess.getOverallGoalAccess().getEqualsSignKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__3__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5365:1: rule__OverallGoal__Group__4 : rule__OverallGoal__Group__4__Impl rule__OverallGoal__Group__5 ;
+    public final void rule__OverallGoal__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5369:1: ( rule__OverallGoal__Group__4__Impl rule__OverallGoal__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5370:2: rule__OverallGoal__Group__4__Impl rule__OverallGoal__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__4__Impl_in_rule__OverallGoal__Group__410827);
+            rule__OverallGoal__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__5_in_rule__OverallGoal__Group__410830);
+            rule__OverallGoal__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__4"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5377:1: rule__OverallGoal__Group__4__Impl : ( '(' ) ;
+    public final void rule__OverallGoal__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5381:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5382:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5382:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5383:1: '('
+            {
+             before(grammarAccess.getOverallGoalAccess().getLeftParenthesisKeyword_4()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__OverallGoal__Group__4__Impl10858); 
+             after(grammarAccess.getOverallGoalAccess().getLeftParenthesisKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__4__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5396:1: rule__OverallGoal__Group__5 : rule__OverallGoal__Group__5__Impl rule__OverallGoal__Group__6 ;
+    public final void rule__OverallGoal__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5400:1: ( rule__OverallGoal__Group__5__Impl rule__OverallGoal__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5401:2: rule__OverallGoal__Group__5__Impl rule__OverallGoal__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__5__Impl_in_rule__OverallGoal__Group__510889);
+            rule__OverallGoal__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__6_in_rule__OverallGoal__Group__510892);
+            rule__OverallGoal__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__5"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5408:1: rule__OverallGoal__Group__5__Impl : ( ( rule__OverallGoal__ObjectivesAssignment_5 ) ) ;
+    public final void rule__OverallGoal__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5412:1: ( ( ( rule__OverallGoal__ObjectivesAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5413:1: ( ( rule__OverallGoal__ObjectivesAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5413:1: ( ( rule__OverallGoal__ObjectivesAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5414:1: ( rule__OverallGoal__ObjectivesAssignment_5 )
+            {
+             before(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5415:1: ( rule__OverallGoal__ObjectivesAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5415:2: rule__OverallGoal__ObjectivesAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__ObjectivesAssignment_5_in_rule__OverallGoal__Group__5__Impl10919);
+            rule__OverallGoal__ObjectivesAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__5__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5425:1: rule__OverallGoal__Group__6 : rule__OverallGoal__Group__6__Impl rule__OverallGoal__Group__7 ;
+    public final void rule__OverallGoal__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5429:1: ( rule__OverallGoal__Group__6__Impl rule__OverallGoal__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5430:2: rule__OverallGoal__Group__6__Impl rule__OverallGoal__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__6__Impl_in_rule__OverallGoal__Group__610949);
+            rule__OverallGoal__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__7_in_rule__OverallGoal__Group__610952);
+            rule__OverallGoal__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__6"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5437:1: rule__OverallGoal__Group__6__Impl : ( ( rule__OverallGoal__Group_6__0 )* ) ;
+    public final void rule__OverallGoal__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5441:1: ( ( ( rule__OverallGoal__Group_6__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5442:1: ( ( rule__OverallGoal__Group_6__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5442:1: ( ( rule__OverallGoal__Group_6__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5443:1: ( rule__OverallGoal__Group_6__0 )*
+            {
+             before(grammarAccess.getOverallGoalAccess().getGroup_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5444:1: ( rule__OverallGoal__Group_6__0 )*
+            loop32:
+            do {
+                int alt32=2;
+                int LA32_0 = input.LA(1);
+
+                if ( (LA32_0==46) ) {
+                    alt32=1;
+                }
+
+
+                switch (alt32) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5444:2: rule__OverallGoal__Group_6__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group_6__0_in_rule__OverallGoal__Group__6__Impl10979);
+            	    rule__OverallGoal__Group_6__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop32;
+                }
+            } while (true);
+
+             after(grammarAccess.getOverallGoalAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__6__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5454:1: rule__OverallGoal__Group__7 : rule__OverallGoal__Group__7__Impl ;
+    public final void rule__OverallGoal__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5458:1: ( rule__OverallGoal__Group__7__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5459:2: rule__OverallGoal__Group__7__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group__7__Impl_in_rule__OverallGoal__Group__711010);
+            rule__OverallGoal__Group__7__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__7"
+
+
+    // $ANTLR start "rule__OverallGoal__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5465:1: rule__OverallGoal__Group__7__Impl : ( ')' ) ;
+    public final void rule__OverallGoal__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5469:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5470:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5470:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5471:1: ')'
+            {
+             before(grammarAccess.getOverallGoalAccess().getRightParenthesisKeyword_7()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__OverallGoal__Group__7__Impl11038); 
+             after(grammarAccess.getOverallGoalAccess().getRightParenthesisKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group__7__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group_6__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5500:1: rule__OverallGoal__Group_6__0 : rule__OverallGoal__Group_6__0__Impl rule__OverallGoal__Group_6__1 ;
+    public final void rule__OverallGoal__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5504:1: ( rule__OverallGoal__Group_6__0__Impl rule__OverallGoal__Group_6__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5505:2: rule__OverallGoal__Group_6__0__Impl rule__OverallGoal__Group_6__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group_6__0__Impl_in_rule__OverallGoal__Group_6__011085);
+            rule__OverallGoal__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group_6__1_in_rule__OverallGoal__Group_6__011088);
+            rule__OverallGoal__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group_6__0"
+
+
+    // $ANTLR start "rule__OverallGoal__Group_6__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5512:1: rule__OverallGoal__Group_6__0__Impl : ( ',' ) ;
+    public final void rule__OverallGoal__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5516:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5517:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5517:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5518:1: ','
+            {
+             before(grammarAccess.getOverallGoalAccess().getCommaKeyword_6_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__OverallGoal__Group_6__0__Impl11116); 
+             after(grammarAccess.getOverallGoalAccess().getCommaKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__OverallGoal__Group_6__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5531:1: rule__OverallGoal__Group_6__1 : rule__OverallGoal__Group_6__1__Impl ;
+    public final void rule__OverallGoal__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5535:1: ( rule__OverallGoal__Group_6__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5536:2: rule__OverallGoal__Group_6__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__Group_6__1__Impl_in_rule__OverallGoal__Group_6__111147);
+            rule__OverallGoal__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group_6__1"
+
+
+    // $ANTLR start "rule__OverallGoal__Group_6__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5542:1: rule__OverallGoal__Group_6__1__Impl : ( ( rule__OverallGoal__ObjectivesAssignment_6_1 ) ) ;
+    public final void rule__OverallGoal__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5546:1: ( ( ( rule__OverallGoal__ObjectivesAssignment_6_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5547:1: ( ( rule__OverallGoal__ObjectivesAssignment_6_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5547:1: ( ( rule__OverallGoal__ObjectivesAssignment_6_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5548:1: ( rule__OverallGoal__ObjectivesAssignment_6_1 )
+            {
+             before(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_6_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5549:1: ( rule__OverallGoal__ObjectivesAssignment_6_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5549:2: rule__OverallGoal__ObjectivesAssignment_6_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OverallGoal__ObjectivesAssignment_6_1_in_rule__OverallGoal__Group_6__1__Impl11174);
+            rule__OverallGoal__ObjectivesAssignment_6_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOverallGoalAccess().getObjectivesAssignment_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__ImportDeclaration__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5563:1: rule__ImportDeclaration__Group__0 : rule__ImportDeclaration__Group__0__Impl rule__ImportDeclaration__Group__1 ;
+    public final void rule__ImportDeclaration__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5567:1: ( rule__ImportDeclaration__Group__0__Impl rule__ImportDeclaration__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5568:2: rule__ImportDeclaration__Group__0__Impl rule__ImportDeclaration__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ImportDeclaration__Group__0__Impl_in_rule__ImportDeclaration__Group__011208);
+            rule__ImportDeclaration__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ImportDeclaration__Group__1_in_rule__ImportDeclaration__Group__011211);
+            rule__ImportDeclaration__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ImportDeclaration__Group__0"
+
+
+    // $ANTLR start "rule__ImportDeclaration__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5575:1: rule__ImportDeclaration__Group__0__Impl : ( 'ImportDeclaration' ) ;
+    public final void rule__ImportDeclaration__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5579:1: ( ( 'ImportDeclaration' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5580:1: ( 'ImportDeclaration' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5580:1: ( 'ImportDeclaration' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5581:1: 'ImportDeclaration'
+            {
+             before(grammarAccess.getImportDeclarationAccess().getImportDeclarationKeyword_0()); 
+            match(input,64,FollowSets000.FOLLOW_64_in_rule__ImportDeclaration__Group__0__Impl11239); 
+             after(grammarAccess.getImportDeclarationAccess().getImportDeclarationKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ImportDeclaration__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ImportDeclaration__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5594:1: rule__ImportDeclaration__Group__1 : rule__ImportDeclaration__Group__1__Impl ;
+    public final void rule__ImportDeclaration__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5598:1: ( rule__ImportDeclaration__Group__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5599:2: rule__ImportDeclaration__Group__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ImportDeclaration__Group__1__Impl_in_rule__ImportDeclaration__Group__111270);
+            rule__ImportDeclaration__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ImportDeclaration__Group__1"
+
+
+    // $ANTLR start "rule__ImportDeclaration__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5605:1: rule__ImportDeclaration__Group__1__Impl : ( ( rule__ImportDeclaration__ImportURIAssignment_1 ) ) ;
+    public final void rule__ImportDeclaration__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5609:1: ( ( ( rule__ImportDeclaration__ImportURIAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5610:1: ( ( rule__ImportDeclaration__ImportURIAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5610:1: ( ( rule__ImportDeclaration__ImportURIAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5611:1: ( rule__ImportDeclaration__ImportURIAssignment_1 )
+            {
+             before(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5612:1: ( rule__ImportDeclaration__ImportURIAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5612:2: rule__ImportDeclaration__ImportURIAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ImportDeclaration__ImportURIAssignment_1_in_rule__ImportDeclaration__Group__1__Impl11297);
+            rule__ImportDeclaration__ImportURIAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getImportDeclarationAccess().getImportURIAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ImportDeclaration__Group__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5626:1: rule__AdaptationPlan__Group__0 : rule__AdaptationPlan__Group__0__Impl rule__AdaptationPlan__Group__1 ;
+    public final void rule__AdaptationPlan__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5630:1: ( rule__AdaptationPlan__Group__0__Impl rule__AdaptationPlan__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5631:2: rule__AdaptationPlan__Group__0__Impl rule__AdaptationPlan__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__0__Impl_in_rule__AdaptationPlan__Group__011331);
+            rule__AdaptationPlan__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__1_in_rule__AdaptationPlan__Group__011334);
+            rule__AdaptationPlan__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__0"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5638:1: rule__AdaptationPlan__Group__0__Impl : ( ( rule__AdaptationPlan__NameAssignment_0 ) ) ;
+    public final void rule__AdaptationPlan__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5642:1: ( ( ( rule__AdaptationPlan__NameAssignment_0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5643:1: ( ( rule__AdaptationPlan__NameAssignment_0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5643:1: ( ( rule__AdaptationPlan__NameAssignment_0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5644:1: ( rule__AdaptationPlan__NameAssignment_0 )
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getNameAssignment_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5645:1: ( rule__AdaptationPlan__NameAssignment_0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5645:2: rule__AdaptationPlan__NameAssignment_0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__NameAssignment_0_in_rule__AdaptationPlan__Group__0__Impl11361);
+            rule__AdaptationPlan__NameAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getNameAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5655:1: rule__AdaptationPlan__Group__1 : rule__AdaptationPlan__Group__1__Impl rule__AdaptationPlan__Group__2 ;
+    public final void rule__AdaptationPlan__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5659:1: ( rule__AdaptationPlan__Group__1__Impl rule__AdaptationPlan__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5660:2: rule__AdaptationPlan__Group__1__Impl rule__AdaptationPlan__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__1__Impl_in_rule__AdaptationPlan__Group__111391);
+            rule__AdaptationPlan__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__2_in_rule__AdaptationPlan__Group__111394);
+            rule__AdaptationPlan__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5667:1: rule__AdaptationPlan__Group__1__Impl : ( ( rule__AdaptationPlan__Group_1__0 )? ) ;
+    public final void rule__AdaptationPlan__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5671:1: ( ( ( rule__AdaptationPlan__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5672:1: ( ( rule__AdaptationPlan__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5672:1: ( ( rule__AdaptationPlan__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5673:1: ( rule__AdaptationPlan__Group_1__0 )?
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5674:1: ( rule__AdaptationPlan__Group_1__0 )?
+            int alt33=2;
+            int LA33_0 = input.LA(1);
+
+            if ( (LA33_0==43) ) {
+                alt33=1;
+            }
+            switch (alt33) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5674:2: rule__AdaptationPlan__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_1__0_in_rule__AdaptationPlan__Group__1__Impl11421);
+                    rule__AdaptationPlan__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5684:1: rule__AdaptationPlan__Group__2 : rule__AdaptationPlan__Group__2__Impl rule__AdaptationPlan__Group__3 ;
+    public final void rule__AdaptationPlan__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5688:1: ( rule__AdaptationPlan__Group__2__Impl rule__AdaptationPlan__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5689:2: rule__AdaptationPlan__Group__2__Impl rule__AdaptationPlan__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__2__Impl_in_rule__AdaptationPlan__Group__211452);
+            rule__AdaptationPlan__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__3_in_rule__AdaptationPlan__Group__211455);
+            rule__AdaptationPlan__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__2"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5696:1: rule__AdaptationPlan__Group__2__Impl : ( '=' ) ;
+    public final void rule__AdaptationPlan__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5700:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5701:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5701:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5702:1: '='
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getEqualsSignKeyword_2()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__AdaptationPlan__Group__2__Impl11483); 
+             after(grammarAccess.getAdaptationPlanAccess().getEqualsSignKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__2__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5715:1: rule__AdaptationPlan__Group__3 : rule__AdaptationPlan__Group__3__Impl ;
+    public final void rule__AdaptationPlan__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5719:1: ( rule__AdaptationPlan__Group__3__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5720:2: rule__AdaptationPlan__Group__3__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__3__Impl_in_rule__AdaptationPlan__Group__311514);
+            rule__AdaptationPlan__Group__3__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__3"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5726:1: rule__AdaptationPlan__Group__3__Impl : ( ( rule__AdaptationPlan__Group_3__0 )? ) ;
+    public final void rule__AdaptationPlan__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5730:1: ( ( ( rule__AdaptationPlan__Group_3__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5731:1: ( ( rule__AdaptationPlan__Group_3__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5731:1: ( ( rule__AdaptationPlan__Group_3__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5732:1: ( rule__AdaptationPlan__Group_3__0 )?
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getGroup_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5733:1: ( rule__AdaptationPlan__Group_3__0 )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
+
+            if ( (LA34_0==51) ) {
+                alt34=1;
+            }
+            switch (alt34) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5733:2: rule__AdaptationPlan__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3__0_in_rule__AdaptationPlan__Group__3__Impl11541);
+                    rule__AdaptationPlan__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__3__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5751:1: rule__AdaptationPlan__Group_1__0 : rule__AdaptationPlan__Group_1__0__Impl rule__AdaptationPlan__Group_1__1 ;
+    public final void rule__AdaptationPlan__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5755:1: ( rule__AdaptationPlan__Group_1__0__Impl rule__AdaptationPlan__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5756:2: rule__AdaptationPlan__Group_1__0__Impl rule__AdaptationPlan__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_1__0__Impl_in_rule__AdaptationPlan__Group_1__011580);
+            rule__AdaptationPlan__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_1__1_in_rule__AdaptationPlan__Group_1__011583);
+            rule__AdaptationPlan__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_1__0"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5763:1: rule__AdaptationPlan__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__AdaptationPlan__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5767:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5768:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5768:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5769:1: '[id:'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__AdaptationPlan__Group_1__0__Impl11611); 
+             after(grammarAccess.getAdaptationPlanAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5782:1: rule__AdaptationPlan__Group_1__1 : rule__AdaptationPlan__Group_1__1__Impl rule__AdaptationPlan__Group_1__2 ;
+    public final void rule__AdaptationPlan__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5786:1: ( rule__AdaptationPlan__Group_1__1__Impl rule__AdaptationPlan__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5787:2: rule__AdaptationPlan__Group_1__1__Impl rule__AdaptationPlan__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_1__1__Impl_in_rule__AdaptationPlan__Group_1__111642);
+            rule__AdaptationPlan__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_1__2_in_rule__AdaptationPlan__Group_1__111645);
+            rule__AdaptationPlan__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_1__1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5794:1: rule__AdaptationPlan__Group_1__1__Impl : ( ( rule__AdaptationPlan__IdAssignment_1_1 ) ) ;
+    public final void rule__AdaptationPlan__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5798:1: ( ( ( rule__AdaptationPlan__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5799:1: ( ( rule__AdaptationPlan__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5799:1: ( ( rule__AdaptationPlan__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5800:1: ( rule__AdaptationPlan__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5801:1: ( rule__AdaptationPlan__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5801:2: rule__AdaptationPlan__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__IdAssignment_1_1_in_rule__AdaptationPlan__Group_1__1__Impl11672);
+            rule__AdaptationPlan__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5811:1: rule__AdaptationPlan__Group_1__2 : rule__AdaptationPlan__Group_1__2__Impl ;
+    public final void rule__AdaptationPlan__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5815:1: ( rule__AdaptationPlan__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5816:2: rule__AdaptationPlan__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_1__2__Impl_in_rule__AdaptationPlan__Group_1__211702);
+            rule__AdaptationPlan__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_1__2"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5822:1: rule__AdaptationPlan__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__AdaptationPlan__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5826:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5827:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5827:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5828:1: ']'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__AdaptationPlan__Group_1__2__Impl11730); 
+             after(grammarAccess.getAdaptationPlanAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5847:1: rule__AdaptationPlan__Group_3__0 : rule__AdaptationPlan__Group_3__0__Impl rule__AdaptationPlan__Group_3__1 ;
+    public final void rule__AdaptationPlan__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5851:1: ( rule__AdaptationPlan__Group_3__0__Impl rule__AdaptationPlan__Group_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5852:2: rule__AdaptationPlan__Group_3__0__Impl rule__AdaptationPlan__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3__0__Impl_in_rule__AdaptationPlan__Group_3__011767);
+            rule__AdaptationPlan__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3__1_in_rule__AdaptationPlan__Group_3__011770);
+            rule__AdaptationPlan__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3__0"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5859:1: rule__AdaptationPlan__Group_3__0__Impl : ( '(' ) ;
+    public final void rule__AdaptationPlan__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5863:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5864:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5864:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5865:1: '('
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getLeftParenthesisKeyword_3_0()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__AdaptationPlan__Group_3__0__Impl11798); 
+             after(grammarAccess.getAdaptationPlanAccess().getLeftParenthesisKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5878:1: rule__AdaptationPlan__Group_3__1 : rule__AdaptationPlan__Group_3__1__Impl rule__AdaptationPlan__Group_3__2 ;
+    public final void rule__AdaptationPlan__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5882:1: ( rule__AdaptationPlan__Group_3__1__Impl rule__AdaptationPlan__Group_3__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5883:2: rule__AdaptationPlan__Group_3__1__Impl rule__AdaptationPlan__Group_3__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3__1__Impl_in_rule__AdaptationPlan__Group_3__111829);
+            rule__AdaptationPlan__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3__2_in_rule__AdaptationPlan__Group_3__111832);
+            rule__AdaptationPlan__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3__1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5890:1: rule__AdaptationPlan__Group_3__1__Impl : ( ( rule__AdaptationPlan__StepsAssignment_3_1 ) ) ;
+    public final void rule__AdaptationPlan__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5894:1: ( ( ( rule__AdaptationPlan__StepsAssignment_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5895:1: ( ( rule__AdaptationPlan__StepsAssignment_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5895:1: ( ( rule__AdaptationPlan__StepsAssignment_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5896:1: ( rule__AdaptationPlan__StepsAssignment_3_1 )
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5897:1: ( rule__AdaptationPlan__StepsAssignment_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5897:2: rule__AdaptationPlan__StepsAssignment_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__StepsAssignment_3_1_in_rule__AdaptationPlan__Group_3__1__Impl11859);
+            rule__AdaptationPlan__StepsAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5907:1: rule__AdaptationPlan__Group_3__2 : rule__AdaptationPlan__Group_3__2__Impl rule__AdaptationPlan__Group_3__3 ;
+    public final void rule__AdaptationPlan__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5911:1: ( rule__AdaptationPlan__Group_3__2__Impl rule__AdaptationPlan__Group_3__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5912:2: rule__AdaptationPlan__Group_3__2__Impl rule__AdaptationPlan__Group_3__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3__2__Impl_in_rule__AdaptationPlan__Group_3__211889);
+            rule__AdaptationPlan__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3__3_in_rule__AdaptationPlan__Group_3__211892);
+            rule__AdaptationPlan__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3__2"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5919:1: rule__AdaptationPlan__Group_3__2__Impl : ( ( rule__AdaptationPlan__Group_3_2__0 )* ) ;
+    public final void rule__AdaptationPlan__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5923:1: ( ( ( rule__AdaptationPlan__Group_3_2__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5924:1: ( ( rule__AdaptationPlan__Group_3_2__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5924:1: ( ( rule__AdaptationPlan__Group_3_2__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5925:1: ( rule__AdaptationPlan__Group_3_2__0 )*
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getGroup_3_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5926:1: ( rule__AdaptationPlan__Group_3_2__0 )*
+            loop35:
+            do {
+                int alt35=2;
+                int LA35_0 = input.LA(1);
+
+                if ( (LA35_0==46) ) {
+                    alt35=1;
+                }
+
+
+                switch (alt35) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5926:2: rule__AdaptationPlan__Group_3_2__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3_2__0_in_rule__AdaptationPlan__Group_3__2__Impl11919);
+            	    rule__AdaptationPlan__Group_3_2__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop35;
+                }
+            } while (true);
+
+             after(grammarAccess.getAdaptationPlanAccess().getGroup_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5936:1: rule__AdaptationPlan__Group_3__3 : rule__AdaptationPlan__Group_3__3__Impl ;
+    public final void rule__AdaptationPlan__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5940:1: ( rule__AdaptationPlan__Group_3__3__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5941:2: rule__AdaptationPlan__Group_3__3__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3__3__Impl_in_rule__AdaptationPlan__Group_3__311950);
+            rule__AdaptationPlan__Group_3__3__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3__3"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5947:1: rule__AdaptationPlan__Group_3__3__Impl : ( ')' ) ;
+    public final void rule__AdaptationPlan__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5951:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5952:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5952:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5953:1: ')'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getRightParenthesisKeyword_3_3()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__AdaptationPlan__Group_3__3__Impl11978); 
+             after(grammarAccess.getAdaptationPlanAccess().getRightParenthesisKeyword_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5974:1: rule__AdaptationPlan__Group_3_2__0 : rule__AdaptationPlan__Group_3_2__0__Impl rule__AdaptationPlan__Group_3_2__1 ;
+    public final void rule__AdaptationPlan__Group_3_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5978:1: ( rule__AdaptationPlan__Group_3_2__0__Impl rule__AdaptationPlan__Group_3_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5979:2: rule__AdaptationPlan__Group_3_2__0__Impl rule__AdaptationPlan__Group_3_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3_2__0__Impl_in_rule__AdaptationPlan__Group_3_2__012017);
+            rule__AdaptationPlan__Group_3_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3_2__1_in_rule__AdaptationPlan__Group_3_2__012020);
+            rule__AdaptationPlan__Group_3_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3_2__0"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5986:1: rule__AdaptationPlan__Group_3_2__0__Impl : ( ',' ) ;
+    public final void rule__AdaptationPlan__Group_3_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5990:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5991:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5991:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:5992:1: ','
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_3_2_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__AdaptationPlan__Group_3_2__0__Impl12048); 
+             after(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3_2__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6005:1: rule__AdaptationPlan__Group_3_2__1 : rule__AdaptationPlan__Group_3_2__1__Impl ;
+    public final void rule__AdaptationPlan__Group_3_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6009:1: ( rule__AdaptationPlan__Group_3_2__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6010:2: rule__AdaptationPlan__Group_3_2__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_3_2__1__Impl_in_rule__AdaptationPlan__Group_3_2__112079);
+            rule__AdaptationPlan__Group_3_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3_2__1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_3_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6016:1: rule__AdaptationPlan__Group_3_2__1__Impl : ( ( rule__AdaptationPlan__StepsAssignment_3_2_1 ) ) ;
+    public final void rule__AdaptationPlan__Group_3_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6020:1: ( ( ( rule__AdaptationPlan__StepsAssignment_3_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6021:1: ( ( rule__AdaptationPlan__StepsAssignment_3_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6021:1: ( ( rule__AdaptationPlan__StepsAssignment_3_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6022:1: ( rule__AdaptationPlan__StepsAssignment_3_2_1 )
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6023:1: ( rule__AdaptationPlan__StepsAssignment_3_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6023:2: rule__AdaptationPlan__StepsAssignment_3_2_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__StepsAssignment_3_2_1_in_rule__AdaptationPlan__Group_3_2__1__Impl12106);
+            rule__AdaptationPlan__StepsAssignment_3_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_3_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_3_2__1__Impl"
+
+
+    // $ANTLR start "rule__StartAction__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6037:1: rule__StartAction__Group__0 : rule__StartAction__Group__0__Impl rule__StartAction__Group__1 ;
+    public final void rule__StartAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6041:1: ( rule__StartAction__Group__0__Impl rule__StartAction__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6042:2: rule__StartAction__Group__0__Impl rule__StartAction__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group__0__Impl_in_rule__StartAction__Group__012140);
+            rule__StartAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group__1_in_rule__StartAction__Group__012143);
+            rule__StartAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__0"
+
+
+    // $ANTLR start "rule__StartAction__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6049:1: rule__StartAction__Group__0__Impl : ( () ) ;
+    public final void rule__StartAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6053:1: ( ( () ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6054:1: ( () )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6054:1: ( () )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6055:1: ()
+            {
+             before(grammarAccess.getStartActionAccess().getStartActionAction_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6056:1: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6058:1: 
+            {
+            }
+
+             after(grammarAccess.getStartActionAccess().getStartActionAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StartAction__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6068:1: rule__StartAction__Group__1 : rule__StartAction__Group__1__Impl rule__StartAction__Group__2 ;
+    public final void rule__StartAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6072:1: ( rule__StartAction__Group__1__Impl rule__StartAction__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6073:2: rule__StartAction__Group__1__Impl rule__StartAction__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group__1__Impl_in_rule__StartAction__Group__112201);
+            rule__StartAction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group__2_in_rule__StartAction__Group__112204);
+            rule__StartAction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__1"
+
+
+    // $ANTLR start "rule__StartAction__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6080:1: rule__StartAction__Group__1__Impl : ( 'StartAction' ) ;
+    public final void rule__StartAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6084:1: ( ( 'StartAction' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6085:1: ( 'StartAction' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6085:1: ( 'StartAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6086:1: 'StartAction'
+            {
+             before(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); 
+            match(input,65,FollowSets000.FOLLOW_65_in_rule__StartAction__Group__1__Impl12232); 
+             after(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StartAction__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6099:1: rule__StartAction__Group__2 : rule__StartAction__Group__2__Impl ;
+    public final void rule__StartAction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6103:1: ( rule__StartAction__Group__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6104:2: rule__StartAction__Group__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group__2__Impl_in_rule__StartAction__Group__212263);
+            rule__StartAction__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__2"
+
+
+    // $ANTLR start "rule__StartAction__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6110:1: rule__StartAction__Group__2__Impl : ( ( rule__StartAction__Group_2__0 )? ) ;
+    public final void rule__StartAction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6114:1: ( ( ( rule__StartAction__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6115:1: ( ( rule__StartAction__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6115:1: ( ( rule__StartAction__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6116:1: ( rule__StartAction__Group_2__0 )?
+            {
+             before(grammarAccess.getStartActionAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6117:1: ( rule__StartAction__Group_2__0 )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
+
+            if ( (LA36_0==43) ) {
+                alt36=1;
+            }
+            switch (alt36) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6117:2: rule__StartAction__Group_2__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group_2__0_in_rule__StartAction__Group__2__Impl12290);
+                    rule__StartAction__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStartActionAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__StartAction__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6133:1: rule__StartAction__Group_2__0 : rule__StartAction__Group_2__0__Impl rule__StartAction__Group_2__1 ;
+    public final void rule__StartAction__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6137:1: ( rule__StartAction__Group_2__0__Impl rule__StartAction__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6138:2: rule__StartAction__Group_2__0__Impl rule__StartAction__Group_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group_2__0__Impl_in_rule__StartAction__Group_2__012327);
+            rule__StartAction__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group_2__1_in_rule__StartAction__Group_2__012330);
+            rule__StartAction__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group_2__0"
+
+
+    // $ANTLR start "rule__StartAction__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6145:1: rule__StartAction__Group_2__0__Impl : ( '[id:' ) ;
+    public final void rule__StartAction__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6149:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6150:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6150:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6151:1: '[id:'
+            {
+             before(grammarAccess.getStartActionAccess().getIdKeyword_2_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__StartAction__Group_2__0__Impl12358); 
+             after(grammarAccess.getStartActionAccess().getIdKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__StartAction__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6164:1: rule__StartAction__Group_2__1 : rule__StartAction__Group_2__1__Impl rule__StartAction__Group_2__2 ;
+    public final void rule__StartAction__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6168:1: ( rule__StartAction__Group_2__1__Impl rule__StartAction__Group_2__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6169:2: rule__StartAction__Group_2__1__Impl rule__StartAction__Group_2__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group_2__1__Impl_in_rule__StartAction__Group_2__112389);
+            rule__StartAction__Group_2__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group_2__2_in_rule__StartAction__Group_2__112392);
+            rule__StartAction__Group_2__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group_2__1"
+
+
+    // $ANTLR start "rule__StartAction__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6176:1: rule__StartAction__Group_2__1__Impl : ( ( rule__StartAction__IdAssignment_2_1 ) ) ;
+    public final void rule__StartAction__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6180:1: ( ( ( rule__StartAction__IdAssignment_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6181:1: ( ( rule__StartAction__IdAssignment_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6181:1: ( ( rule__StartAction__IdAssignment_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6182:1: ( rule__StartAction__IdAssignment_2_1 )
+            {
+             before(grammarAccess.getStartActionAccess().getIdAssignment_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6183:1: ( rule__StartAction__IdAssignment_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6183:2: rule__StartAction__IdAssignment_2_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__IdAssignment_2_1_in_rule__StartAction__Group_2__1__Impl12419);
+            rule__StartAction__IdAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartActionAccess().getIdAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__StartAction__Group_2__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6193:1: rule__StartAction__Group_2__2 : rule__StartAction__Group_2__2__Impl ;
+    public final void rule__StartAction__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6197:1: ( rule__StartAction__Group_2__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6198:2: rule__StartAction__Group_2__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group_2__2__Impl_in_rule__StartAction__Group_2__212449);
+            rule__StartAction__Group_2__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group_2__2"
+
+
+    // $ANTLR start "rule__StartAction__Group_2__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6204:1: rule__StartAction__Group_2__2__Impl : ( ']' ) ;
+    public final void rule__StartAction__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6208:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6209:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6209:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6210:1: ']'
+            {
+             before(grammarAccess.getStartActionAccess().getRightSquareBracketKeyword_2_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__StartAction__Group_2__2__Impl12477); 
+             after(grammarAccess.getStartActionAccess().getRightSquareBracketKeyword_2_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__StopAction__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6229:1: rule__StopAction__Group__0 : rule__StopAction__Group__0__Impl rule__StopAction__Group__1 ;
+    public final void rule__StopAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6233:1: ( rule__StopAction__Group__0__Impl rule__StopAction__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6234:2: rule__StopAction__Group__0__Impl rule__StopAction__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group__0__Impl_in_rule__StopAction__Group__012514);
+            rule__StopAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group__1_in_rule__StopAction__Group__012517);
+            rule__StopAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__0"
+
+
+    // $ANTLR start "rule__StopAction__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6241:1: rule__StopAction__Group__0__Impl : ( () ) ;
+    public final void rule__StopAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6245:1: ( ( () ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6246:1: ( () )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6246:1: ( () )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6247:1: ()
+            {
+             before(grammarAccess.getStopActionAccess().getStopActionAction_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6248:1: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6250:1: 
+            {
+            }
+
+             after(grammarAccess.getStopActionAccess().getStopActionAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StopAction__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6260:1: rule__StopAction__Group__1 : rule__StopAction__Group__1__Impl rule__StopAction__Group__2 ;
+    public final void rule__StopAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6264:1: ( rule__StopAction__Group__1__Impl rule__StopAction__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6265:2: rule__StopAction__Group__1__Impl rule__StopAction__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group__1__Impl_in_rule__StopAction__Group__112575);
+            rule__StopAction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group__2_in_rule__StopAction__Group__112578);
+            rule__StopAction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__1"
+
+
+    // $ANTLR start "rule__StopAction__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6272:1: rule__StopAction__Group__1__Impl : ( 'StopAction' ) ;
+    public final void rule__StopAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6276:1: ( ( 'StopAction' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6277:1: ( 'StopAction' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6277:1: ( 'StopAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6278:1: 'StopAction'
+            {
+             before(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); 
+            match(input,66,FollowSets000.FOLLOW_66_in_rule__StopAction__Group__1__Impl12606); 
+             after(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StopAction__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6291:1: rule__StopAction__Group__2 : rule__StopAction__Group__2__Impl ;
+    public final void rule__StopAction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6295:1: ( rule__StopAction__Group__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6296:2: rule__StopAction__Group__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group__2__Impl_in_rule__StopAction__Group__212637);
+            rule__StopAction__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__2"
+
+
+    // $ANTLR start "rule__StopAction__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6302:1: rule__StopAction__Group__2__Impl : ( ( rule__StopAction__Group_2__0 )? ) ;
+    public final void rule__StopAction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6306:1: ( ( ( rule__StopAction__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6307:1: ( ( rule__StopAction__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6307:1: ( ( rule__StopAction__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6308:1: ( rule__StopAction__Group_2__0 )?
+            {
+             before(grammarAccess.getStopActionAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6309:1: ( rule__StopAction__Group_2__0 )?
+            int alt37=2;
+            int LA37_0 = input.LA(1);
+
+            if ( (LA37_0==43) ) {
+                alt37=1;
+            }
+            switch (alt37) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6309:2: rule__StopAction__Group_2__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group_2__0_in_rule__StopAction__Group__2__Impl12664);
+                    rule__StopAction__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStopActionAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__StopAction__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6325:1: rule__StopAction__Group_2__0 : rule__StopAction__Group_2__0__Impl rule__StopAction__Group_2__1 ;
+    public final void rule__StopAction__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6329:1: ( rule__StopAction__Group_2__0__Impl rule__StopAction__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6330:2: rule__StopAction__Group_2__0__Impl rule__StopAction__Group_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group_2__0__Impl_in_rule__StopAction__Group_2__012701);
+            rule__StopAction__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group_2__1_in_rule__StopAction__Group_2__012704);
+            rule__StopAction__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group_2__0"
+
+
+    // $ANTLR start "rule__StopAction__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6337:1: rule__StopAction__Group_2__0__Impl : ( '[id:' ) ;
+    public final void rule__StopAction__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6341:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6342:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6342:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6343:1: '[id:'
+            {
+             before(grammarAccess.getStopActionAccess().getIdKeyword_2_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__StopAction__Group_2__0__Impl12732); 
+             after(grammarAccess.getStopActionAccess().getIdKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__StopAction__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6356:1: rule__StopAction__Group_2__1 : rule__StopAction__Group_2__1__Impl rule__StopAction__Group_2__2 ;
+    public final void rule__StopAction__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6360:1: ( rule__StopAction__Group_2__1__Impl rule__StopAction__Group_2__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6361:2: rule__StopAction__Group_2__1__Impl rule__StopAction__Group_2__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group_2__1__Impl_in_rule__StopAction__Group_2__112763);
+            rule__StopAction__Group_2__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group_2__2_in_rule__StopAction__Group_2__112766);
+            rule__StopAction__Group_2__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group_2__1"
+
+
+    // $ANTLR start "rule__StopAction__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6368:1: rule__StopAction__Group_2__1__Impl : ( ( rule__StopAction__IdAssignment_2_1 ) ) ;
+    public final void rule__StopAction__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6372:1: ( ( ( rule__StopAction__IdAssignment_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6373:1: ( ( rule__StopAction__IdAssignment_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6373:1: ( ( rule__StopAction__IdAssignment_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6374:1: ( rule__StopAction__IdAssignment_2_1 )
+            {
+             before(grammarAccess.getStopActionAccess().getIdAssignment_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6375:1: ( rule__StopAction__IdAssignment_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6375:2: rule__StopAction__IdAssignment_2_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__IdAssignment_2_1_in_rule__StopAction__Group_2__1__Impl12793);
+            rule__StopAction__IdAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStopActionAccess().getIdAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__StopAction__Group_2__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6385:1: rule__StopAction__Group_2__2 : rule__StopAction__Group_2__2__Impl ;
+    public final void rule__StopAction__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6389:1: ( rule__StopAction__Group_2__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6390:2: rule__StopAction__Group_2__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group_2__2__Impl_in_rule__StopAction__Group_2__212823);
+            rule__StopAction__Group_2__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group_2__2"
+
+
+    // $ANTLR start "rule__StopAction__Group_2__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6396:1: rule__StopAction__Group_2__2__Impl : ( ']' ) ;
+    public final void rule__StopAction__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6400:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6401:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6401:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6402:1: ']'
+            {
+             before(grammarAccess.getStopActionAccess().getRightSquareBracketKeyword_2_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__StopAction__Group_2__2__Impl12851); 
+             after(grammarAccess.getStopActionAccess().getRightSquareBracketKeyword_2_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6421:1: rule__LoopAction__Group__0 : rule__LoopAction__Group__0__Impl rule__LoopAction__Group__1 ;
+    public final void rule__LoopAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6425:1: ( rule__LoopAction__Group__0__Impl rule__LoopAction__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6426:2: rule__LoopAction__Group__0__Impl rule__LoopAction__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__0__Impl_in_rule__LoopAction__Group__012888);
+            rule__LoopAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__1_in_rule__LoopAction__Group__012891);
+            rule__LoopAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__0"
+
+
+    // $ANTLR start "rule__LoopAction__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6433:1: rule__LoopAction__Group__0__Impl : ( ( 'LoopAction' )? ) ;
+    public final void rule__LoopAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6437:1: ( ( ( 'LoopAction' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6438:1: ( ( 'LoopAction' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6438:1: ( ( 'LoopAction' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6439:1: ( 'LoopAction' )?
+            {
+             before(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6440:1: ( 'LoopAction' )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==67) ) {
+                alt38=1;
+            }
+            switch (alt38) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6441:2: 'LoopAction'
+                    {
+                    match(input,67,FollowSets000.FOLLOW_67_in_rule__LoopAction__Group__0__Impl12920); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6452:1: rule__LoopAction__Group__1 : rule__LoopAction__Group__1__Impl rule__LoopAction__Group__2 ;
+    public final void rule__LoopAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6456:1: ( rule__LoopAction__Group__1__Impl rule__LoopAction__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6457:2: rule__LoopAction__Group__1__Impl rule__LoopAction__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__1__Impl_in_rule__LoopAction__Group__112953);
+            rule__LoopAction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__2_in_rule__LoopAction__Group__112956);
+            rule__LoopAction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__1"
+
+
+    // $ANTLR start "rule__LoopAction__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6464:1: rule__LoopAction__Group__1__Impl : ( ( rule__LoopAction__Group_1__0 )? ) ;
+    public final void rule__LoopAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6468:1: ( ( ( rule__LoopAction__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6469:1: ( ( rule__LoopAction__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6469:1: ( ( rule__LoopAction__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6470:1: ( rule__LoopAction__Group_1__0 )?
+            {
+             before(grammarAccess.getLoopActionAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6471:1: ( rule__LoopAction__Group_1__0 )?
+            int alt39=2;
+            int LA39_0 = input.LA(1);
+
+            if ( (LA39_0==43) ) {
+                alt39=1;
+            }
+            switch (alt39) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6471:2: rule__LoopAction__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group_1__0_in_rule__LoopAction__Group__1__Impl12983);
+                    rule__LoopAction__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6481:1: rule__LoopAction__Group__2 : rule__LoopAction__Group__2__Impl rule__LoopAction__Group__3 ;
+    public final void rule__LoopAction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6485:1: ( rule__LoopAction__Group__2__Impl rule__LoopAction__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6486:2: rule__LoopAction__Group__2__Impl rule__LoopAction__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__2__Impl_in_rule__LoopAction__Group__213014);
+            rule__LoopAction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__3_in_rule__LoopAction__Group__213017);
+            rule__LoopAction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__2"
+
+
+    // $ANTLR start "rule__LoopAction__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6493:1: rule__LoopAction__Group__2__Impl : ( 'repeat' ) ;
+    public final void rule__LoopAction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6497:1: ( ( 'repeat' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6498:1: ( 'repeat' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6498:1: ( 'repeat' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6499:1: 'repeat'
+            {
+             before(grammarAccess.getLoopActionAccess().getRepeatKeyword_2()); 
+            match(input,68,FollowSets000.FOLLOW_68_in_rule__LoopAction__Group__2__Impl13045); 
+             after(grammarAccess.getLoopActionAccess().getRepeatKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6512:1: rule__LoopAction__Group__3 : rule__LoopAction__Group__3__Impl rule__LoopAction__Group__4 ;
+    public final void rule__LoopAction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6516:1: ( rule__LoopAction__Group__3__Impl rule__LoopAction__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6517:2: rule__LoopAction__Group__3__Impl rule__LoopAction__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__3__Impl_in_rule__LoopAction__Group__313076);
+            rule__LoopAction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__4_in_rule__LoopAction__Group__313079);
+            rule__LoopAction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__3"
+
+
+    // $ANTLR start "rule__LoopAction__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6524:1: rule__LoopAction__Group__3__Impl : ( 'counter' ) ;
+    public final void rule__LoopAction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6528:1: ( ( 'counter' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6529:1: ( 'counter' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6529:1: ( 'counter' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6530:1: 'counter'
+            {
+             before(grammarAccess.getLoopActionAccess().getCounterKeyword_3()); 
+            match(input,69,FollowSets000.FOLLOW_69_in_rule__LoopAction__Group__3__Impl13107); 
+             after(grammarAccess.getLoopActionAccess().getCounterKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6543:1: rule__LoopAction__Group__4 : rule__LoopAction__Group__4__Impl rule__LoopAction__Group__5 ;
+    public final void rule__LoopAction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6547:1: ( rule__LoopAction__Group__4__Impl rule__LoopAction__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6548:2: rule__LoopAction__Group__4__Impl rule__LoopAction__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__4__Impl_in_rule__LoopAction__Group__413138);
+            rule__LoopAction__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__5_in_rule__LoopAction__Group__413141);
+            rule__LoopAction__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__4"
+
+
+    // $ANTLR start "rule__LoopAction__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6555:1: rule__LoopAction__Group__4__Impl : ( '=' ) ;
+    public final void rule__LoopAction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6559:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6560:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6560:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6561:1: '='
+            {
+             before(grammarAccess.getLoopActionAccess().getEqualsSignKeyword_4()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__LoopAction__Group__4__Impl13169); 
+             after(grammarAccess.getLoopActionAccess().getEqualsSignKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6574:1: rule__LoopAction__Group__5 : rule__LoopAction__Group__5__Impl rule__LoopAction__Group__6 ;
+    public final void rule__LoopAction__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6578:1: ( rule__LoopAction__Group__5__Impl rule__LoopAction__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6579:2: rule__LoopAction__Group__5__Impl rule__LoopAction__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__5__Impl_in_rule__LoopAction__Group__513200);
+            rule__LoopAction__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__6_in_rule__LoopAction__Group__513203);
+            rule__LoopAction__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__5"
+
+
+    // $ANTLR start "rule__LoopAction__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6586:1: rule__LoopAction__Group__5__Impl : ( ( rule__LoopAction__CounterAssignment_5 ) ) ;
+    public final void rule__LoopAction__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6590:1: ( ( ( rule__LoopAction__CounterAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6591:1: ( ( rule__LoopAction__CounterAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6591:1: ( ( rule__LoopAction__CounterAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6592:1: ( rule__LoopAction__CounterAssignment_5 )
+            {
+             before(grammarAccess.getLoopActionAccess().getCounterAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6593:1: ( rule__LoopAction__CounterAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6593:2: rule__LoopAction__CounterAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__CounterAssignment_5_in_rule__LoopAction__Group__5__Impl13230);
+            rule__LoopAction__CounterAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getCounterAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__5__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6603:1: rule__LoopAction__Group__6 : rule__LoopAction__Group__6__Impl rule__LoopAction__Group__7 ;
+    public final void rule__LoopAction__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6607:1: ( rule__LoopAction__Group__6__Impl rule__LoopAction__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6608:2: rule__LoopAction__Group__6__Impl rule__LoopAction__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__6__Impl_in_rule__LoopAction__Group__613260);
+            rule__LoopAction__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__7_in_rule__LoopAction__Group__613263);
+            rule__LoopAction__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__6"
+
+
+    // $ANTLR start "rule__LoopAction__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6615:1: rule__LoopAction__Group__6__Impl : ( '(' ) ;
+    public final void rule__LoopAction__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6619:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6620:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6620:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6621:1: '('
+            {
+             before(grammarAccess.getLoopActionAccess().getLeftParenthesisKeyword_6()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__LoopAction__Group__6__Impl13291); 
+             after(grammarAccess.getLoopActionAccess().getLeftParenthesisKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__6__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6634:1: rule__LoopAction__Group__7 : rule__LoopAction__Group__7__Impl rule__LoopAction__Group__8 ;
+    public final void rule__LoopAction__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6638:1: ( rule__LoopAction__Group__7__Impl rule__LoopAction__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6639:2: rule__LoopAction__Group__7__Impl rule__LoopAction__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__7__Impl_in_rule__LoopAction__Group__713322);
+            rule__LoopAction__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__8_in_rule__LoopAction__Group__713325);
+            rule__LoopAction__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__7"
+
+
+    // $ANTLR start "rule__LoopAction__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6646:1: rule__LoopAction__Group__7__Impl : ( ( rule__LoopAction__BodyAssignment_7 ) ) ;
+    public final void rule__LoopAction__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6650:1: ( ( ( rule__LoopAction__BodyAssignment_7 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6651:1: ( ( rule__LoopAction__BodyAssignment_7 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6651:1: ( ( rule__LoopAction__BodyAssignment_7 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6652:1: ( rule__LoopAction__BodyAssignment_7 )
+            {
+             before(grammarAccess.getLoopActionAccess().getBodyAssignment_7()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6653:1: ( rule__LoopAction__BodyAssignment_7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6653:2: rule__LoopAction__BodyAssignment_7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__BodyAssignment_7_in_rule__LoopAction__Group__7__Impl13352);
+            rule__LoopAction__BodyAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getBodyAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__7__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6663:1: rule__LoopAction__Group__8 : rule__LoopAction__Group__8__Impl ;
+    public final void rule__LoopAction__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6667:1: ( rule__LoopAction__Group__8__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6668:2: rule__LoopAction__Group__8__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__8__Impl_in_rule__LoopAction__Group__813382);
+            rule__LoopAction__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__8"
+
+
+    // $ANTLR start "rule__LoopAction__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6674:1: rule__LoopAction__Group__8__Impl : ( ')' ) ;
+    public final void rule__LoopAction__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6678:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6679:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6679:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6680:1: ')'
+            {
+             before(grammarAccess.getLoopActionAccess().getRightParenthesisKeyword_8()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__LoopAction__Group__8__Impl13410); 
+             after(grammarAccess.getLoopActionAccess().getRightParenthesisKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__8__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6711:1: rule__LoopAction__Group_1__0 : rule__LoopAction__Group_1__0__Impl rule__LoopAction__Group_1__1 ;
+    public final void rule__LoopAction__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6715:1: ( rule__LoopAction__Group_1__0__Impl rule__LoopAction__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6716:2: rule__LoopAction__Group_1__0__Impl rule__LoopAction__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group_1__0__Impl_in_rule__LoopAction__Group_1__013459);
+            rule__LoopAction__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group_1__1_in_rule__LoopAction__Group_1__013462);
+            rule__LoopAction__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group_1__0"
+
+
+    // $ANTLR start "rule__LoopAction__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6723:1: rule__LoopAction__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__LoopAction__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6727:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6728:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6728:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6729:1: '[id:'
+            {
+             before(grammarAccess.getLoopActionAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__LoopAction__Group_1__0__Impl13490); 
+             after(grammarAccess.getLoopActionAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6742:1: rule__LoopAction__Group_1__1 : rule__LoopAction__Group_1__1__Impl rule__LoopAction__Group_1__2 ;
+    public final void rule__LoopAction__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6746:1: ( rule__LoopAction__Group_1__1__Impl rule__LoopAction__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6747:2: rule__LoopAction__Group_1__1__Impl rule__LoopAction__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group_1__1__Impl_in_rule__LoopAction__Group_1__113521);
+            rule__LoopAction__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group_1__2_in_rule__LoopAction__Group_1__113524);
+            rule__LoopAction__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group_1__1"
+
+
+    // $ANTLR start "rule__LoopAction__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6754:1: rule__LoopAction__Group_1__1__Impl : ( ( rule__LoopAction__IdAssignment_1_1 ) ) ;
+    public final void rule__LoopAction__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6758:1: ( ( ( rule__LoopAction__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6759:1: ( ( rule__LoopAction__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6759:1: ( ( rule__LoopAction__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6760:1: ( rule__LoopAction__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getLoopActionAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6761:1: ( rule__LoopAction__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6761:2: rule__LoopAction__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__IdAssignment_1_1_in_rule__LoopAction__Group_1__1__Impl13551);
+            rule__LoopAction__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6771:1: rule__LoopAction__Group_1__2 : rule__LoopAction__Group_1__2__Impl ;
+    public final void rule__LoopAction__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6775:1: ( rule__LoopAction__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6776:2: rule__LoopAction__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group_1__2__Impl_in_rule__LoopAction__Group_1__213581);
+            rule__LoopAction__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group_1__2"
+
+
+    // $ANTLR start "rule__LoopAction__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6782:1: rule__LoopAction__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__LoopAction__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6786:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6787:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6787:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6788:1: ']'
+            {
+             before(grammarAccess.getLoopActionAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__LoopAction__Group_1__2__Impl13609); 
+             after(grammarAccess.getLoopActionAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6807:1: rule__BranchAction__Group__0 : rule__BranchAction__Group__0__Impl rule__BranchAction__Group__1 ;
+    public final void rule__BranchAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6811:1: ( rule__BranchAction__Group__0__Impl rule__BranchAction__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6812:2: rule__BranchAction__Group__0__Impl rule__BranchAction__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__0__Impl_in_rule__BranchAction__Group__013646);
+            rule__BranchAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__1_in_rule__BranchAction__Group__013649);
+            rule__BranchAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__0"
+
+
+    // $ANTLR start "rule__BranchAction__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6819:1: rule__BranchAction__Group__0__Impl : ( ( 'BranchAction' )? ) ;
+    public final void rule__BranchAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6823:1: ( ( ( 'BranchAction' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6824:1: ( ( 'BranchAction' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6824:1: ( ( 'BranchAction' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6825:1: ( 'BranchAction' )?
+            {
+             before(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6826:1: ( 'BranchAction' )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( (LA40_0==70) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6827:2: 'BranchAction'
+                    {
+                    match(input,70,FollowSets000.FOLLOW_70_in_rule__BranchAction__Group__0__Impl13678); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6838:1: rule__BranchAction__Group__1 : rule__BranchAction__Group__1__Impl rule__BranchAction__Group__2 ;
+    public final void rule__BranchAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6842:1: ( rule__BranchAction__Group__1__Impl rule__BranchAction__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6843:2: rule__BranchAction__Group__1__Impl rule__BranchAction__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__1__Impl_in_rule__BranchAction__Group__113711);
+            rule__BranchAction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__2_in_rule__BranchAction__Group__113714);
+            rule__BranchAction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__1"
+
+
+    // $ANTLR start "rule__BranchAction__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6850:1: rule__BranchAction__Group__1__Impl : ( ( rule__BranchAction__Group_1__0 )? ) ;
+    public final void rule__BranchAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6854:1: ( ( ( rule__BranchAction__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6855:1: ( ( rule__BranchAction__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6855:1: ( ( rule__BranchAction__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6856:1: ( rule__BranchAction__Group_1__0 )?
+            {
+             before(grammarAccess.getBranchActionAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6857:1: ( rule__BranchAction__Group_1__0 )?
+            int alt41=2;
+            int LA41_0 = input.LA(1);
+
+            if ( (LA41_0==43) ) {
+                alt41=1;
+            }
+            switch (alt41) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6857:2: rule__BranchAction__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group_1__0_in_rule__BranchAction__Group__1__Impl13741);
+                    rule__BranchAction__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6867:1: rule__BranchAction__Group__2 : rule__BranchAction__Group__2__Impl rule__BranchAction__Group__3 ;
+    public final void rule__BranchAction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6871:1: ( rule__BranchAction__Group__2__Impl rule__BranchAction__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6872:2: rule__BranchAction__Group__2__Impl rule__BranchAction__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__2__Impl_in_rule__BranchAction__Group__213772);
+            rule__BranchAction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__3_in_rule__BranchAction__Group__213775);
+            rule__BranchAction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__2"
+
+
+    // $ANTLR start "rule__BranchAction__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6879:1: rule__BranchAction__Group__2__Impl : ( 'if' ) ;
+    public final void rule__BranchAction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6883:1: ( ( 'if' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6884:1: ( 'if' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6884:1: ( 'if' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6885:1: 'if'
+            {
+             before(grammarAccess.getBranchActionAccess().getIfKeyword_2()); 
+            match(input,71,FollowSets000.FOLLOW_71_in_rule__BranchAction__Group__2__Impl13803); 
+             after(grammarAccess.getBranchActionAccess().getIfKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6898:1: rule__BranchAction__Group__3 : rule__BranchAction__Group__3__Impl rule__BranchAction__Group__4 ;
+    public final void rule__BranchAction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6902:1: ( rule__BranchAction__Group__3__Impl rule__BranchAction__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6903:2: rule__BranchAction__Group__3__Impl rule__BranchAction__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__3__Impl_in_rule__BranchAction__Group__313834);
+            rule__BranchAction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__4_in_rule__BranchAction__Group__313837);
+            rule__BranchAction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__3"
+
+
+    // $ANTLR start "rule__BranchAction__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6910:1: rule__BranchAction__Group__3__Impl : ( '(' ) ;
+    public final void rule__BranchAction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6914:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6915:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6915:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6916:1: '('
+            {
+             before(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_3()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__BranchAction__Group__3__Impl13865); 
+             after(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6929:1: rule__BranchAction__Group__4 : rule__BranchAction__Group__4__Impl rule__BranchAction__Group__5 ;
+    public final void rule__BranchAction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6933:1: ( rule__BranchAction__Group__4__Impl rule__BranchAction__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6934:2: rule__BranchAction__Group__4__Impl rule__BranchAction__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__4__Impl_in_rule__BranchAction__Group__413896);
+            rule__BranchAction__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__5_in_rule__BranchAction__Group__413899);
+            rule__BranchAction__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__4"
+
+
+    // $ANTLR start "rule__BranchAction__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6941:1: rule__BranchAction__Group__4__Impl : ( 'context' ) ;
+    public final void rule__BranchAction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6945:1: ( ( 'context' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6946:1: ( 'context' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6946:1: ( 'context' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6947:1: 'context'
+            {
+             before(grammarAccess.getBranchActionAccess().getContextKeyword_4()); 
+            match(input,72,FollowSets000.FOLLOW_72_in_rule__BranchAction__Group__4__Impl13927); 
+             after(grammarAccess.getBranchActionAccess().getContextKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6960:1: rule__BranchAction__Group__5 : rule__BranchAction__Group__5__Impl rule__BranchAction__Group__6 ;
+    public final void rule__BranchAction__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6964:1: ( rule__BranchAction__Group__5__Impl rule__BranchAction__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6965:2: rule__BranchAction__Group__5__Impl rule__BranchAction__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__5__Impl_in_rule__BranchAction__Group__513958);
+            rule__BranchAction__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__6_in_rule__BranchAction__Group__513961);
+            rule__BranchAction__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__5"
+
+
+    // $ANTLR start "rule__BranchAction__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6972:1: rule__BranchAction__Group__5__Impl : ( '=' ) ;
+    public final void rule__BranchAction__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6976:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6977:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6977:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6978:1: '='
+            {
+             before(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_5()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__BranchAction__Group__5__Impl13989); 
+             after(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__5__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6991:1: rule__BranchAction__Group__6 : rule__BranchAction__Group__6__Impl rule__BranchAction__Group__7 ;
+    public final void rule__BranchAction__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6995:1: ( rule__BranchAction__Group__6__Impl rule__BranchAction__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:6996:2: rule__BranchAction__Group__6__Impl rule__BranchAction__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__6__Impl_in_rule__BranchAction__Group__614020);
+            rule__BranchAction__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__7_in_rule__BranchAction__Group__614023);
+            rule__BranchAction__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__6"
+
+
+    // $ANTLR start "rule__BranchAction__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7003:1: rule__BranchAction__Group__6__Impl : ( ( rule__BranchAction__ContextAssignment_6 ) ) ;
+    public final void rule__BranchAction__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7007:1: ( ( ( rule__BranchAction__ContextAssignment_6 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7008:1: ( ( rule__BranchAction__ContextAssignment_6 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7008:1: ( ( rule__BranchAction__ContextAssignment_6 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7009:1: ( rule__BranchAction__ContextAssignment_6 )
+            {
+             before(grammarAccess.getBranchActionAccess().getContextAssignment_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7010:1: ( rule__BranchAction__ContextAssignment_6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7010:2: rule__BranchAction__ContextAssignment_6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__ContextAssignment_6_in_rule__BranchAction__Group__6__Impl14050);
+            rule__BranchAction__ContextAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getContextAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__6__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7020:1: rule__BranchAction__Group__7 : rule__BranchAction__Group__7__Impl rule__BranchAction__Group__8 ;
+    public final void rule__BranchAction__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7024:1: ( rule__BranchAction__Group__7__Impl rule__BranchAction__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7025:2: rule__BranchAction__Group__7__Impl rule__BranchAction__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__7__Impl_in_rule__BranchAction__Group__714080);
+            rule__BranchAction__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__8_in_rule__BranchAction__Group__714083);
+            rule__BranchAction__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__7"
+
+
+    // $ANTLR start "rule__BranchAction__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7032:1: rule__BranchAction__Group__7__Impl : ( ',' ) ;
+    public final void rule__BranchAction__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7036:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7037:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7037:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7038:1: ','
+            {
+             before(grammarAccess.getBranchActionAccess().getCommaKeyword_7()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__BranchAction__Group__7__Impl14111); 
+             after(grammarAccess.getBranchActionAccess().getCommaKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__7__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7051:1: rule__BranchAction__Group__8 : rule__BranchAction__Group__8__Impl rule__BranchAction__Group__9 ;
+    public final void rule__BranchAction__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7055:1: ( rule__BranchAction__Group__8__Impl rule__BranchAction__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7056:2: rule__BranchAction__Group__8__Impl rule__BranchAction__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__8__Impl_in_rule__BranchAction__Group__814142);
+            rule__BranchAction__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__9_in_rule__BranchAction__Group__814145);
+            rule__BranchAction__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__8"
+
+
+    // $ANTLR start "rule__BranchAction__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7063:1: rule__BranchAction__Group__8__Impl : ( 'condition' ) ;
+    public final void rule__BranchAction__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7067:1: ( ( 'condition' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7068:1: ( 'condition' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7068:1: ( 'condition' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7069:1: 'condition'
+            {
+             before(grammarAccess.getBranchActionAccess().getConditionKeyword_8()); 
+            match(input,73,FollowSets000.FOLLOW_73_in_rule__BranchAction__Group__8__Impl14173); 
+             after(grammarAccess.getBranchActionAccess().getConditionKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__8__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7082:1: rule__BranchAction__Group__9 : rule__BranchAction__Group__9__Impl rule__BranchAction__Group__10 ;
+    public final void rule__BranchAction__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7086:1: ( rule__BranchAction__Group__9__Impl rule__BranchAction__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7087:2: rule__BranchAction__Group__9__Impl rule__BranchAction__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__9__Impl_in_rule__BranchAction__Group__914204);
+            rule__BranchAction__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__10_in_rule__BranchAction__Group__914207);
+            rule__BranchAction__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__9"
+
+
+    // $ANTLR start "rule__BranchAction__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7094:1: rule__BranchAction__Group__9__Impl : ( '=' ) ;
+    public final void rule__BranchAction__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7098:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7099:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7099:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7100:1: '='
+            {
+             before(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_9()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__BranchAction__Group__9__Impl14235); 
+             after(grammarAccess.getBranchActionAccess().getEqualsSignKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__9__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7113:1: rule__BranchAction__Group__10 : rule__BranchAction__Group__10__Impl rule__BranchAction__Group__11 ;
+    public final void rule__BranchAction__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7117:1: ( rule__BranchAction__Group__10__Impl rule__BranchAction__Group__11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7118:2: rule__BranchAction__Group__10__Impl rule__BranchAction__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__10__Impl_in_rule__BranchAction__Group__1014266);
+            rule__BranchAction__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__11_in_rule__BranchAction__Group__1014269);
+            rule__BranchAction__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__10"
+
+
+    // $ANTLR start "rule__BranchAction__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7125:1: rule__BranchAction__Group__10__Impl : ( ( rule__BranchAction__ConditionAssignment_10 ) ) ;
+    public final void rule__BranchAction__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7129:1: ( ( ( rule__BranchAction__ConditionAssignment_10 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7130:1: ( ( rule__BranchAction__ConditionAssignment_10 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7130:1: ( ( rule__BranchAction__ConditionAssignment_10 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7131:1: ( rule__BranchAction__ConditionAssignment_10 )
+            {
+             before(grammarAccess.getBranchActionAccess().getConditionAssignment_10()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7132:1: ( rule__BranchAction__ConditionAssignment_10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7132:2: rule__BranchAction__ConditionAssignment_10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__ConditionAssignment_10_in_rule__BranchAction__Group__10__Impl14296);
+            rule__BranchAction__ConditionAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getConditionAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__10__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7142:1: rule__BranchAction__Group__11 : rule__BranchAction__Group__11__Impl rule__BranchAction__Group__12 ;
+    public final void rule__BranchAction__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7146:1: ( rule__BranchAction__Group__11__Impl rule__BranchAction__Group__12 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7147:2: rule__BranchAction__Group__11__Impl rule__BranchAction__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__11__Impl_in_rule__BranchAction__Group__1114326);
+            rule__BranchAction__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__12_in_rule__BranchAction__Group__1114329);
+            rule__BranchAction__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__11"
+
+
+    // $ANTLR start "rule__BranchAction__Group__11__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7154:1: rule__BranchAction__Group__11__Impl : ( ')' ) ;
+    public final void rule__BranchAction__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7158:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7159:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7159:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7160:1: ')'
+            {
+             before(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_11()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__BranchAction__Group__11__Impl14357); 
+             after(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__11__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__12"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7173:1: rule__BranchAction__Group__12 : rule__BranchAction__Group__12__Impl rule__BranchAction__Group__13 ;
+    public final void rule__BranchAction__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7177:1: ( rule__BranchAction__Group__12__Impl rule__BranchAction__Group__13 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7178:2: rule__BranchAction__Group__12__Impl rule__BranchAction__Group__13
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__12__Impl_in_rule__BranchAction__Group__1214388);
+            rule__BranchAction__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__13_in_rule__BranchAction__Group__1214391);
+            rule__BranchAction__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__12"
+
+
+    // $ANTLR start "rule__BranchAction__Group__12__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7185:1: rule__BranchAction__Group__12__Impl : ( 'then' ) ;
+    public final void rule__BranchAction__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7189:1: ( ( 'then' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7190:1: ( 'then' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7190:1: ( 'then' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7191:1: 'then'
+            {
+             before(grammarAccess.getBranchActionAccess().getThenKeyword_12()); 
+            match(input,74,FollowSets000.FOLLOW_74_in_rule__BranchAction__Group__12__Impl14419); 
+             after(grammarAccess.getBranchActionAccess().getThenKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__12__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__13"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7204:1: rule__BranchAction__Group__13 : rule__BranchAction__Group__13__Impl rule__BranchAction__Group__14 ;
+    public final void rule__BranchAction__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7208:1: ( rule__BranchAction__Group__13__Impl rule__BranchAction__Group__14 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7209:2: rule__BranchAction__Group__13__Impl rule__BranchAction__Group__14
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__13__Impl_in_rule__BranchAction__Group__1314450);
+            rule__BranchAction__Group__13__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__14_in_rule__BranchAction__Group__1314453);
+            rule__BranchAction__Group__14();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__13"
+
+
+    // $ANTLR start "rule__BranchAction__Group__13__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7216:1: rule__BranchAction__Group__13__Impl : ( '(' ) ;
+    public final void rule__BranchAction__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7220:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7221:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7221:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7222:1: '('
+            {
+             before(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_13()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__BranchAction__Group__13__Impl14481); 
+             after(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__13__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__14"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7235:1: rule__BranchAction__Group__14 : rule__BranchAction__Group__14__Impl rule__BranchAction__Group__15 ;
+    public final void rule__BranchAction__Group__14() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7239:1: ( rule__BranchAction__Group__14__Impl rule__BranchAction__Group__15 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7240:2: rule__BranchAction__Group__14__Impl rule__BranchAction__Group__15
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__14__Impl_in_rule__BranchAction__Group__1414512);
+            rule__BranchAction__Group__14__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__15_in_rule__BranchAction__Group__1414515);
+            rule__BranchAction__Group__15();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__14"
+
+
+    // $ANTLR start "rule__BranchAction__Group__14__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7247:1: rule__BranchAction__Group__14__Impl : ( ( rule__BranchAction__ConditionTrueBranchAssignment_14 ) ) ;
+    public final void rule__BranchAction__Group__14__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7251:1: ( ( ( rule__BranchAction__ConditionTrueBranchAssignment_14 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7252:1: ( ( rule__BranchAction__ConditionTrueBranchAssignment_14 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7252:1: ( ( rule__BranchAction__ConditionTrueBranchAssignment_14 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7253:1: ( rule__BranchAction__ConditionTrueBranchAssignment_14 )
+            {
+             before(grammarAccess.getBranchActionAccess().getConditionTrueBranchAssignment_14()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7254:1: ( rule__BranchAction__ConditionTrueBranchAssignment_14 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7254:2: rule__BranchAction__ConditionTrueBranchAssignment_14
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__ConditionTrueBranchAssignment_14_in_rule__BranchAction__Group__14__Impl14542);
+            rule__BranchAction__ConditionTrueBranchAssignment_14();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getConditionTrueBranchAssignment_14()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__14__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__15"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7264:1: rule__BranchAction__Group__15 : rule__BranchAction__Group__15__Impl rule__BranchAction__Group__16 ;
+    public final void rule__BranchAction__Group__15() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7268:1: ( rule__BranchAction__Group__15__Impl rule__BranchAction__Group__16 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7269:2: rule__BranchAction__Group__15__Impl rule__BranchAction__Group__16
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__15__Impl_in_rule__BranchAction__Group__1514572);
+            rule__BranchAction__Group__15__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__16_in_rule__BranchAction__Group__1514575);
+            rule__BranchAction__Group__16();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__15"
+
+
+    // $ANTLR start "rule__BranchAction__Group__15__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7276:1: rule__BranchAction__Group__15__Impl : ( ')' ) ;
+    public final void rule__BranchAction__Group__15__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7280:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7281:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7281:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7282:1: ')'
+            {
+             before(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_15()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__BranchAction__Group__15__Impl14603); 
+             after(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_15()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__15__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__16"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7295:1: rule__BranchAction__Group__16 : rule__BranchAction__Group__16__Impl rule__BranchAction__Group__17 ;
+    public final void rule__BranchAction__Group__16() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7299:1: ( rule__BranchAction__Group__16__Impl rule__BranchAction__Group__17 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7300:2: rule__BranchAction__Group__16__Impl rule__BranchAction__Group__17
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__16__Impl_in_rule__BranchAction__Group__1614634);
+            rule__BranchAction__Group__16__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__17_in_rule__BranchAction__Group__1614637);
+            rule__BranchAction__Group__17();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__16"
+
+
+    // $ANTLR start "rule__BranchAction__Group__16__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7307:1: rule__BranchAction__Group__16__Impl : ( 'else' ) ;
+    public final void rule__BranchAction__Group__16__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7311:1: ( ( 'else' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7312:1: ( 'else' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7312:1: ( 'else' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7313:1: 'else'
+            {
+             before(grammarAccess.getBranchActionAccess().getElseKeyword_16()); 
+            match(input,75,FollowSets000.FOLLOW_75_in_rule__BranchAction__Group__16__Impl14665); 
+             after(grammarAccess.getBranchActionAccess().getElseKeyword_16()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__16__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__17"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7326:1: rule__BranchAction__Group__17 : rule__BranchAction__Group__17__Impl rule__BranchAction__Group__18 ;
+    public final void rule__BranchAction__Group__17() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7330:1: ( rule__BranchAction__Group__17__Impl rule__BranchAction__Group__18 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7331:2: rule__BranchAction__Group__17__Impl rule__BranchAction__Group__18
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__17__Impl_in_rule__BranchAction__Group__1714696);
+            rule__BranchAction__Group__17__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__18_in_rule__BranchAction__Group__1714699);
+            rule__BranchAction__Group__18();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__17"
+
+
+    // $ANTLR start "rule__BranchAction__Group__17__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7338:1: rule__BranchAction__Group__17__Impl : ( '(' ) ;
+    public final void rule__BranchAction__Group__17__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7342:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7343:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7343:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7344:1: '('
+            {
+             before(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_17()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__BranchAction__Group__17__Impl14727); 
+             after(grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_17()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__17__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__18"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7357:1: rule__BranchAction__Group__18 : rule__BranchAction__Group__18__Impl rule__BranchAction__Group__19 ;
+    public final void rule__BranchAction__Group__18() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7361:1: ( rule__BranchAction__Group__18__Impl rule__BranchAction__Group__19 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7362:2: rule__BranchAction__Group__18__Impl rule__BranchAction__Group__19
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__18__Impl_in_rule__BranchAction__Group__1814758);
+            rule__BranchAction__Group__18__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__19_in_rule__BranchAction__Group__1814761);
+            rule__BranchAction__Group__19();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__18"
+
+
+    // $ANTLR start "rule__BranchAction__Group__18__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7369:1: rule__BranchAction__Group__18__Impl : ( ( rule__BranchAction__ConditionFalseBranchAssignment_18 ) ) ;
+    public final void rule__BranchAction__Group__18__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7373:1: ( ( ( rule__BranchAction__ConditionFalseBranchAssignment_18 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7374:1: ( ( rule__BranchAction__ConditionFalseBranchAssignment_18 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7374:1: ( ( rule__BranchAction__ConditionFalseBranchAssignment_18 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7375:1: ( rule__BranchAction__ConditionFalseBranchAssignment_18 )
+            {
+             before(grammarAccess.getBranchActionAccess().getConditionFalseBranchAssignment_18()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7376:1: ( rule__BranchAction__ConditionFalseBranchAssignment_18 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7376:2: rule__BranchAction__ConditionFalseBranchAssignment_18
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__ConditionFalseBranchAssignment_18_in_rule__BranchAction__Group__18__Impl14788);
+            rule__BranchAction__ConditionFalseBranchAssignment_18();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getConditionFalseBranchAssignment_18()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__18__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__19"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7386:1: rule__BranchAction__Group__19 : rule__BranchAction__Group__19__Impl ;
+    public final void rule__BranchAction__Group__19() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7390:1: ( rule__BranchAction__Group__19__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7391:2: rule__BranchAction__Group__19__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__19__Impl_in_rule__BranchAction__Group__1914818);
+            rule__BranchAction__Group__19__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__19"
+
+
+    // $ANTLR start "rule__BranchAction__Group__19__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7397:1: rule__BranchAction__Group__19__Impl : ( ')' ) ;
+    public final void rule__BranchAction__Group__19__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7401:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7402:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7402:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7403:1: ')'
+            {
+             before(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_19()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__BranchAction__Group__19__Impl14846); 
+             after(grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_19()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__19__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7456:1: rule__BranchAction__Group_1__0 : rule__BranchAction__Group_1__0__Impl rule__BranchAction__Group_1__1 ;
+    public final void rule__BranchAction__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7460:1: ( rule__BranchAction__Group_1__0__Impl rule__BranchAction__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7461:2: rule__BranchAction__Group_1__0__Impl rule__BranchAction__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group_1__0__Impl_in_rule__BranchAction__Group_1__014917);
+            rule__BranchAction__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group_1__1_in_rule__BranchAction__Group_1__014920);
+            rule__BranchAction__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_1__0"
+
+
+    // $ANTLR start "rule__BranchAction__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7468:1: rule__BranchAction__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__BranchAction__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7472:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7473:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7473:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7474:1: '[id:'
+            {
+             before(grammarAccess.getBranchActionAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__BranchAction__Group_1__0__Impl14948); 
+             after(grammarAccess.getBranchActionAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7487:1: rule__BranchAction__Group_1__1 : rule__BranchAction__Group_1__1__Impl rule__BranchAction__Group_1__2 ;
+    public final void rule__BranchAction__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7491:1: ( rule__BranchAction__Group_1__1__Impl rule__BranchAction__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7492:2: rule__BranchAction__Group_1__1__Impl rule__BranchAction__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group_1__1__Impl_in_rule__BranchAction__Group_1__114979);
+            rule__BranchAction__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group_1__2_in_rule__BranchAction__Group_1__114982);
+            rule__BranchAction__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_1__1"
+
+
+    // $ANTLR start "rule__BranchAction__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7499:1: rule__BranchAction__Group_1__1__Impl : ( ( rule__BranchAction__IdAssignment_1_1 ) ) ;
+    public final void rule__BranchAction__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7503:1: ( ( ( rule__BranchAction__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7504:1: ( ( rule__BranchAction__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7504:1: ( ( rule__BranchAction__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7505:1: ( rule__BranchAction__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getBranchActionAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7506:1: ( rule__BranchAction__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7506:2: rule__BranchAction__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__IdAssignment_1_1_in_rule__BranchAction__Group_1__1__Impl15009);
+            rule__BranchAction__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7516:1: rule__BranchAction__Group_1__2 : rule__BranchAction__Group_1__2__Impl ;
+    public final void rule__BranchAction__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7520:1: ( rule__BranchAction__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7521:2: rule__BranchAction__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group_1__2__Impl_in_rule__BranchAction__Group_1__215039);
+            rule__BranchAction__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_1__2"
+
+
+    // $ANTLR start "rule__BranchAction__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7527:1: rule__BranchAction__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__BranchAction__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7531:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7532:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7532:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7533:1: ']'
+            {
+             before(grammarAccess.getBranchActionAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__BranchAction__Group_1__2__Impl15067); 
+             after(grammarAccess.getBranchActionAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7552:1: rule__ActionReference__Group__0 : rule__ActionReference__Group__0__Impl rule__ActionReference__Group__1 ;
+    public final void rule__ActionReference__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7556:1: ( rule__ActionReference__Group__0__Impl rule__ActionReference__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7557:2: rule__ActionReference__Group__0__Impl rule__ActionReference__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__0__Impl_in_rule__ActionReference__Group__015104);
+            rule__ActionReference__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__1_in_rule__ActionReference__Group__015107);
+            rule__ActionReference__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__0"
+
+
+    // $ANTLR start "rule__ActionReference__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7564:1: rule__ActionReference__Group__0__Impl : ( 'ActionReference' ) ;
+    public final void rule__ActionReference__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7568:1: ( ( 'ActionReference' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7569:1: ( 'ActionReference' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7569:1: ( 'ActionReference' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7570:1: 'ActionReference'
+            {
+             before(grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0()); 
+            match(input,76,FollowSets000.FOLLOW_76_in_rule__ActionReference__Group__0__Impl15135); 
+             after(grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7583:1: rule__ActionReference__Group__1 : rule__ActionReference__Group__1__Impl rule__ActionReference__Group__2 ;
+    public final void rule__ActionReference__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7587:1: ( rule__ActionReference__Group__1__Impl rule__ActionReference__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7588:2: rule__ActionReference__Group__1__Impl rule__ActionReference__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__1__Impl_in_rule__ActionReference__Group__115166);
+            rule__ActionReference__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__2_in_rule__ActionReference__Group__115169);
+            rule__ActionReference__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__1"
+
+
+    // $ANTLR start "rule__ActionReference__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7595:1: rule__ActionReference__Group__1__Impl : ( ( rule__ActionReference__Group_1__0 )? ) ;
+    public final void rule__ActionReference__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7599:1: ( ( ( rule__ActionReference__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7600:1: ( ( rule__ActionReference__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7600:1: ( ( rule__ActionReference__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7601:1: ( rule__ActionReference__Group_1__0 )?
+            {
+             before(grammarAccess.getActionReferenceAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7602:1: ( rule__ActionReference__Group_1__0 )?
+            int alt42=2;
+            int LA42_0 = input.LA(1);
+
+            if ( (LA42_0==43) ) {
+                alt42=1;
+            }
+            switch (alt42) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7602:2: rule__ActionReference__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_1__0_in_rule__ActionReference__Group__1__Impl15196);
+                    rule__ActionReference__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7612:1: rule__ActionReference__Group__2 : rule__ActionReference__Group__2__Impl rule__ActionReference__Group__3 ;
+    public final void rule__ActionReference__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7616:1: ( rule__ActionReference__Group__2__Impl rule__ActionReference__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7617:2: rule__ActionReference__Group__2__Impl rule__ActionReference__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__2__Impl_in_rule__ActionReference__Group__215227);
+            rule__ActionReference__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__3_in_rule__ActionReference__Group__215230);
+            rule__ActionReference__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__2"
+
+
+    // $ANTLR start "rule__ActionReference__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7624:1: rule__ActionReference__Group__2__Impl : ( '(' ) ;
+    public final void rule__ActionReference__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7628:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7629:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7629:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7630:1: '('
+            {
+             before(grammarAccess.getActionReferenceAccess().getLeftParenthesisKeyword_2()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__ActionReference__Group__2__Impl15258); 
+             after(grammarAccess.getActionReferenceAccess().getLeftParenthesisKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7643:1: rule__ActionReference__Group__3 : rule__ActionReference__Group__3__Impl rule__ActionReference__Group__4 ;
+    public final void rule__ActionReference__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7647:1: ( rule__ActionReference__Group__3__Impl rule__ActionReference__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7648:2: rule__ActionReference__Group__3__Impl rule__ActionReference__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__3__Impl_in_rule__ActionReference__Group__315289);
+            rule__ActionReference__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__4_in_rule__ActionReference__Group__315292);
+            rule__ActionReference__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__3"
+
+
+    // $ANTLR start "rule__ActionReference__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7655:1: rule__ActionReference__Group__3__Impl : ( 'refersTo' ) ;
+    public final void rule__ActionReference__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7659:1: ( ( 'refersTo' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7660:1: ( 'refersTo' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7660:1: ( 'refersTo' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7661:1: 'refersTo'
+            {
+             before(grammarAccess.getActionReferenceAccess().getRefersToKeyword_3()); 
+            match(input,77,FollowSets000.FOLLOW_77_in_rule__ActionReference__Group__3__Impl15320); 
+             after(grammarAccess.getActionReferenceAccess().getRefersToKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7674:1: rule__ActionReference__Group__4 : rule__ActionReference__Group__4__Impl rule__ActionReference__Group__5 ;
+    public final void rule__ActionReference__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7678:1: ( rule__ActionReference__Group__4__Impl rule__ActionReference__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7679:2: rule__ActionReference__Group__4__Impl rule__ActionReference__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__4__Impl_in_rule__ActionReference__Group__415351);
+            rule__ActionReference__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__5_in_rule__ActionReference__Group__415354);
+            rule__ActionReference__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__4"
+
+
+    // $ANTLR start "rule__ActionReference__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7686:1: rule__ActionReference__Group__4__Impl : ( ( rule__ActionReference__RefersToAssignment_4 ) ) ;
+    public final void rule__ActionReference__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7690:1: ( ( ( rule__ActionReference__RefersToAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7691:1: ( ( rule__ActionReference__RefersToAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7691:1: ( ( rule__ActionReference__RefersToAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7692:1: ( rule__ActionReference__RefersToAssignment_4 )
+            {
+             before(grammarAccess.getActionReferenceAccess().getRefersToAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7693:1: ( rule__ActionReference__RefersToAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7693:2: rule__ActionReference__RefersToAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__RefersToAssignment_4_in_rule__ActionReference__Group__4__Impl15381);
+            rule__ActionReference__RefersToAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getRefersToAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7703:1: rule__ActionReference__Group__5 : rule__ActionReference__Group__5__Impl ;
+    public final void rule__ActionReference__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7707:1: ( rule__ActionReference__Group__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7708:2: rule__ActionReference__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__5__Impl_in_rule__ActionReference__Group__515411);
+            rule__ActionReference__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__5"
+
+
+    // $ANTLR start "rule__ActionReference__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7714:1: rule__ActionReference__Group__5__Impl : ( ')' ) ;
+    public final void rule__ActionReference__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7718:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7719:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7719:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7720:1: ')'
+            {
+             before(grammarAccess.getActionReferenceAccess().getRightParenthesisKeyword_5()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__ActionReference__Group__5__Impl15439); 
+             after(grammarAccess.getActionReferenceAccess().getRightParenthesisKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7745:1: rule__ActionReference__Group_1__0 : rule__ActionReference__Group_1__0__Impl rule__ActionReference__Group_1__1 ;
+    public final void rule__ActionReference__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7749:1: ( rule__ActionReference__Group_1__0__Impl rule__ActionReference__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7750:2: rule__ActionReference__Group_1__0__Impl rule__ActionReference__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_1__0__Impl_in_rule__ActionReference__Group_1__015482);
+            rule__ActionReference__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_1__1_in_rule__ActionReference__Group_1__015485);
+            rule__ActionReference__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_1__0"
+
+
+    // $ANTLR start "rule__ActionReference__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7757:1: rule__ActionReference__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__ActionReference__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7761:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7762:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7762:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7763:1: '[id:'
+            {
+             before(grammarAccess.getActionReferenceAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__ActionReference__Group_1__0__Impl15513); 
+             after(grammarAccess.getActionReferenceAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7776:1: rule__ActionReference__Group_1__1 : rule__ActionReference__Group_1__1__Impl rule__ActionReference__Group_1__2 ;
+    public final void rule__ActionReference__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7780:1: ( rule__ActionReference__Group_1__1__Impl rule__ActionReference__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7781:2: rule__ActionReference__Group_1__1__Impl rule__ActionReference__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_1__1__Impl_in_rule__ActionReference__Group_1__115544);
+            rule__ActionReference__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_1__2_in_rule__ActionReference__Group_1__115547);
+            rule__ActionReference__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_1__1"
+
+
+    // $ANTLR start "rule__ActionReference__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7788:1: rule__ActionReference__Group_1__1__Impl : ( ( rule__ActionReference__IdAssignment_1_1 ) ) ;
+    public final void rule__ActionReference__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7792:1: ( ( ( rule__ActionReference__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7793:1: ( ( rule__ActionReference__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7793:1: ( ( rule__ActionReference__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7794:1: ( rule__ActionReference__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getActionReferenceAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7795:1: ( rule__ActionReference__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7795:2: rule__ActionReference__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__IdAssignment_1_1_in_rule__ActionReference__Group_1__1__Impl15574);
+            rule__ActionReference__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7805:1: rule__ActionReference__Group_1__2 : rule__ActionReference__Group_1__2__Impl ;
+    public final void rule__ActionReference__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7809:1: ( rule__ActionReference__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7810:2: rule__ActionReference__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_1__2__Impl_in_rule__ActionReference__Group_1__215604);
+            rule__ActionReference__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_1__2"
+
+
+    // $ANTLR start "rule__ActionReference__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7816:1: rule__ActionReference__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__ActionReference__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7820:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7821:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7821:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7822:1: ']'
+            {
+             before(grammarAccess.getActionReferenceAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__ActionReference__Group_1__2__Impl15632); 
+             after(grammarAccess.getActionReferenceAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7841:1: rule__AdaptationActionOperation__Group__0 : rule__AdaptationActionOperation__Group__0__Impl rule__AdaptationActionOperation__Group__1 ;
+    public final void rule__AdaptationActionOperation__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7845:1: ( rule__AdaptationActionOperation__Group__0__Impl rule__AdaptationActionOperation__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7846:2: rule__AdaptationActionOperation__Group__0__Impl rule__AdaptationActionOperation__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__0__Impl_in_rule__AdaptationActionOperation__Group__015669);
+            rule__AdaptationActionOperation__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__1_in_rule__AdaptationActionOperation__Group__015672);
+            rule__AdaptationActionOperation__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__0"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7853:1: rule__AdaptationActionOperation__Group__0__Impl : ( '(' ) ;
+    public final void rule__AdaptationActionOperation__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7857:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7858:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7858:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7859:1: '('
+            {
+             before(grammarAccess.getAdaptationActionOperationAccess().getLeftParenthesisKeyword_0()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__AdaptationActionOperation__Group__0__Impl15700); 
+             after(grammarAccess.getAdaptationActionOperationAccess().getLeftParenthesisKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7872:1: rule__AdaptationActionOperation__Group__1 : rule__AdaptationActionOperation__Group__1__Impl rule__AdaptationActionOperation__Group__2 ;
+    public final void rule__AdaptationActionOperation__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7876:1: ( rule__AdaptationActionOperation__Group__1__Impl rule__AdaptationActionOperation__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7877:2: rule__AdaptationActionOperation__Group__1__Impl rule__AdaptationActionOperation__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__1__Impl_in_rule__AdaptationActionOperation__Group__115731);
+            rule__AdaptationActionOperation__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__2_in_rule__AdaptationActionOperation__Group__115734);
+            rule__AdaptationActionOperation__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__1"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7884:1: rule__AdaptationActionOperation__Group__1__Impl : ( ( rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1 ) ) ;
+    public final void rule__AdaptationActionOperation__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7888:1: ( ( ( rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7889:1: ( ( rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7889:1: ( ( rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7890:1: ( rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1 )
+            {
+             before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7891:1: ( rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7891:2: rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1_in_rule__AdaptationActionOperation__Group__1__Impl15761);
+            rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7901:1: rule__AdaptationActionOperation__Group__2 : rule__AdaptationActionOperation__Group__2__Impl rule__AdaptationActionOperation__Group__3 ;
+    public final void rule__AdaptationActionOperation__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7905:1: ( rule__AdaptationActionOperation__Group__2__Impl rule__AdaptationActionOperation__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7906:2: rule__AdaptationActionOperation__Group__2__Impl rule__AdaptationActionOperation__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__2__Impl_in_rule__AdaptationActionOperation__Group__215791);
+            rule__AdaptationActionOperation__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__3_in_rule__AdaptationActionOperation__Group__215794);
+            rule__AdaptationActionOperation__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__2"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7913:1: rule__AdaptationActionOperation__Group__2__Impl : ( ',' ) ;
+    public final void rule__AdaptationActionOperation__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7917:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7918:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7918:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7919:1: ','
+            {
+             before(grammarAccess.getAdaptationActionOperationAccess().getCommaKeyword_2()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__AdaptationActionOperation__Group__2__Impl15822); 
+             after(grammarAccess.getAdaptationActionOperationAccess().getCommaKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__2__Impl"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7932:1: rule__AdaptationActionOperation__Group__3 : rule__AdaptationActionOperation__Group__3__Impl rule__AdaptationActionOperation__Group__4 ;
+    public final void rule__AdaptationActionOperation__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7936:1: ( rule__AdaptationActionOperation__Group__3__Impl rule__AdaptationActionOperation__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7937:2: rule__AdaptationActionOperation__Group__3__Impl rule__AdaptationActionOperation__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__3__Impl_in_rule__AdaptationActionOperation__Group__315853);
+            rule__AdaptationActionOperation__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__4_in_rule__AdaptationActionOperation__Group__315856);
+            rule__AdaptationActionOperation__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__3"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7944:1: rule__AdaptationActionOperation__Group__3__Impl : ( ( rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3 ) ) ;
+    public final void rule__AdaptationActionOperation__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7948:1: ( ( ( rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7949:1: ( ( rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7949:1: ( ( rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7950:1: ( rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3 )
+            {
+             before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAssignment_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7951:1: ( rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7951:2: rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3_in_rule__AdaptationActionOperation__Group__3__Impl15883);
+            rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__3__Impl"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7961:1: rule__AdaptationActionOperation__Group__4 : rule__AdaptationActionOperation__Group__4__Impl ;
+    public final void rule__AdaptationActionOperation__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7965:1: ( rule__AdaptationActionOperation__Group__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7966:2: rule__AdaptationActionOperation__Group__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationActionOperation__Group__4__Impl_in_rule__AdaptationActionOperation__Group__415913);
+            rule__AdaptationActionOperation__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__4"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7972:1: rule__AdaptationActionOperation__Group__4__Impl : ( ')' ) ;
+    public final void rule__AdaptationActionOperation__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7976:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7977:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7977:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:7978:1: ')'
+            {
+             before(grammarAccess.getAdaptationActionOperationAccess().getRightParenthesisKeyword_4()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__AdaptationActionOperation__Group__4__Impl15941); 
+             after(grammarAccess.getAdaptationActionOperationAccess().getRightParenthesisKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8001:1: rule__ModelVariableConfigurationRange__Group__0 : rule__ModelVariableConfigurationRange__Group__0__Impl rule__ModelVariableConfigurationRange__Group__1 ;
+    public final void rule__ModelVariableConfigurationRange__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8005:1: ( rule__ModelVariableConfigurationRange__Group__0__Impl rule__ModelVariableConfigurationRange__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8006:2: rule__ModelVariableConfigurationRange__Group__0__Impl rule__ModelVariableConfigurationRange__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__0__Impl_in_rule__ModelVariableConfigurationRange__Group__015982);
+            rule__ModelVariableConfigurationRange__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__1_in_rule__ModelVariableConfigurationRange__Group__015985);
+            rule__ModelVariableConfigurationRange__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__0"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8013:1: rule__ModelVariableConfigurationRange__Group__0__Impl : ( 'ModelVariableConfigurationRange' ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8017:1: ( ( 'ModelVariableConfigurationRange' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8018:1: ( 'ModelVariableConfigurationRange' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8018:1: ( 'ModelVariableConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8019:1: 'ModelVariableConfigurationRange'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0()); 
+            match(input,78,FollowSets000.FOLLOW_78_in_rule__ModelVariableConfigurationRange__Group__0__Impl16013); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8032:1: rule__ModelVariableConfigurationRange__Group__1 : rule__ModelVariableConfigurationRange__Group__1__Impl rule__ModelVariableConfigurationRange__Group__2 ;
+    public final void rule__ModelVariableConfigurationRange__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8036:1: ( rule__ModelVariableConfigurationRange__Group__1__Impl rule__ModelVariableConfigurationRange__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8037:2: rule__ModelVariableConfigurationRange__Group__1__Impl rule__ModelVariableConfigurationRange__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__1__Impl_in_rule__ModelVariableConfigurationRange__Group__116044);
+            rule__ModelVariableConfigurationRange__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__2_in_rule__ModelVariableConfigurationRange__Group__116047);
+            rule__ModelVariableConfigurationRange__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__1"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8044:1: rule__ModelVariableConfigurationRange__Group__1__Impl : ( ( rule__ModelVariableConfigurationRange__Group_1__0 )? ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8048:1: ( ( ( rule__ModelVariableConfigurationRange__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8049:1: ( ( rule__ModelVariableConfigurationRange__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8049:1: ( ( rule__ModelVariableConfigurationRange__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8050:1: ( rule__ModelVariableConfigurationRange__Group_1__0 )?
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8051:1: ( rule__ModelVariableConfigurationRange__Group_1__0 )?
+            int alt43=2;
+            int LA43_0 = input.LA(1);
+
+            if ( (LA43_0==43) ) {
+                alt43=1;
+            }
+            switch (alt43) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8051:2: rule__ModelVariableConfigurationRange__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group_1__0_in_rule__ModelVariableConfigurationRange__Group__1__Impl16074);
+                    rule__ModelVariableConfigurationRange__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8061:1: rule__ModelVariableConfigurationRange__Group__2 : rule__ModelVariableConfigurationRange__Group__2__Impl rule__ModelVariableConfigurationRange__Group__3 ;
+    public final void rule__ModelVariableConfigurationRange__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8065:1: ( rule__ModelVariableConfigurationRange__Group__2__Impl rule__ModelVariableConfigurationRange__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8066:2: rule__ModelVariableConfigurationRange__Group__2__Impl rule__ModelVariableConfigurationRange__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__2__Impl_in_rule__ModelVariableConfigurationRange__Group__216105);
+            rule__ModelVariableConfigurationRange__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__3_in_rule__ModelVariableConfigurationRange__Group__216108);
+            rule__ModelVariableConfigurationRange__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__2"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8073:1: rule__ModelVariableConfigurationRange__Group__2__Impl : ( '{' ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8077:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8078:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8078:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8079:1: '{'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__ModelVariableConfigurationRange__Group__2__Impl16136); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8092:1: rule__ModelVariableConfigurationRange__Group__3 : rule__ModelVariableConfigurationRange__Group__3__Impl rule__ModelVariableConfigurationRange__Group__4 ;
+    public final void rule__ModelVariableConfigurationRange__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8096:1: ( rule__ModelVariableConfigurationRange__Group__3__Impl rule__ModelVariableConfigurationRange__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8097:2: rule__ModelVariableConfigurationRange__Group__3__Impl rule__ModelVariableConfigurationRange__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__3__Impl_in_rule__ModelVariableConfigurationRange__Group__316167);
+            rule__ModelVariableConfigurationRange__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__4_in_rule__ModelVariableConfigurationRange__Group__316170);
+            rule__ModelVariableConfigurationRange__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__3"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8104:1: rule__ModelVariableConfigurationRange__Group__3__Impl : ( 'name' ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8108:1: ( ( 'name' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8109:1: ( 'name' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8109:1: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8110:1: 'name'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getNameKeyword_3()); 
+            match(input,79,FollowSets000.FOLLOW_79_in_rule__ModelVariableConfigurationRange__Group__3__Impl16198); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8123:1: rule__ModelVariableConfigurationRange__Group__4 : rule__ModelVariableConfigurationRange__Group__4__Impl rule__ModelVariableConfigurationRange__Group__5 ;
+    public final void rule__ModelVariableConfigurationRange__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8127:1: ( rule__ModelVariableConfigurationRange__Group__4__Impl rule__ModelVariableConfigurationRange__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8128:2: rule__ModelVariableConfigurationRange__Group__4__Impl rule__ModelVariableConfigurationRange__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__4__Impl_in_rule__ModelVariableConfigurationRange__Group__416229);
+            rule__ModelVariableConfigurationRange__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__5_in_rule__ModelVariableConfigurationRange__Group__416232);
+            rule__ModelVariableConfigurationRange__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__4"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8135:1: rule__ModelVariableConfigurationRange__Group__4__Impl : ( ( rule__ModelVariableConfigurationRange__NameAssignment_4 ) ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8139:1: ( ( ( rule__ModelVariableConfigurationRange__NameAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8140:1: ( ( rule__ModelVariableConfigurationRange__NameAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8140:1: ( ( rule__ModelVariableConfigurationRange__NameAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8141:1: ( rule__ModelVariableConfigurationRange__NameAssignment_4 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getNameAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8142:1: ( rule__ModelVariableConfigurationRange__NameAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8142:2: rule__ModelVariableConfigurationRange__NameAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__NameAssignment_4_in_rule__ModelVariableConfigurationRange__Group__4__Impl16259);
+            rule__ModelVariableConfigurationRange__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8152:1: rule__ModelVariableConfigurationRange__Group__5 : rule__ModelVariableConfigurationRange__Group__5__Impl rule__ModelVariableConfigurationRange__Group__6 ;
+    public final void rule__ModelVariableConfigurationRange__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8156:1: ( rule__ModelVariableConfigurationRange__Group__5__Impl rule__ModelVariableConfigurationRange__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8157:2: rule__ModelVariableConfigurationRange__Group__5__Impl rule__ModelVariableConfigurationRange__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__5__Impl_in_rule__ModelVariableConfigurationRange__Group__516289);
+            rule__ModelVariableConfigurationRange__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__6_in_rule__ModelVariableConfigurationRange__Group__516292);
+            rule__ModelVariableConfigurationRange__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__5"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8164:1: rule__ModelVariableConfigurationRange__Group__5__Impl : ( 'minValue' ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8168:1: ( ( 'minValue' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8169:1: ( 'minValue' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8169:1: ( 'minValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8170:1: 'minValue'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_5()); 
+            match(input,80,FollowSets000.FOLLOW_80_in_rule__ModelVariableConfigurationRange__Group__5__Impl16320); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8183:1: rule__ModelVariableConfigurationRange__Group__6 : rule__ModelVariableConfigurationRange__Group__6__Impl rule__ModelVariableConfigurationRange__Group__7 ;
+    public final void rule__ModelVariableConfigurationRange__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8187:1: ( rule__ModelVariableConfigurationRange__Group__6__Impl rule__ModelVariableConfigurationRange__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8188:2: rule__ModelVariableConfigurationRange__Group__6__Impl rule__ModelVariableConfigurationRange__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__6__Impl_in_rule__ModelVariableConfigurationRange__Group__616351);
+            rule__ModelVariableConfigurationRange__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__7_in_rule__ModelVariableConfigurationRange__Group__616354);
+            rule__ModelVariableConfigurationRange__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__6"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8195:1: rule__ModelVariableConfigurationRange__Group__6__Impl : ( ( rule__ModelVariableConfigurationRange__MinValueAssignment_6 ) ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8199:1: ( ( ( rule__ModelVariableConfigurationRange__MinValueAssignment_6 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8200:1: ( ( rule__ModelVariableConfigurationRange__MinValueAssignment_6 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8200:1: ( ( rule__ModelVariableConfigurationRange__MinValueAssignment_6 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8201:1: ( rule__ModelVariableConfigurationRange__MinValueAssignment_6 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8202:1: ( rule__ModelVariableConfigurationRange__MinValueAssignment_6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8202:2: rule__ModelVariableConfigurationRange__MinValueAssignment_6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__MinValueAssignment_6_in_rule__ModelVariableConfigurationRange__Group__6__Impl16381);
+            rule__ModelVariableConfigurationRange__MinValueAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8212:1: rule__ModelVariableConfigurationRange__Group__7 : rule__ModelVariableConfigurationRange__Group__7__Impl rule__ModelVariableConfigurationRange__Group__8 ;
+    public final void rule__ModelVariableConfigurationRange__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8216:1: ( rule__ModelVariableConfigurationRange__Group__7__Impl rule__ModelVariableConfigurationRange__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8217:2: rule__ModelVariableConfigurationRange__Group__7__Impl rule__ModelVariableConfigurationRange__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__7__Impl_in_rule__ModelVariableConfigurationRange__Group__716411);
+            rule__ModelVariableConfigurationRange__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__8_in_rule__ModelVariableConfigurationRange__Group__716414);
+            rule__ModelVariableConfigurationRange__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__7"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8224:1: rule__ModelVariableConfigurationRange__Group__7__Impl : ( 'maxValue' ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8228:1: ( ( 'maxValue' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8229:1: ( 'maxValue' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8229:1: ( 'maxValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8230:1: 'maxValue'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_7()); 
+            match(input,81,FollowSets000.FOLLOW_81_in_rule__ModelVariableConfigurationRange__Group__7__Impl16442); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8243:1: rule__ModelVariableConfigurationRange__Group__8 : rule__ModelVariableConfigurationRange__Group__8__Impl rule__ModelVariableConfigurationRange__Group__9 ;
+    public final void rule__ModelVariableConfigurationRange__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8247:1: ( rule__ModelVariableConfigurationRange__Group__8__Impl rule__ModelVariableConfigurationRange__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8248:2: rule__ModelVariableConfigurationRange__Group__8__Impl rule__ModelVariableConfigurationRange__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__8__Impl_in_rule__ModelVariableConfigurationRange__Group__816473);
+            rule__ModelVariableConfigurationRange__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__9_in_rule__ModelVariableConfigurationRange__Group__816476);
+            rule__ModelVariableConfigurationRange__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__8"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8255:1: rule__ModelVariableConfigurationRange__Group__8__Impl : ( ( rule__ModelVariableConfigurationRange__MaxValueAssignment_8 ) ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8259:1: ( ( ( rule__ModelVariableConfigurationRange__MaxValueAssignment_8 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8260:1: ( ( rule__ModelVariableConfigurationRange__MaxValueAssignment_8 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8260:1: ( ( rule__ModelVariableConfigurationRange__MaxValueAssignment_8 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8261:1: ( rule__ModelVariableConfigurationRange__MaxValueAssignment_8 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8262:1: ( rule__ModelVariableConfigurationRange__MaxValueAssignment_8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8262:2: rule__ModelVariableConfigurationRange__MaxValueAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__MaxValueAssignment_8_in_rule__ModelVariableConfigurationRange__Group__8__Impl16503);
+            rule__ModelVariableConfigurationRange__MaxValueAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__8__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8272:1: rule__ModelVariableConfigurationRange__Group__9 : rule__ModelVariableConfigurationRange__Group__9__Impl rule__ModelVariableConfigurationRange__Group__10 ;
+    public final void rule__ModelVariableConfigurationRange__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8276:1: ( rule__ModelVariableConfigurationRange__Group__9__Impl rule__ModelVariableConfigurationRange__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8277:2: rule__ModelVariableConfigurationRange__Group__9__Impl rule__ModelVariableConfigurationRange__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__9__Impl_in_rule__ModelVariableConfigurationRange__Group__916533);
+            rule__ModelVariableConfigurationRange__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__10_in_rule__ModelVariableConfigurationRange__Group__916536);
+            rule__ModelVariableConfigurationRange__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__9"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8284:1: rule__ModelVariableConfigurationRange__Group__9__Impl : ( 'adaptableEntity' ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8288:1: ( ( 'adaptableEntity' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8289:1: ( 'adaptableEntity' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8289:1: ( 'adaptableEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8290:1: 'adaptableEntity'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_9()); 
+            match(input,82,FollowSets000.FOLLOW_82_in_rule__ModelVariableConfigurationRange__Group__9__Impl16564); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__9__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8303:1: rule__ModelVariableConfigurationRange__Group__10 : rule__ModelVariableConfigurationRange__Group__10__Impl rule__ModelVariableConfigurationRange__Group__11 ;
+    public final void rule__ModelVariableConfigurationRange__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8307:1: ( rule__ModelVariableConfigurationRange__Group__10__Impl rule__ModelVariableConfigurationRange__Group__11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8308:2: rule__ModelVariableConfigurationRange__Group__10__Impl rule__ModelVariableConfigurationRange__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__10__Impl_in_rule__ModelVariableConfigurationRange__Group__1016595);
+            rule__ModelVariableConfigurationRange__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__11_in_rule__ModelVariableConfigurationRange__Group__1016598);
+            rule__ModelVariableConfigurationRange__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__10"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8315:1: rule__ModelVariableConfigurationRange__Group__10__Impl : ( ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10 ) ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8319:1: ( ( ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8320:1: ( ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8320:1: ( ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8321:1: ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_10()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8322:1: ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8322:2: rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10_in_rule__ModelVariableConfigurationRange__Group__10__Impl16625);
+            rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__10__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8332:1: rule__ModelVariableConfigurationRange__Group__11 : rule__ModelVariableConfigurationRange__Group__11__Impl ;
+    public final void rule__ModelVariableConfigurationRange__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8336:1: ( rule__ModelVariableConfigurationRange__Group__11__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8337:2: rule__ModelVariableConfigurationRange__Group__11__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__11__Impl_in_rule__ModelVariableConfigurationRange__Group__1116655);
+            rule__ModelVariableConfigurationRange__Group__11__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__11"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__11__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8343:1: rule__ModelVariableConfigurationRange__Group__11__Impl : ( '}' ) ;
+    public final void rule__ModelVariableConfigurationRange__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8347:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8348:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8348:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8349:1: '}'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_11()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__ModelVariableConfigurationRange__Group__11__Impl16683); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__11__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8386:1: rule__ModelVariableConfigurationRange__Group_1__0 : rule__ModelVariableConfigurationRange__Group_1__0__Impl rule__ModelVariableConfigurationRange__Group_1__1 ;
+    public final void rule__ModelVariableConfigurationRange__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8390:1: ( rule__ModelVariableConfigurationRange__Group_1__0__Impl rule__ModelVariableConfigurationRange__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8391:2: rule__ModelVariableConfigurationRange__Group_1__0__Impl rule__ModelVariableConfigurationRange__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group_1__0__Impl_in_rule__ModelVariableConfigurationRange__Group_1__016738);
+            rule__ModelVariableConfigurationRange__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group_1__1_in_rule__ModelVariableConfigurationRange__Group_1__016741);
+            rule__ModelVariableConfigurationRange__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group_1__0"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8398:1: rule__ModelVariableConfigurationRange__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__ModelVariableConfigurationRange__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8402:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8403:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8403:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8404:1: '[id:'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__ModelVariableConfigurationRange__Group_1__0__Impl16769); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8417:1: rule__ModelVariableConfigurationRange__Group_1__1 : rule__ModelVariableConfigurationRange__Group_1__1__Impl rule__ModelVariableConfigurationRange__Group_1__2 ;
+    public final void rule__ModelVariableConfigurationRange__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8421:1: ( rule__ModelVariableConfigurationRange__Group_1__1__Impl rule__ModelVariableConfigurationRange__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8422:2: rule__ModelVariableConfigurationRange__Group_1__1__Impl rule__ModelVariableConfigurationRange__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group_1__1__Impl_in_rule__ModelVariableConfigurationRange__Group_1__116800);
+            rule__ModelVariableConfigurationRange__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group_1__2_in_rule__ModelVariableConfigurationRange__Group_1__116803);
+            rule__ModelVariableConfigurationRange__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group_1__1"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8429:1: rule__ModelVariableConfigurationRange__Group_1__1__Impl : ( ( rule__ModelVariableConfigurationRange__IdAssignment_1_1 ) ) ;
+    public final void rule__ModelVariableConfigurationRange__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8433:1: ( ( ( rule__ModelVariableConfigurationRange__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8434:1: ( ( rule__ModelVariableConfigurationRange__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8434:1: ( ( rule__ModelVariableConfigurationRange__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8435:1: ( rule__ModelVariableConfigurationRange__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8436:1: ( rule__ModelVariableConfigurationRange__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8436:2: rule__ModelVariableConfigurationRange__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__IdAssignment_1_1_in_rule__ModelVariableConfigurationRange__Group_1__1__Impl16830);
+            rule__ModelVariableConfigurationRange__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8446:1: rule__ModelVariableConfigurationRange__Group_1__2 : rule__ModelVariableConfigurationRange__Group_1__2__Impl ;
+    public final void rule__ModelVariableConfigurationRange__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8450:1: ( rule__ModelVariableConfigurationRange__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8451:2: rule__ModelVariableConfigurationRange__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group_1__2__Impl_in_rule__ModelVariableConfigurationRange__Group_1__216860);
+            rule__ModelVariableConfigurationRange__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group_1__2"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8457:1: rule__ModelVariableConfigurationRange__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__ModelVariableConfigurationRange__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8461:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8462:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8462:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8463:1: ']'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__ModelVariableConfigurationRange__Group_1__2__Impl16888); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8482:1: rule__ModelEntityConfigurationRange__Group__0 : rule__ModelEntityConfigurationRange__Group__0__Impl rule__ModelEntityConfigurationRange__Group__1 ;
+    public final void rule__ModelEntityConfigurationRange__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8486:1: ( rule__ModelEntityConfigurationRange__Group__0__Impl rule__ModelEntityConfigurationRange__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8487:2: rule__ModelEntityConfigurationRange__Group__0__Impl rule__ModelEntityConfigurationRange__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__0__Impl_in_rule__ModelEntityConfigurationRange__Group__016925);
+            rule__ModelEntityConfigurationRange__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__1_in_rule__ModelEntityConfigurationRange__Group__016928);
+            rule__ModelEntityConfigurationRange__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__0"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8494:1: rule__ModelEntityConfigurationRange__Group__0__Impl : ( 'ModelEntityConfigurationRange' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8498:1: ( ( 'ModelEntityConfigurationRange' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8499:1: ( 'ModelEntityConfigurationRange' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8499:1: ( 'ModelEntityConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8500:1: 'ModelEntityConfigurationRange'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0()); 
+            match(input,83,FollowSets000.FOLLOW_83_in_rule__ModelEntityConfigurationRange__Group__0__Impl16956); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8513:1: rule__ModelEntityConfigurationRange__Group__1 : rule__ModelEntityConfigurationRange__Group__1__Impl rule__ModelEntityConfigurationRange__Group__2 ;
+    public final void rule__ModelEntityConfigurationRange__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8517:1: ( rule__ModelEntityConfigurationRange__Group__1__Impl rule__ModelEntityConfigurationRange__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8518:2: rule__ModelEntityConfigurationRange__Group__1__Impl rule__ModelEntityConfigurationRange__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__1__Impl_in_rule__ModelEntityConfigurationRange__Group__116987);
+            rule__ModelEntityConfigurationRange__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__2_in_rule__ModelEntityConfigurationRange__Group__116990);
+            rule__ModelEntityConfigurationRange__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__1"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8525:1: rule__ModelEntityConfigurationRange__Group__1__Impl : ( ( rule__ModelEntityConfigurationRange__Group_1__0 )? ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8529:1: ( ( ( rule__ModelEntityConfigurationRange__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8530:1: ( ( rule__ModelEntityConfigurationRange__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8530:1: ( ( rule__ModelEntityConfigurationRange__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8531:1: ( rule__ModelEntityConfigurationRange__Group_1__0 )?
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8532:1: ( rule__ModelEntityConfigurationRange__Group_1__0 )?
+            int alt44=2;
+            int LA44_0 = input.LA(1);
+
+            if ( (LA44_0==43) ) {
+                alt44=1;
+            }
+            switch (alt44) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8532:2: rule__ModelEntityConfigurationRange__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_1__0_in_rule__ModelEntityConfigurationRange__Group__1__Impl17017);
+                    rule__ModelEntityConfigurationRange__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8542:1: rule__ModelEntityConfigurationRange__Group__2 : rule__ModelEntityConfigurationRange__Group__2__Impl rule__ModelEntityConfigurationRange__Group__3 ;
+    public final void rule__ModelEntityConfigurationRange__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8546:1: ( rule__ModelEntityConfigurationRange__Group__2__Impl rule__ModelEntityConfigurationRange__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8547:2: rule__ModelEntityConfigurationRange__Group__2__Impl rule__ModelEntityConfigurationRange__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__2__Impl_in_rule__ModelEntityConfigurationRange__Group__217048);
+            rule__ModelEntityConfigurationRange__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__3_in_rule__ModelEntityConfigurationRange__Group__217051);
+            rule__ModelEntityConfigurationRange__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__2"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8554:1: rule__ModelEntityConfigurationRange__Group__2__Impl : ( '{' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8558:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8559:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8559:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8560:1: '{'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__ModelEntityConfigurationRange__Group__2__Impl17079); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8573:1: rule__ModelEntityConfigurationRange__Group__3 : rule__ModelEntityConfigurationRange__Group__3__Impl rule__ModelEntityConfigurationRange__Group__4 ;
+    public final void rule__ModelEntityConfigurationRange__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8577:1: ( rule__ModelEntityConfigurationRange__Group__3__Impl rule__ModelEntityConfigurationRange__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8578:2: rule__ModelEntityConfigurationRange__Group__3__Impl rule__ModelEntityConfigurationRange__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__3__Impl_in_rule__ModelEntityConfigurationRange__Group__317110);
+            rule__ModelEntityConfigurationRange__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__4_in_rule__ModelEntityConfigurationRange__Group__317113);
+            rule__ModelEntityConfigurationRange__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__3"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8585:1: rule__ModelEntityConfigurationRange__Group__3__Impl : ( 'name' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8589:1: ( ( 'name' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8590:1: ( 'name' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8590:1: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8591:1: 'name'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getNameKeyword_3()); 
+            match(input,79,FollowSets000.FOLLOW_79_in_rule__ModelEntityConfigurationRange__Group__3__Impl17141); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8604:1: rule__ModelEntityConfigurationRange__Group__4 : rule__ModelEntityConfigurationRange__Group__4__Impl rule__ModelEntityConfigurationRange__Group__5 ;
+    public final void rule__ModelEntityConfigurationRange__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8608:1: ( rule__ModelEntityConfigurationRange__Group__4__Impl rule__ModelEntityConfigurationRange__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8609:2: rule__ModelEntityConfigurationRange__Group__4__Impl rule__ModelEntityConfigurationRange__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__4__Impl_in_rule__ModelEntityConfigurationRange__Group__417172);
+            rule__ModelEntityConfigurationRange__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__5_in_rule__ModelEntityConfigurationRange__Group__417175);
+            rule__ModelEntityConfigurationRange__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__4"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8616:1: rule__ModelEntityConfigurationRange__Group__4__Impl : ( ( rule__ModelEntityConfigurationRange__NameAssignment_4 ) ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8620:1: ( ( ( rule__ModelEntityConfigurationRange__NameAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8621:1: ( ( rule__ModelEntityConfigurationRange__NameAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8621:1: ( ( rule__ModelEntityConfigurationRange__NameAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8622:1: ( rule__ModelEntityConfigurationRange__NameAssignment_4 )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getNameAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8623:1: ( rule__ModelEntityConfigurationRange__NameAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8623:2: rule__ModelEntityConfigurationRange__NameAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__NameAssignment_4_in_rule__ModelEntityConfigurationRange__Group__4__Impl17202);
+            rule__ModelEntityConfigurationRange__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8633:1: rule__ModelEntityConfigurationRange__Group__5 : rule__ModelEntityConfigurationRange__Group__5__Impl rule__ModelEntityConfigurationRange__Group__6 ;
+    public final void rule__ModelEntityConfigurationRange__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8637:1: ( rule__ModelEntityConfigurationRange__Group__5__Impl rule__ModelEntityConfigurationRange__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8638:2: rule__ModelEntityConfigurationRange__Group__5__Impl rule__ModelEntityConfigurationRange__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__5__Impl_in_rule__ModelEntityConfigurationRange__Group__517232);
+            rule__ModelEntityConfigurationRange__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__6_in_rule__ModelEntityConfigurationRange__Group__517235);
+            rule__ModelEntityConfigurationRange__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__5"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8645:1: rule__ModelEntityConfigurationRange__Group__5__Impl : ( 'adaptableEntity' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8649:1: ( ( 'adaptableEntity' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8650:1: ( 'adaptableEntity' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8650:1: ( 'adaptableEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8651:1: 'adaptableEntity'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityKeyword_5()); 
+            match(input,82,FollowSets000.FOLLOW_82_in_rule__ModelEntityConfigurationRange__Group__5__Impl17263); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8664:1: rule__ModelEntityConfigurationRange__Group__6 : rule__ModelEntityConfigurationRange__Group__6__Impl rule__ModelEntityConfigurationRange__Group__7 ;
+    public final void rule__ModelEntityConfigurationRange__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8668:1: ( rule__ModelEntityConfigurationRange__Group__6__Impl rule__ModelEntityConfigurationRange__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8669:2: rule__ModelEntityConfigurationRange__Group__6__Impl rule__ModelEntityConfigurationRange__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__6__Impl_in_rule__ModelEntityConfigurationRange__Group__617294);
+            rule__ModelEntityConfigurationRange__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__7_in_rule__ModelEntityConfigurationRange__Group__617297);
+            rule__ModelEntityConfigurationRange__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__6"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8676:1: rule__ModelEntityConfigurationRange__Group__6__Impl : ( ( rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6 ) ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8680:1: ( ( ( rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8681:1: ( ( rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8681:1: ( ( rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8682:1: ( rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6 )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityAssignment_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8683:1: ( rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8683:2: rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6_in_rule__ModelEntityConfigurationRange__Group__6__Impl17324);
+            rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8693:1: rule__ModelEntityConfigurationRange__Group__7 : rule__ModelEntityConfigurationRange__Group__7__Impl rule__ModelEntityConfigurationRange__Group__8 ;
+    public final void rule__ModelEntityConfigurationRange__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8697:1: ( rule__ModelEntityConfigurationRange__Group__7__Impl rule__ModelEntityConfigurationRange__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8698:2: rule__ModelEntityConfigurationRange__Group__7__Impl rule__ModelEntityConfigurationRange__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__7__Impl_in_rule__ModelEntityConfigurationRange__Group__717354);
+            rule__ModelEntityConfigurationRange__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__8_in_rule__ModelEntityConfigurationRange__Group__717357);
+            rule__ModelEntityConfigurationRange__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__7"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8705:1: rule__ModelEntityConfigurationRange__Group__7__Impl : ( 'variationPossibility' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8709:1: ( ( 'variationPossibility' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8710:1: ( 'variationPossibility' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8710:1: ( 'variationPossibility' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8711:1: 'variationPossibility'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_7()); 
+            match(input,84,FollowSets000.FOLLOW_84_in_rule__ModelEntityConfigurationRange__Group__7__Impl17385); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8724:1: rule__ModelEntityConfigurationRange__Group__8 : rule__ModelEntityConfigurationRange__Group__8__Impl rule__ModelEntityConfigurationRange__Group__9 ;
+    public final void rule__ModelEntityConfigurationRange__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8728:1: ( rule__ModelEntityConfigurationRange__Group__8__Impl rule__ModelEntityConfigurationRange__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8729:2: rule__ModelEntityConfigurationRange__Group__8__Impl rule__ModelEntityConfigurationRange__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__8__Impl_in_rule__ModelEntityConfigurationRange__Group__817416);
+            rule__ModelEntityConfigurationRange__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__9_in_rule__ModelEntityConfigurationRange__Group__817419);
+            rule__ModelEntityConfigurationRange__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__8"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8736:1: rule__ModelEntityConfigurationRange__Group__8__Impl : ( ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8 ) ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8740:1: ( ( ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8741:1: ( ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8741:1: ( ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8742:1: ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8 )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8743:1: ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8743:2: rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8_in_rule__ModelEntityConfigurationRange__Group__8__Impl17446);
+            rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__8__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8753:1: rule__ModelEntityConfigurationRange__Group__9 : rule__ModelEntityConfigurationRange__Group__9__Impl ;
+    public final void rule__ModelEntityConfigurationRange__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8757:1: ( rule__ModelEntityConfigurationRange__Group__9__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8758:2: rule__ModelEntityConfigurationRange__Group__9__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__9__Impl_in_rule__ModelEntityConfigurationRange__Group__917476);
+            rule__ModelEntityConfigurationRange__Group__9__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__9"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8764:1: rule__ModelEntityConfigurationRange__Group__9__Impl : ( '}' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8768:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8769:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8769:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8770:1: '}'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__ModelEntityConfigurationRange__Group__9__Impl17504); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group__9__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8803:1: rule__ModelEntityConfigurationRange__Group_1__0 : rule__ModelEntityConfigurationRange__Group_1__0__Impl rule__ModelEntityConfigurationRange__Group_1__1 ;
+    public final void rule__ModelEntityConfigurationRange__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8807:1: ( rule__ModelEntityConfigurationRange__Group_1__0__Impl rule__ModelEntityConfigurationRange__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8808:2: rule__ModelEntityConfigurationRange__Group_1__0__Impl rule__ModelEntityConfigurationRange__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_1__0__Impl_in_rule__ModelEntityConfigurationRange__Group_1__017555);
+            rule__ModelEntityConfigurationRange__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_1__1_in_rule__ModelEntityConfigurationRange__Group_1__017558);
+            rule__ModelEntityConfigurationRange__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_1__0"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8815:1: rule__ModelEntityConfigurationRange__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8819:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8820:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8820:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8821:1: '[id:'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__ModelEntityConfigurationRange__Group_1__0__Impl17586); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8834:1: rule__ModelEntityConfigurationRange__Group_1__1 : rule__ModelEntityConfigurationRange__Group_1__1__Impl rule__ModelEntityConfigurationRange__Group_1__2 ;
+    public final void rule__ModelEntityConfigurationRange__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8838:1: ( rule__ModelEntityConfigurationRange__Group_1__1__Impl rule__ModelEntityConfigurationRange__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8839:2: rule__ModelEntityConfigurationRange__Group_1__1__Impl rule__ModelEntityConfigurationRange__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_1__1__Impl_in_rule__ModelEntityConfigurationRange__Group_1__117617);
+            rule__ModelEntityConfigurationRange__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_1__2_in_rule__ModelEntityConfigurationRange__Group_1__117620);
+            rule__ModelEntityConfigurationRange__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_1__1"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8846:1: rule__ModelEntityConfigurationRange__Group_1__1__Impl : ( ( rule__ModelEntityConfigurationRange__IdAssignment_1_1 ) ) ;
+    public final void rule__ModelEntityConfigurationRange__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8850:1: ( ( ( rule__ModelEntityConfigurationRange__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8851:1: ( ( rule__ModelEntityConfigurationRange__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8851:1: ( ( rule__ModelEntityConfigurationRange__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8852:1: ( rule__ModelEntityConfigurationRange__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8853:1: ( rule__ModelEntityConfigurationRange__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8853:2: rule__ModelEntityConfigurationRange__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__IdAssignment_1_1_in_rule__ModelEntityConfigurationRange__Group_1__1__Impl17647);
+            rule__ModelEntityConfigurationRange__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8863:1: rule__ModelEntityConfigurationRange__Group_1__2 : rule__ModelEntityConfigurationRange__Group_1__2__Impl ;
+    public final void rule__ModelEntityConfigurationRange__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8867:1: ( rule__ModelEntityConfigurationRange__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8868:2: rule__ModelEntityConfigurationRange__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_1__2__Impl_in_rule__ModelEntityConfigurationRange__Group_1__217677);
+            rule__ModelEntityConfigurationRange__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_1__2"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8874:1: rule__ModelEntityConfigurationRange__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8878:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8879:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8879:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8880:1: ']'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__ModelEntityConfigurationRange__Group_1__2__Impl17705); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8899:1: rule__EDouble__Group__0 : rule__EDouble__Group__0__Impl rule__EDouble__Group__1 ;
+    public final void rule__EDouble__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8903:1: ( rule__EDouble__Group__0__Impl rule__EDouble__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8904:2: rule__EDouble__Group__0__Impl rule__EDouble__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__0__Impl_in_rule__EDouble__Group__017742);
+            rule__EDouble__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__1_in_rule__EDouble__Group__017745);
+            rule__EDouble__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__0"
+
+
+    // $ANTLR start "rule__EDouble__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8911:1: rule__EDouble__Group__0__Impl : ( ( '-' )? ) ;
+    public final void rule__EDouble__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8915:1: ( ( ( '-' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8916:1: ( ( '-' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8916:1: ( ( '-' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8917:1: ( '-' )?
+            {
+             before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8918:1: ( '-' )?
+            int alt45=2;
+            int LA45_0 = input.LA(1);
+
+            if ( (LA45_0==85) ) {
+                alt45=1;
+            }
+            switch (alt45) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8919:2: '-'
+                    {
+                    match(input,85,FollowSets000.FOLLOW_85_in_rule__EDouble__Group__0__Impl17774); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8930:1: rule__EDouble__Group__1 : rule__EDouble__Group__1__Impl rule__EDouble__Group__2 ;
+    public final void rule__EDouble__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8934:1: ( rule__EDouble__Group__1__Impl rule__EDouble__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8935:2: rule__EDouble__Group__1__Impl rule__EDouble__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__1__Impl_in_rule__EDouble__Group__117807);
+            rule__EDouble__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__2_in_rule__EDouble__Group__117810);
+            rule__EDouble__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__1"
+
+
+    // $ANTLR start "rule__EDouble__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8942:1: rule__EDouble__Group__1__Impl : ( ( RULE_INT )? ) ;
+    public final void rule__EDouble__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8946:1: ( ( ( RULE_INT )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8947:1: ( ( RULE_INT )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8947:1: ( ( RULE_INT )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8948:1: ( RULE_INT )?
+            {
+             before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8949:1: ( RULE_INT )?
+            int alt46=2;
+            int LA46_0 = input.LA(1);
+
+            if ( (LA46_0==RULE_INT) ) {
+                alt46=1;
+            }
+            switch (alt46) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8949:3: RULE_INT
+                    {
+                    match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_rule__EDouble__Group__1__Impl17838); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__1__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8959:1: rule__EDouble__Group__2 : rule__EDouble__Group__2__Impl rule__EDouble__Group__3 ;
+    public final void rule__EDouble__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8963:1: ( rule__EDouble__Group__2__Impl rule__EDouble__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8964:2: rule__EDouble__Group__2__Impl rule__EDouble__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__2__Impl_in_rule__EDouble__Group__217869);
+            rule__EDouble__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__3_in_rule__EDouble__Group__217872);
+            rule__EDouble__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__2"
+
+
+    // $ANTLR start "rule__EDouble__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8971:1: rule__EDouble__Group__2__Impl : ( '.' ) ;
+    public final void rule__EDouble__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8975:1: ( ( '.' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8976:1: ( '.' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8976:1: ( '.' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8977:1: '.'
+            {
+             before(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); 
+            match(input,86,FollowSets000.FOLLOW_86_in_rule__EDouble__Group__2__Impl17900); 
+             after(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__2__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8990:1: rule__EDouble__Group__3 : rule__EDouble__Group__3__Impl rule__EDouble__Group__4 ;
+    public final void rule__EDouble__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8994:1: ( rule__EDouble__Group__3__Impl rule__EDouble__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:8995:2: rule__EDouble__Group__3__Impl rule__EDouble__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__3__Impl_in_rule__EDouble__Group__317931);
+            rule__EDouble__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__4_in_rule__EDouble__Group__317934);
+            rule__EDouble__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__3"
+
+
+    // $ANTLR start "rule__EDouble__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9002:1: rule__EDouble__Group__3__Impl : ( RULE_INT ) ;
+    public final void rule__EDouble__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9006:1: ( ( RULE_INT ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9007:1: ( RULE_INT )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9007:1: ( RULE_INT )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9008:1: RULE_INT
+            {
+             before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); 
+            match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_rule__EDouble__Group__3__Impl17961); 
+             after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__3__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9019:1: rule__EDouble__Group__4 : rule__EDouble__Group__4__Impl ;
+    public final void rule__EDouble__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9023:1: ( rule__EDouble__Group__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9024:2: rule__EDouble__Group__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__4__Impl_in_rule__EDouble__Group__417990);
+            rule__EDouble__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__4"
+
+
+    // $ANTLR start "rule__EDouble__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9030:1: rule__EDouble__Group__4__Impl : ( ( rule__EDouble__Group_4__0 )? ) ;
+    public final void rule__EDouble__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9034:1: ( ( ( rule__EDouble__Group_4__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9035:1: ( ( rule__EDouble__Group_4__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9035:1: ( ( rule__EDouble__Group_4__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9036:1: ( rule__EDouble__Group_4__0 )?
+            {
+             before(grammarAccess.getEDoubleAccess().getGroup_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9037:1: ( rule__EDouble__Group_4__0 )?
+            int alt47=2;
+            int LA47_0 = input.LA(1);
+
+            if ( ((LA47_0>=12 && LA47_0<=13)) ) {
+                alt47=1;
+            }
+            switch (alt47) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9037:2: rule__EDouble__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__0_in_rule__EDouble__Group__4__Impl18017);
+                    rule__EDouble__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__4__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9057:1: rule__EDouble__Group_4__0 : rule__EDouble__Group_4__0__Impl rule__EDouble__Group_4__1 ;
+    public final void rule__EDouble__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9061:1: ( rule__EDouble__Group_4__0__Impl rule__EDouble__Group_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9062:2: rule__EDouble__Group_4__0__Impl rule__EDouble__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__0__Impl_in_rule__EDouble__Group_4__018058);
+            rule__EDouble__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__1_in_rule__EDouble__Group_4__018061);
+            rule__EDouble__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__0"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9069:1: rule__EDouble__Group_4__0__Impl : ( ( rule__EDouble__Alternatives_4_0 ) ) ;
+    public final void rule__EDouble__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9073:1: ( ( ( rule__EDouble__Alternatives_4_0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9074:1: ( ( rule__EDouble__Alternatives_4_0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9074:1: ( ( rule__EDouble__Alternatives_4_0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9075:1: ( rule__EDouble__Alternatives_4_0 )
+            {
+             before(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9076:1: ( rule__EDouble__Alternatives_4_0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9076:2: rule__EDouble__Alternatives_4_0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Alternatives_4_0_in_rule__EDouble__Group_4__0__Impl18088);
+            rule__EDouble__Alternatives_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9086:1: rule__EDouble__Group_4__1 : rule__EDouble__Group_4__1__Impl rule__EDouble__Group_4__2 ;
+    public final void rule__EDouble__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9090:1: ( rule__EDouble__Group_4__1__Impl rule__EDouble__Group_4__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9091:2: rule__EDouble__Group_4__1__Impl rule__EDouble__Group_4__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__1__Impl_in_rule__EDouble__Group_4__118118);
+            rule__EDouble__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__2_in_rule__EDouble__Group_4__118121);
+            rule__EDouble__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__1"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9098:1: rule__EDouble__Group_4__1__Impl : ( ( '-' )? ) ;
+    public final void rule__EDouble__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9102:1: ( ( ( '-' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9103:1: ( ( '-' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9103:1: ( ( '-' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9104:1: ( '-' )?
+            {
+             before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9105:1: ( '-' )?
+            int alt48=2;
+            int LA48_0 = input.LA(1);
+
+            if ( (LA48_0==85) ) {
+                alt48=1;
+            }
+            switch (alt48) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9106:2: '-'
+                    {
+                    match(input,85,FollowSets000.FOLLOW_85_in_rule__EDouble__Group_4__1__Impl18150); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9117:1: rule__EDouble__Group_4__2 : rule__EDouble__Group_4__2__Impl ;
+    public final void rule__EDouble__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9121:1: ( rule__EDouble__Group_4__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9122:2: rule__EDouble__Group_4__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__2__Impl_in_rule__EDouble__Group_4__218183);
+            rule__EDouble__Group_4__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__2"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9128:1: rule__EDouble__Group_4__2__Impl : ( RULE_INT ) ;
+    public final void rule__EDouble__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9132:1: ( ( RULE_INT ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9133:1: ( RULE_INT )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9133:1: ( RULE_INT )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9134:1: RULE_INT
+            {
+             before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); 
+            match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_rule__EDouble__Group_4__2__Impl18210); 
+             after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9151:1: rule__PropertyRange__Group__0 : rule__PropertyRange__Group__0__Impl rule__PropertyRange__Group__1 ;
+    public final void rule__PropertyRange__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9155:1: ( rule__PropertyRange__Group__0__Impl rule__PropertyRange__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9156:2: rule__PropertyRange__Group__0__Impl rule__PropertyRange__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__0__Impl_in_rule__PropertyRange__Group__018245);
+            rule__PropertyRange__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__1_in_rule__PropertyRange__Group__018248);
+            rule__PropertyRange__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__0"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9163:1: rule__PropertyRange__Group__0__Impl : ( 'PropertyRange' ) ;
+    public final void rule__PropertyRange__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9167:1: ( ( 'PropertyRange' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9168:1: ( 'PropertyRange' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9168:1: ( 'PropertyRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9169:1: 'PropertyRange'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0()); 
+            match(input,87,FollowSets000.FOLLOW_87_in_rule__PropertyRange__Group__0__Impl18276); 
+             after(grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9182:1: rule__PropertyRange__Group__1 : rule__PropertyRange__Group__1__Impl rule__PropertyRange__Group__2 ;
+    public final void rule__PropertyRange__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9186:1: ( rule__PropertyRange__Group__1__Impl rule__PropertyRange__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9187:2: rule__PropertyRange__Group__1__Impl rule__PropertyRange__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__1__Impl_in_rule__PropertyRange__Group__118307);
+            rule__PropertyRange__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__2_in_rule__PropertyRange__Group__118310);
+            rule__PropertyRange__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__1"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9194:1: rule__PropertyRange__Group__1__Impl : ( '{' ) ;
+    public final void rule__PropertyRange__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9198:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9199:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9199:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9200:1: '{'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__PropertyRange__Group__1__Impl18338); 
+             after(grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9213:1: rule__PropertyRange__Group__2 : rule__PropertyRange__Group__2__Impl rule__PropertyRange__Group__3 ;
+    public final void rule__PropertyRange__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9217:1: ( rule__PropertyRange__Group__2__Impl rule__PropertyRange__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9218:2: rule__PropertyRange__Group__2__Impl rule__PropertyRange__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__2__Impl_in_rule__PropertyRange__Group__218369);
+            rule__PropertyRange__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__3_in_rule__PropertyRange__Group__218372);
+            rule__PropertyRange__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__2"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9225:1: rule__PropertyRange__Group__2__Impl : ( 'minValueConstraint' ) ;
+    public final void rule__PropertyRange__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9229:1: ( ( 'minValueConstraint' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9230:1: ( 'minValueConstraint' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9230:1: ( 'minValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9231:1: 'minValueConstraint'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2()); 
+            match(input,88,FollowSets000.FOLLOW_88_in_rule__PropertyRange__Group__2__Impl18400); 
+             after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9244:1: rule__PropertyRange__Group__3 : rule__PropertyRange__Group__3__Impl rule__PropertyRange__Group__4 ;
+    public final void rule__PropertyRange__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9248:1: ( rule__PropertyRange__Group__3__Impl rule__PropertyRange__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9249:2: rule__PropertyRange__Group__3__Impl rule__PropertyRange__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__3__Impl_in_rule__PropertyRange__Group__318431);
+            rule__PropertyRange__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__4_in_rule__PropertyRange__Group__318434);
+            rule__PropertyRange__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__3"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9256:1: rule__PropertyRange__Group__3__Impl : ( ( rule__PropertyRange__MinValueConstraintAssignment_3 ) ) ;
+    public final void rule__PropertyRange__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9260:1: ( ( ( rule__PropertyRange__MinValueConstraintAssignment_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9261:1: ( ( rule__PropertyRange__MinValueConstraintAssignment_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9261:1: ( ( rule__PropertyRange__MinValueConstraintAssignment_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9262:1: ( rule__PropertyRange__MinValueConstraintAssignment_3 )
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintAssignment_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9263:1: ( rule__PropertyRange__MinValueConstraintAssignment_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9263:2: rule__PropertyRange__MinValueConstraintAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__MinValueConstraintAssignment_3_in_rule__PropertyRange__Group__3__Impl18461);
+            rule__PropertyRange__MinValueConstraintAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9273:1: rule__PropertyRange__Group__4 : rule__PropertyRange__Group__4__Impl rule__PropertyRange__Group__5 ;
+    public final void rule__PropertyRange__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9277:1: ( rule__PropertyRange__Group__4__Impl rule__PropertyRange__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9278:2: rule__PropertyRange__Group__4__Impl rule__PropertyRange__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__4__Impl_in_rule__PropertyRange__Group__418491);
+            rule__PropertyRange__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__5_in_rule__PropertyRange__Group__418494);
+            rule__PropertyRange__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__4"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9285:1: rule__PropertyRange__Group__4__Impl : ( 'maxValueConstraint' ) ;
+    public final void rule__PropertyRange__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9289:1: ( ( 'maxValueConstraint' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9290:1: ( 'maxValueConstraint' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9290:1: ( 'maxValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9291:1: 'maxValueConstraint'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4()); 
+            match(input,89,FollowSets000.FOLLOW_89_in_rule__PropertyRange__Group__4__Impl18522); 
+             after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__4__Impl"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9304:1: rule__PropertyRange__Group__5 : rule__PropertyRange__Group__5__Impl rule__PropertyRange__Group__6 ;
+    public final void rule__PropertyRange__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9308:1: ( rule__PropertyRange__Group__5__Impl rule__PropertyRange__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9309:2: rule__PropertyRange__Group__5__Impl rule__PropertyRange__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__5__Impl_in_rule__PropertyRange__Group__518553);
+            rule__PropertyRange__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__6_in_rule__PropertyRange__Group__518556);
+            rule__PropertyRange__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__5"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9316:1: rule__PropertyRange__Group__5__Impl : ( ( rule__PropertyRange__MaxValueConstraintAssignment_5 ) ) ;
+    public final void rule__PropertyRange__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9320:1: ( ( ( rule__PropertyRange__MaxValueConstraintAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9321:1: ( ( rule__PropertyRange__MaxValueConstraintAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9321:1: ( ( rule__PropertyRange__MaxValueConstraintAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9322:1: ( rule__PropertyRange__MaxValueConstraintAssignment_5 )
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9323:1: ( rule__PropertyRange__MaxValueConstraintAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9323:2: rule__PropertyRange__MaxValueConstraintAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__MaxValueConstraintAssignment_5_in_rule__PropertyRange__Group__5__Impl18583);
+            rule__PropertyRange__MaxValueConstraintAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9333:1: rule__PropertyRange__Group__6 : rule__PropertyRange__Group__6__Impl ;
+    public final void rule__PropertyRange__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9337:1: ( rule__PropertyRange__Group__6__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9338:2: rule__PropertyRange__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__6__Impl_in_rule__PropertyRange__Group__618613);
+            rule__PropertyRange__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__6"
+
+
+    // $ANTLR start "rule__PropertyRange__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9344:1: rule__PropertyRange__Group__6__Impl : ( '}' ) ;
+    public final void rule__PropertyRange__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9348:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9349:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9349:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9350:1: '}'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__PropertyRange__Group__6__Impl18641); 
+             after(grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__Group__6__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9377:1: rule__SetOfConfigurations__Group__0 : rule__SetOfConfigurations__Group__0__Impl rule__SetOfConfigurations__Group__1 ;
+    public final void rule__SetOfConfigurations__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9381:1: ( rule__SetOfConfigurations__Group__0__Impl rule__SetOfConfigurations__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9382:2: rule__SetOfConfigurations__Group__0__Impl rule__SetOfConfigurations__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__0__Impl_in_rule__SetOfConfigurations__Group__018686);
+            rule__SetOfConfigurations__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__1_in_rule__SetOfConfigurations__Group__018689);
+            rule__SetOfConfigurations__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__0"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9389:1: rule__SetOfConfigurations__Group__0__Impl : ( 'SetOfConfigurations' ) ;
+    public final void rule__SetOfConfigurations__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9393:1: ( ( 'SetOfConfigurations' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9394:1: ( 'SetOfConfigurations' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9394:1: ( 'SetOfConfigurations' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9395:1: 'SetOfConfigurations'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0()); 
+            match(input,90,FollowSets000.FOLLOW_90_in_rule__SetOfConfigurations__Group__0__Impl18717); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9408:1: rule__SetOfConfigurations__Group__1 : rule__SetOfConfigurations__Group__1__Impl rule__SetOfConfigurations__Group__2 ;
+    public final void rule__SetOfConfigurations__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9412:1: ( rule__SetOfConfigurations__Group__1__Impl rule__SetOfConfigurations__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9413:2: rule__SetOfConfigurations__Group__1__Impl rule__SetOfConfigurations__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__1__Impl_in_rule__SetOfConfigurations__Group__118748);
+            rule__SetOfConfigurations__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__2_in_rule__SetOfConfigurations__Group__118751);
+            rule__SetOfConfigurations__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__1"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9420:1: rule__SetOfConfigurations__Group__1__Impl : ( '{' ) ;
+    public final void rule__SetOfConfigurations__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9424:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9425:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9425:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9426:1: '{'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__SetOfConfigurations__Group__1__Impl18779); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__1__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9439:1: rule__SetOfConfigurations__Group__2 : rule__SetOfConfigurations__Group__2__Impl rule__SetOfConfigurations__Group__3 ;
+    public final void rule__SetOfConfigurations__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9443:1: ( rule__SetOfConfigurations__Group__2__Impl rule__SetOfConfigurations__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9444:2: rule__SetOfConfigurations__Group__2__Impl rule__SetOfConfigurations__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__2__Impl_in_rule__SetOfConfigurations__Group__218810);
+            rule__SetOfConfigurations__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__3_in_rule__SetOfConfigurations__Group__218813);
+            rule__SetOfConfigurations__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__2"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9451:1: rule__SetOfConfigurations__Group__2__Impl : ( ( rule__SetOfConfigurations__Group_2__0 )? ) ;
+    public final void rule__SetOfConfigurations__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9455:1: ( ( ( rule__SetOfConfigurations__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9456:1: ( ( rule__SetOfConfigurations__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9456:1: ( ( rule__SetOfConfigurations__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9457:1: ( rule__SetOfConfigurations__Group_2__0 )?
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9458:1: ( rule__SetOfConfigurations__Group_2__0 )?
+            int alt49=2;
+            int LA49_0 = input.LA(1);
+
+            if ( (LA49_0==92) ) {
+                alt49=1;
+            }
+            switch (alt49) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9458:2: rule__SetOfConfigurations__Group_2__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__0_in_rule__SetOfConfigurations__Group__2__Impl18840);
+                    rule__SetOfConfigurations__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__2__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9468:1: rule__SetOfConfigurations__Group__3 : rule__SetOfConfigurations__Group__3__Impl rule__SetOfConfigurations__Group__4 ;
+    public final void rule__SetOfConfigurations__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9472:1: ( rule__SetOfConfigurations__Group__3__Impl rule__SetOfConfigurations__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9473:2: rule__SetOfConfigurations__Group__3__Impl rule__SetOfConfigurations__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__3__Impl_in_rule__SetOfConfigurations__Group__318871);
+            rule__SetOfConfigurations__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__4_in_rule__SetOfConfigurations__Group__318874);
+            rule__SetOfConfigurations__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__3"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9480:1: rule__SetOfConfigurations__Group__3__Impl : ( 'valueConstraint' ) ;
+    public final void rule__SetOfConfigurations__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9484:1: ( ( 'valueConstraint' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9485:1: ( 'valueConstraint' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9485:1: ( 'valueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9486:1: 'valueConstraint'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_3()); 
+            match(input,91,FollowSets000.FOLLOW_91_in_rule__SetOfConfigurations__Group__3__Impl18902); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__3__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9499:1: rule__SetOfConfigurations__Group__4 : rule__SetOfConfigurations__Group__4__Impl rule__SetOfConfigurations__Group__5 ;
+    public final void rule__SetOfConfigurations__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9503:1: ( rule__SetOfConfigurations__Group__4__Impl rule__SetOfConfigurations__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9504:2: rule__SetOfConfigurations__Group__4__Impl rule__SetOfConfigurations__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__4__Impl_in_rule__SetOfConfigurations__Group__418933);
+            rule__SetOfConfigurations__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__5_in_rule__SetOfConfigurations__Group__418936);
+            rule__SetOfConfigurations__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__4"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9511:1: rule__SetOfConfigurations__Group__4__Impl : ( ( rule__SetOfConfigurations__ValueConstraintAssignment_4 ) ) ;
+    public final void rule__SetOfConfigurations__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9515:1: ( ( ( rule__SetOfConfigurations__ValueConstraintAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9516:1: ( ( rule__SetOfConfigurations__ValueConstraintAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9516:1: ( ( rule__SetOfConfigurations__ValueConstraintAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9517:1: ( rule__SetOfConfigurations__ValueConstraintAssignment_4 )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9518:1: ( rule__SetOfConfigurations__ValueConstraintAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9518:2: rule__SetOfConfigurations__ValueConstraintAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__ValueConstraintAssignment_4_in_rule__SetOfConfigurations__Group__4__Impl18963);
+            rule__SetOfConfigurations__ValueConstraintAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__4__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9528:1: rule__SetOfConfigurations__Group__5 : rule__SetOfConfigurations__Group__5__Impl ;
+    public final void rule__SetOfConfigurations__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9532:1: ( rule__SetOfConfigurations__Group__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9533:2: rule__SetOfConfigurations__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__5__Impl_in_rule__SetOfConfigurations__Group__518993);
+            rule__SetOfConfigurations__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__5"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9539:1: rule__SetOfConfigurations__Group__5__Impl : ( '}' ) ;
+    public final void rule__SetOfConfigurations__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9543:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9544:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9544:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9545:1: '}'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__SetOfConfigurations__Group__5__Impl19021); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group__5__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9570:1: rule__SetOfConfigurations__Group_2__0 : rule__SetOfConfigurations__Group_2__0__Impl rule__SetOfConfigurations__Group_2__1 ;
+    public final void rule__SetOfConfigurations__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9574:1: ( rule__SetOfConfigurations__Group_2__0__Impl rule__SetOfConfigurations__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9575:2: rule__SetOfConfigurations__Group_2__0__Impl rule__SetOfConfigurations__Group_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__0__Impl_in_rule__SetOfConfigurations__Group_2__019064);
+            rule__SetOfConfigurations__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__1_in_rule__SetOfConfigurations__Group_2__019067);
+            rule__SetOfConfigurations__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__0"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9582:1: rule__SetOfConfigurations__Group_2__0__Impl : ( 'variants' ) ;
+    public final void rule__SetOfConfigurations__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9586:1: ( ( 'variants' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9587:1: ( 'variants' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9587:1: ( 'variants' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9588:1: 'variants'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_2_0()); 
+            match(input,92,FollowSets000.FOLLOW_92_in_rule__SetOfConfigurations__Group_2__0__Impl19095); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9601:1: rule__SetOfConfigurations__Group_2__1 : rule__SetOfConfigurations__Group_2__1__Impl rule__SetOfConfigurations__Group_2__2 ;
+    public final void rule__SetOfConfigurations__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9605:1: ( rule__SetOfConfigurations__Group_2__1__Impl rule__SetOfConfigurations__Group_2__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9606:2: rule__SetOfConfigurations__Group_2__1__Impl rule__SetOfConfigurations__Group_2__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__1__Impl_in_rule__SetOfConfigurations__Group_2__119126);
+            rule__SetOfConfigurations__Group_2__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__2_in_rule__SetOfConfigurations__Group_2__119129);
+            rule__SetOfConfigurations__Group_2__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__1"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9613:1: rule__SetOfConfigurations__Group_2__1__Impl : ( '(' ) ;
+    public final void rule__SetOfConfigurations__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9617:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9618:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9618:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9619:1: '('
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_2_1()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__SetOfConfigurations__Group_2__1__Impl19157); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9632:1: rule__SetOfConfigurations__Group_2__2 : rule__SetOfConfigurations__Group_2__2__Impl rule__SetOfConfigurations__Group_2__3 ;
+    public final void rule__SetOfConfigurations__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9636:1: ( rule__SetOfConfigurations__Group_2__2__Impl rule__SetOfConfigurations__Group_2__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9637:2: rule__SetOfConfigurations__Group_2__2__Impl rule__SetOfConfigurations__Group_2__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__2__Impl_in_rule__SetOfConfigurations__Group_2__219188);
+            rule__SetOfConfigurations__Group_2__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__3_in_rule__SetOfConfigurations__Group_2__219191);
+            rule__SetOfConfigurations__Group_2__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__2"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9644:1: rule__SetOfConfigurations__Group_2__2__Impl : ( ( rule__SetOfConfigurations__VariantsAssignment_2_2 ) ) ;
+    public final void rule__SetOfConfigurations__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9648:1: ( ( ( rule__SetOfConfigurations__VariantsAssignment_2_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9649:1: ( ( rule__SetOfConfigurations__VariantsAssignment_2_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9649:1: ( ( rule__SetOfConfigurations__VariantsAssignment_2_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9650:1: ( rule__SetOfConfigurations__VariantsAssignment_2_2 )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9651:1: ( rule__SetOfConfigurations__VariantsAssignment_2_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9651:2: rule__SetOfConfigurations__VariantsAssignment_2_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__VariantsAssignment_2_2_in_rule__SetOfConfigurations__Group_2__2__Impl19218);
+            rule__SetOfConfigurations__VariantsAssignment_2_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9661:1: rule__SetOfConfigurations__Group_2__3 : rule__SetOfConfigurations__Group_2__3__Impl rule__SetOfConfigurations__Group_2__4 ;
+    public final void rule__SetOfConfigurations__Group_2__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9665:1: ( rule__SetOfConfigurations__Group_2__3__Impl rule__SetOfConfigurations__Group_2__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9666:2: rule__SetOfConfigurations__Group_2__3__Impl rule__SetOfConfigurations__Group_2__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__3__Impl_in_rule__SetOfConfigurations__Group_2__319248);
+            rule__SetOfConfigurations__Group_2__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__4_in_rule__SetOfConfigurations__Group_2__319251);
+            rule__SetOfConfigurations__Group_2__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__3"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9673:1: rule__SetOfConfigurations__Group_2__3__Impl : ( ( rule__SetOfConfigurations__Group_2_3__0 )* ) ;
+    public final void rule__SetOfConfigurations__Group_2__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9677:1: ( ( ( rule__SetOfConfigurations__Group_2_3__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9678:1: ( ( rule__SetOfConfigurations__Group_2_3__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9678:1: ( ( rule__SetOfConfigurations__Group_2_3__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9679:1: ( rule__SetOfConfigurations__Group_2_3__0 )*
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getGroup_2_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9680:1: ( rule__SetOfConfigurations__Group_2_3__0 )*
+            loop50:
+            do {
+                int alt50=2;
+                int LA50_0 = input.LA(1);
+
+                if ( (LA50_0==46) ) {
+                    alt50=1;
+                }
+
+
+                switch (alt50) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9680:2: rule__SetOfConfigurations__Group_2_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2_3__0_in_rule__SetOfConfigurations__Group_2__3__Impl19278);
+            	    rule__SetOfConfigurations__Group_2_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop50;
+                }
+            } while (true);
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getGroup_2_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__3__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9690:1: rule__SetOfConfigurations__Group_2__4 : rule__SetOfConfigurations__Group_2__4__Impl ;
+    public final void rule__SetOfConfigurations__Group_2__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9694:1: ( rule__SetOfConfigurations__Group_2__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9695:2: rule__SetOfConfigurations__Group_2__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2__4__Impl_in_rule__SetOfConfigurations__Group_2__419309);
+            rule__SetOfConfigurations__Group_2__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__4"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9701:1: rule__SetOfConfigurations__Group_2__4__Impl : ( ')' ) ;
+    public final void rule__SetOfConfigurations__Group_2__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9705:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9706:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9706:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9707:1: ')'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_2_4()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__SetOfConfigurations__Group_2__4__Impl19337); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_2_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2__4__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9730:1: rule__SetOfConfigurations__Group_2_3__0 : rule__SetOfConfigurations__Group_2_3__0__Impl rule__SetOfConfigurations__Group_2_3__1 ;
+    public final void rule__SetOfConfigurations__Group_2_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9734:1: ( rule__SetOfConfigurations__Group_2_3__0__Impl rule__SetOfConfigurations__Group_2_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9735:2: rule__SetOfConfigurations__Group_2_3__0__Impl rule__SetOfConfigurations__Group_2_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2_3__0__Impl_in_rule__SetOfConfigurations__Group_2_3__019378);
+            rule__SetOfConfigurations__Group_2_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2_3__1_in_rule__SetOfConfigurations__Group_2_3__019381);
+            rule__SetOfConfigurations__Group_2_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2_3__0"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9742:1: rule__SetOfConfigurations__Group_2_3__0__Impl : ( ',' ) ;
+    public final void rule__SetOfConfigurations__Group_2_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9746:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9747:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9747:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9748:1: ','
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_2_3_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__SetOfConfigurations__Group_2_3__0__Impl19409); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_2_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2_3__0__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9761:1: rule__SetOfConfigurations__Group_2_3__1 : rule__SetOfConfigurations__Group_2_3__1__Impl ;
+    public final void rule__SetOfConfigurations__Group_2_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9765:1: ( rule__SetOfConfigurations__Group_2_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9766:2: rule__SetOfConfigurations__Group_2_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_2_3__1__Impl_in_rule__SetOfConfigurations__Group_2_3__119440);
+            rule__SetOfConfigurations__Group_2_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2_3__1"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_2_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9772:1: rule__SetOfConfigurations__Group_2_3__1__Impl : ( ( rule__SetOfConfigurations__VariantsAssignment_2_3_1 ) ) ;
+    public final void rule__SetOfConfigurations__Group_2_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9776:1: ( ( ( rule__SetOfConfigurations__VariantsAssignment_2_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9777:1: ( ( rule__SetOfConfigurations__VariantsAssignment_2_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9777:1: ( ( rule__SetOfConfigurations__VariantsAssignment_2_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9778:1: ( rule__SetOfConfigurations__VariantsAssignment_2_3_1 )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9779:1: ( rule__SetOfConfigurations__VariantsAssignment_2_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9779:2: rule__SetOfConfigurations__VariantsAssignment_2_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__VariantsAssignment_2_3_1_in_rule__SetOfConfigurations__Group_2_3__1__Impl19467);
+            rule__SetOfConfigurations__VariantsAssignment_2_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_2_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_2_3__1__Impl"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9793:1: rule__OclConstraint__Group__0 : rule__OclConstraint__Group__0__Impl rule__OclConstraint__Group__1 ;
+    public final void rule__OclConstraint__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9797:1: ( rule__OclConstraint__Group__0__Impl rule__OclConstraint__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9798:2: rule__OclConstraint__Group__0__Impl rule__OclConstraint__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__0__Impl_in_rule__OclConstraint__Group__019501);
+            rule__OclConstraint__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__1_in_rule__OclConstraint__Group__019504);
+            rule__OclConstraint__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__0"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9805:1: rule__OclConstraint__Group__0__Impl : ( 'OclConstraint' ) ;
+    public final void rule__OclConstraint__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9809:1: ( ( 'OclConstraint' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9810:1: ( 'OclConstraint' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9810:1: ( 'OclConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9811:1: 'OclConstraint'
+            {
+             before(grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0()); 
+            match(input,93,FollowSets000.FOLLOW_93_in_rule__OclConstraint__Group__0__Impl19532); 
+             after(grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__0__Impl"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9824:1: rule__OclConstraint__Group__1 : rule__OclConstraint__Group__1__Impl rule__OclConstraint__Group__2 ;
+    public final void rule__OclConstraint__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9828:1: ( rule__OclConstraint__Group__1__Impl rule__OclConstraint__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9829:2: rule__OclConstraint__Group__1__Impl rule__OclConstraint__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__1__Impl_in_rule__OclConstraint__Group__119563);
+            rule__OclConstraint__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__2_in_rule__OclConstraint__Group__119566);
+            rule__OclConstraint__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__1"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9836:1: rule__OclConstraint__Group__1__Impl : ( ( rule__OclConstraint__NameAssignment_1 ) ) ;
+    public final void rule__OclConstraint__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9840:1: ( ( ( rule__OclConstraint__NameAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9841:1: ( ( rule__OclConstraint__NameAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9841:1: ( ( rule__OclConstraint__NameAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9842:1: ( rule__OclConstraint__NameAssignment_1 )
+            {
+             before(grammarAccess.getOclConstraintAccess().getNameAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9843:1: ( rule__OclConstraint__NameAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9843:2: rule__OclConstraint__NameAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__NameAssignment_1_in_rule__OclConstraint__Group__1__Impl19593);
+            rule__OclConstraint__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOclConstraintAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__1__Impl"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9853:1: rule__OclConstraint__Group__2 : rule__OclConstraint__Group__2__Impl rule__OclConstraint__Group__3 ;
+    public final void rule__OclConstraint__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9857:1: ( rule__OclConstraint__Group__2__Impl rule__OclConstraint__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9858:2: rule__OclConstraint__Group__2__Impl rule__OclConstraint__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__2__Impl_in_rule__OclConstraint__Group__219623);
+            rule__OclConstraint__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__3_in_rule__OclConstraint__Group__219626);
+            rule__OclConstraint__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__2"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9865:1: rule__OclConstraint__Group__2__Impl : ( '{' ) ;
+    public final void rule__OclConstraint__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9869:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9870:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9870:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9871:1: '{'
+            {
+             before(grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__OclConstraint__Group__2__Impl19654); 
+             after(grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__2__Impl"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9884:1: rule__OclConstraint__Group__3 : rule__OclConstraint__Group__3__Impl rule__OclConstraint__Group__4 ;
+    public final void rule__OclConstraint__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9888:1: ( rule__OclConstraint__Group__3__Impl rule__OclConstraint__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9889:2: rule__OclConstraint__Group__3__Impl rule__OclConstraint__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__3__Impl_in_rule__OclConstraint__Group__319685);
+            rule__OclConstraint__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__4_in_rule__OclConstraint__Group__319688);
+            rule__OclConstraint__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__3"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9896:1: rule__OclConstraint__Group__3__Impl : ( 'oclString' ) ;
+    public final void rule__OclConstraint__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9900:1: ( ( 'oclString' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9901:1: ( 'oclString' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9901:1: ( 'oclString' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9902:1: 'oclString'
+            {
+             before(grammarAccess.getOclConstraintAccess().getOclStringKeyword_3()); 
+            match(input,94,FollowSets000.FOLLOW_94_in_rule__OclConstraint__Group__3__Impl19716); 
+             after(grammarAccess.getOclConstraintAccess().getOclStringKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__3__Impl"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9915:1: rule__OclConstraint__Group__4 : rule__OclConstraint__Group__4__Impl rule__OclConstraint__Group__5 ;
+    public final void rule__OclConstraint__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9919:1: ( rule__OclConstraint__Group__4__Impl rule__OclConstraint__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9920:2: rule__OclConstraint__Group__4__Impl rule__OclConstraint__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__4__Impl_in_rule__OclConstraint__Group__419747);
+            rule__OclConstraint__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__5_in_rule__OclConstraint__Group__419750);
+            rule__OclConstraint__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__4"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9927:1: rule__OclConstraint__Group__4__Impl : ( ( rule__OclConstraint__OclStringAssignment_4 ) ) ;
+    public final void rule__OclConstraint__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9931:1: ( ( ( rule__OclConstraint__OclStringAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9932:1: ( ( rule__OclConstraint__OclStringAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9932:1: ( ( rule__OclConstraint__OclStringAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9933:1: ( rule__OclConstraint__OclStringAssignment_4 )
+            {
+             before(grammarAccess.getOclConstraintAccess().getOclStringAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9934:1: ( rule__OclConstraint__OclStringAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9934:2: rule__OclConstraint__OclStringAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__OclStringAssignment_4_in_rule__OclConstraint__Group__4__Impl19777);
+            rule__OclConstraint__OclStringAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getOclConstraintAccess().getOclStringAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__4__Impl"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9944:1: rule__OclConstraint__Group__5 : rule__OclConstraint__Group__5__Impl ;
+    public final void rule__OclConstraint__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9948:1: ( rule__OclConstraint__Group__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9949:2: rule__OclConstraint__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__OclConstraint__Group__5__Impl_in_rule__OclConstraint__Group__519807);
+            rule__OclConstraint__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__5"
+
+
+    // $ANTLR start "rule__OclConstraint__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9955:1: rule__OclConstraint__Group__5__Impl : ( '}' ) ;
+    public final void rule__OclConstraint__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9959:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9960:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9960:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9961:1: '}'
+            {
+             before(grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__OclConstraint__Group__5__Impl19835); 
+             after(grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9986:1: rule__Objective__Group__0 : rule__Objective__Group__0__Impl rule__Objective__Group__1 ;
+    public final void rule__Objective__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9990:1: ( rule__Objective__Group__0__Impl rule__Objective__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9991:2: rule__Objective__Group__0__Impl rule__Objective__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__0__Impl_in_rule__Objective__Group__019878);
+            rule__Objective__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__1_in_rule__Objective__Group__019881);
+            rule__Objective__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__0"
+
+
+    // $ANTLR start "rule__Objective__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:9998:1: rule__Objective__Group__0__Impl : ( ( rule__Objective__NameAssignment_0 ) ) ;
+    public final void rule__Objective__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10002:1: ( ( ( rule__Objective__NameAssignment_0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10003:1: ( ( rule__Objective__NameAssignment_0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10003:1: ( ( rule__Objective__NameAssignment_0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10004:1: ( rule__Objective__NameAssignment_0 )
+            {
+             before(grammarAccess.getObjectiveAccess().getNameAssignment_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10005:1: ( rule__Objective__NameAssignment_0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10005:2: rule__Objective__NameAssignment_0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__NameAssignment_0_in_rule__Objective__Group__0__Impl19908);
+            rule__Objective__NameAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getObjectiveAccess().getNameAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10015:1: rule__Objective__Group__1 : rule__Objective__Group__1__Impl rule__Objective__Group__2 ;
+    public final void rule__Objective__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10019:1: ( rule__Objective__Group__1__Impl rule__Objective__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10020:2: rule__Objective__Group__1__Impl rule__Objective__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__1__Impl_in_rule__Objective__Group__119938);
+            rule__Objective__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__2_in_rule__Objective__Group__119941);
+            rule__Objective__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__1"
+
+
+    // $ANTLR start "rule__Objective__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10027:1: rule__Objective__Group__1__Impl : ( ( rule__Objective__Group_1__0 )? ) ;
+    public final void rule__Objective__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10031:1: ( ( ( rule__Objective__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10032:1: ( ( rule__Objective__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10032:1: ( ( rule__Objective__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10033:1: ( rule__Objective__Group_1__0 )?
+            {
+             before(grammarAccess.getObjectiveAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10034:1: ( rule__Objective__Group_1__0 )?
+            int alt51=2;
+            int LA51_0 = input.LA(1);
+
+            if ( (LA51_0==43) ) {
+                alt51=1;
+            }
+            switch (alt51) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10034:2: rule__Objective__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_1__0_in_rule__Objective__Group__1__Impl19968);
+                    rule__Objective__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getObjectiveAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10044:1: rule__Objective__Group__2 : rule__Objective__Group__2__Impl rule__Objective__Group__3 ;
+    public final void rule__Objective__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10048:1: ( rule__Objective__Group__2__Impl rule__Objective__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10049:2: rule__Objective__Group__2__Impl rule__Objective__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__2__Impl_in_rule__Objective__Group__219999);
+            rule__Objective__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__3_in_rule__Objective__Group__220002);
+            rule__Objective__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__2"
+
+
+    // $ANTLR start "rule__Objective__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10056:1: rule__Objective__Group__2__Impl : ( '{' ) ;
+    public final void rule__Objective__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10060:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10061:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10061:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10062:1: '{'
+            {
+             before(grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__Objective__Group__2__Impl20030); 
+             after(grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10075:1: rule__Objective__Group__3 : rule__Objective__Group__3__Impl rule__Objective__Group__4 ;
+    public final void rule__Objective__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10079:1: ( rule__Objective__Group__3__Impl rule__Objective__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10080:2: rule__Objective__Group__3__Impl rule__Objective__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__3__Impl_in_rule__Objective__Group__320061);
+            rule__Objective__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__4_in_rule__Objective__Group__320064);
+            rule__Objective__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__3"
+
+
+    // $ANTLR start "rule__Objective__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10087:1: rule__Objective__Group__3__Impl : ( 'specification' ) ;
+    public final void rule__Objective__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10091:1: ( ( 'specification' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10092:1: ( 'specification' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10092:1: ( 'specification' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10093:1: 'specification'
+            {
+             before(grammarAccess.getObjectiveAccess().getSpecificationKeyword_3()); 
+            match(input,95,FollowSets000.FOLLOW_95_in_rule__Objective__Group__3__Impl20092); 
+             after(grammarAccess.getObjectiveAccess().getSpecificationKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10106:1: rule__Objective__Group__4 : rule__Objective__Group__4__Impl rule__Objective__Group__5 ;
+    public final void rule__Objective__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10110:1: ( rule__Objective__Group__4__Impl rule__Objective__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10111:2: rule__Objective__Group__4__Impl rule__Objective__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__4__Impl_in_rule__Objective__Group__420123);
+            rule__Objective__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__5_in_rule__Objective__Group__420126);
+            rule__Objective__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__4"
+
+
+    // $ANTLR start "rule__Objective__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10118:1: rule__Objective__Group__4__Impl : ( '=' ) ;
+    public final void rule__Objective__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10122:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10123:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10123:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10124:1: '='
+            {
+             before(grammarAccess.getObjectiveAccess().getEqualsSignKeyword_4()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__Objective__Group__4__Impl20154); 
+             after(grammarAccess.getObjectiveAccess().getEqualsSignKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10137:1: rule__Objective__Group__5 : rule__Objective__Group__5__Impl rule__Objective__Group__6 ;
+    public final void rule__Objective__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10141:1: ( rule__Objective__Group__5__Impl rule__Objective__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10142:2: rule__Objective__Group__5__Impl rule__Objective__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__5__Impl_in_rule__Objective__Group__520185);
+            rule__Objective__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__6_in_rule__Objective__Group__520188);
+            rule__Objective__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__5"
+
+
+    // $ANTLR start "rule__Objective__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10149:1: rule__Objective__Group__5__Impl : ( ( rule__Objective__Alternatives_5 ) ) ;
+    public final void rule__Objective__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10153:1: ( ( ( rule__Objective__Alternatives_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10154:1: ( ( rule__Objective__Alternatives_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10154:1: ( ( rule__Objective__Alternatives_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10155:1: ( rule__Objective__Alternatives_5 )
+            {
+             before(grammarAccess.getObjectiveAccess().getAlternatives_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10156:1: ( rule__Objective__Alternatives_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10156:2: rule__Objective__Alternatives_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Alternatives_5_in_rule__Objective__Group__5__Impl20215);
+            rule__Objective__Alternatives_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getObjectiveAccess().getAlternatives_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10166:1: rule__Objective__Group__6 : rule__Objective__Group__6__Impl ;
+    public final void rule__Objective__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10170:1: ( rule__Objective__Group__6__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10171:2: rule__Objective__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group__6__Impl_in_rule__Objective__Group__620245);
+            rule__Objective__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__6"
+
+
+    // $ANTLR start "rule__Objective__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10177:1: rule__Objective__Group__6__Impl : ( '}' ) ;
+    public final void rule__Objective__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10181:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10182:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10182:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10183:1: '}'
+            {
+             before(grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__Objective__Group__6__Impl20273); 
+             after(grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10210:1: rule__Objective__Group_1__0 : rule__Objective__Group_1__0__Impl rule__Objective__Group_1__1 ;
+    public final void rule__Objective__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10214:1: ( rule__Objective__Group_1__0__Impl rule__Objective__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10215:2: rule__Objective__Group_1__0__Impl rule__Objective__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_1__0__Impl_in_rule__Objective__Group_1__020318);
+            rule__Objective__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_1__1_in_rule__Objective__Group_1__020321);
+            rule__Objective__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_1__0"
+
+
+    // $ANTLR start "rule__Objective__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10222:1: rule__Objective__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__Objective__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10226:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10227:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10227:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10228:1: '[id:'
+            {
+             before(grammarAccess.getObjectiveAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__Objective__Group_1__0__Impl20349); 
+             after(grammarAccess.getObjectiveAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10241:1: rule__Objective__Group_1__1 : rule__Objective__Group_1__1__Impl rule__Objective__Group_1__2 ;
+    public final void rule__Objective__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10245:1: ( rule__Objective__Group_1__1__Impl rule__Objective__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10246:2: rule__Objective__Group_1__1__Impl rule__Objective__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_1__1__Impl_in_rule__Objective__Group_1__120380);
+            rule__Objective__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_1__2_in_rule__Objective__Group_1__120383);
+            rule__Objective__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_1__1"
+
+
+    // $ANTLR start "rule__Objective__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10253:1: rule__Objective__Group_1__1__Impl : ( ( rule__Objective__IdAssignment_1_1 ) ) ;
+    public final void rule__Objective__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10257:1: ( ( ( rule__Objective__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10258:1: ( ( rule__Objective__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10258:1: ( ( rule__Objective__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10259:1: ( rule__Objective__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getObjectiveAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10260:1: ( rule__Objective__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10260:2: rule__Objective__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__IdAssignment_1_1_in_rule__Objective__Group_1__1__Impl20410);
+            rule__Objective__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getObjectiveAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10270:1: rule__Objective__Group_1__2 : rule__Objective__Group_1__2__Impl ;
+    public final void rule__Objective__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10274:1: ( rule__Objective__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10275:2: rule__Objective__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_1__2__Impl_in_rule__Objective__Group_1__220440);
+            rule__Objective__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_1__2"
+
+
+    // $ANTLR start "rule__Objective__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10281:1: rule__Objective__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__Objective__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10285:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10286:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10286:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10287:1: ']'
+            {
+             before(grammarAccess.getObjectiveAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__Objective__Group_1__2__Impl20468); 
+             after(grammarAccess.getObjectiveAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10306:1: rule__Objective__Group_5_1__0 : rule__Objective__Group_5_1__0__Impl rule__Objective__Group_5_1__1 ;
+    public final void rule__Objective__Group_5_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10310:1: ( rule__Objective__Group_5_1__0__Impl rule__Objective__Group_5_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10311:2: rule__Objective__Group_5_1__0__Impl rule__Objective__Group_5_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1__0__Impl_in_rule__Objective__Group_5_1__020505);
+            rule__Objective__Group_5_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1__1_in_rule__Objective__Group_5_1__020508);
+            rule__Objective__Group_5_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1__0"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10318:1: rule__Objective__Group_5_1__0__Impl : ( '(' ) ;
+    public final void rule__Objective__Group_5_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10322:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10323:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10323:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10324:1: '('
+            {
+             before(grammarAccess.getObjectiveAccess().getLeftParenthesisKeyword_5_1_0()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__Objective__Group_5_1__0__Impl20536); 
+             after(grammarAccess.getObjectiveAccess().getLeftParenthesisKeyword_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1__0__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10337:1: rule__Objective__Group_5_1__1 : rule__Objective__Group_5_1__1__Impl rule__Objective__Group_5_1__2 ;
+    public final void rule__Objective__Group_5_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10341:1: ( rule__Objective__Group_5_1__1__Impl rule__Objective__Group_5_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10342:2: rule__Objective__Group_5_1__1__Impl rule__Objective__Group_5_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1__1__Impl_in_rule__Objective__Group_5_1__120567);
+            rule__Objective__Group_5_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1__2_in_rule__Objective__Group_5_1__120570);
+            rule__Objective__Group_5_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1__1"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10349:1: rule__Objective__Group_5_1__1__Impl : ( ( rule__Objective__SpecificationsAssignment_5_1_1 ) ) ;
+    public final void rule__Objective__Group_5_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10353:1: ( ( ( rule__Objective__SpecificationsAssignment_5_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10354:1: ( ( rule__Objective__SpecificationsAssignment_5_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10354:1: ( ( rule__Objective__SpecificationsAssignment_5_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10355:1: ( rule__Objective__SpecificationsAssignment_5_1_1 )
+            {
+             before(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10356:1: ( rule__Objective__SpecificationsAssignment_5_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10356:2: rule__Objective__SpecificationsAssignment_5_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__SpecificationsAssignment_5_1_1_in_rule__Objective__Group_5_1__1__Impl20597);
+            rule__Objective__SpecificationsAssignment_5_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1__1__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10366:1: rule__Objective__Group_5_1__2 : rule__Objective__Group_5_1__2__Impl rule__Objective__Group_5_1__3 ;
+    public final void rule__Objective__Group_5_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10370:1: ( rule__Objective__Group_5_1__2__Impl rule__Objective__Group_5_1__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10371:2: rule__Objective__Group_5_1__2__Impl rule__Objective__Group_5_1__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1__2__Impl_in_rule__Objective__Group_5_1__220627);
+            rule__Objective__Group_5_1__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1__3_in_rule__Objective__Group_5_1__220630);
+            rule__Objective__Group_5_1__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1__2"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10378:1: rule__Objective__Group_5_1__2__Impl : ( ( rule__Objective__Group_5_1_2__0 )* ) ;
+    public final void rule__Objective__Group_5_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10382:1: ( ( ( rule__Objective__Group_5_1_2__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10383:1: ( ( rule__Objective__Group_5_1_2__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10383:1: ( ( rule__Objective__Group_5_1_2__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10384:1: ( rule__Objective__Group_5_1_2__0 )*
+            {
+             before(grammarAccess.getObjectiveAccess().getGroup_5_1_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10385:1: ( rule__Objective__Group_5_1_2__0 )*
+            loop52:
+            do {
+                int alt52=2;
+                int LA52_0 = input.LA(1);
+
+                if ( (LA52_0==46) ) {
+                    alt52=1;
+                }
+
+
+                switch (alt52) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10385:2: rule__Objective__Group_5_1_2__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1_2__0_in_rule__Objective__Group_5_1__2__Impl20657);
+            	    rule__Objective__Group_5_1_2__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop52;
+                }
+            } while (true);
+
+             after(grammarAccess.getObjectiveAccess().getGroup_5_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1__2__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10395:1: rule__Objective__Group_5_1__3 : rule__Objective__Group_5_1__3__Impl ;
+    public final void rule__Objective__Group_5_1__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10399:1: ( rule__Objective__Group_5_1__3__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10400:2: rule__Objective__Group_5_1__3__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1__3__Impl_in_rule__Objective__Group_5_1__320688);
+            rule__Objective__Group_5_1__3__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1__3"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10406:1: rule__Objective__Group_5_1__3__Impl : ( ')' ) ;
+    public final void rule__Objective__Group_5_1__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10410:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10411:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10411:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10412:1: ')'
+            {
+             before(grammarAccess.getObjectiveAccess().getRightParenthesisKeyword_5_1_3()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__Objective__Group_5_1__3__Impl20716); 
+             after(grammarAccess.getObjectiveAccess().getRightParenthesisKeyword_5_1_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1__3__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10433:1: rule__Objective__Group_5_1_2__0 : rule__Objective__Group_5_1_2__0__Impl rule__Objective__Group_5_1_2__1 ;
+    public final void rule__Objective__Group_5_1_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10437:1: ( rule__Objective__Group_5_1_2__0__Impl rule__Objective__Group_5_1_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10438:2: rule__Objective__Group_5_1_2__0__Impl rule__Objective__Group_5_1_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1_2__0__Impl_in_rule__Objective__Group_5_1_2__020755);
+            rule__Objective__Group_5_1_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1_2__1_in_rule__Objective__Group_5_1_2__020758);
+            rule__Objective__Group_5_1_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1_2__0"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10445:1: rule__Objective__Group_5_1_2__0__Impl : ( ',' ) ;
+    public final void rule__Objective__Group_5_1_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10449:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10450:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10450:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10451:1: ','
+            {
+             before(grammarAccess.getObjectiveAccess().getCommaKeyword_5_1_2_0()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__Objective__Group_5_1_2__0__Impl20786); 
+             after(grammarAccess.getObjectiveAccess().getCommaKeyword_5_1_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1_2__0__Impl"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10464:1: rule__Objective__Group_5_1_2__1 : rule__Objective__Group_5_1_2__1__Impl ;
+    public final void rule__Objective__Group_5_1_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10468:1: ( rule__Objective__Group_5_1_2__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10469:2: rule__Objective__Group_5_1_2__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__Group_5_1_2__1__Impl_in_rule__Objective__Group_5_1_2__120817);
+            rule__Objective__Group_5_1_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1_2__1"
+
+
+    // $ANTLR start "rule__Objective__Group_5_1_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10475:1: rule__Objective__Group_5_1_2__1__Impl : ( ( rule__Objective__SpecificationsAssignment_5_1_2_1 ) ) ;
+    public final void rule__Objective__Group_5_1_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10479:1: ( ( ( rule__Objective__SpecificationsAssignment_5_1_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10480:1: ( ( rule__Objective__SpecificationsAssignment_5_1_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10480:1: ( ( rule__Objective__SpecificationsAssignment_5_1_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10481:1: ( rule__Objective__SpecificationsAssignment_5_1_2_1 )
+            {
+             before(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10482:1: ( rule__Objective__SpecificationsAssignment_5_1_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10482:2: rule__Objective__SpecificationsAssignment_5_1_2_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Objective__SpecificationsAssignment_5_1_2_1_in_rule__Objective__Group_5_1_2__1__Impl20844);
+            rule__Objective__SpecificationsAssignment_5_1_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getObjectiveAccess().getSpecificationsAssignment_5_1_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__Group_5_1_2__1__Impl"
+
+
+    // $ANTLR start "rule__Event__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10496:1: rule__Event__Group__0 : rule__Event__Group__0__Impl rule__Event__Group__1 ;
+    public final void rule__Event__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10500:1: ( rule__Event__Group__0__Impl rule__Event__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10501:2: rule__Event__Group__0__Impl rule__Event__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group__0__Impl_in_rule__Event__Group__020878);
+            rule__Event__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group__1_in_rule__Event__Group__020881);
+            rule__Event__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group__0"
+
+
+    // $ANTLR start "rule__Event__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10508:1: rule__Event__Group__0__Impl : ( ( rule__Event__NameAssignment_0 ) ) ;
+    public final void rule__Event__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10512:1: ( ( ( rule__Event__NameAssignment_0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10513:1: ( ( rule__Event__NameAssignment_0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10513:1: ( ( rule__Event__NameAssignment_0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10514:1: ( rule__Event__NameAssignment_0 )
+            {
+             before(grammarAccess.getEventAccess().getNameAssignment_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10515:1: ( rule__Event__NameAssignment_0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10515:2: rule__Event__NameAssignment_0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__NameAssignment_0_in_rule__Event__Group__0__Impl20908);
+            rule__Event__NameAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEventAccess().getNameAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Event__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10525:1: rule__Event__Group__1 : rule__Event__Group__1__Impl ;
+    public final void rule__Event__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10529:1: ( rule__Event__Group__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10530:2: rule__Event__Group__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group__1__Impl_in_rule__Event__Group__120938);
+            rule__Event__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group__1"
+
+
+    // $ANTLR start "rule__Event__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10536:1: rule__Event__Group__1__Impl : ( ( rule__Event__Group_1__0 )? ) ;
+    public final void rule__Event__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10540:1: ( ( ( rule__Event__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10541:1: ( ( rule__Event__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10541:1: ( ( rule__Event__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10542:1: ( rule__Event__Group_1__0 )?
+            {
+             before(grammarAccess.getEventAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10543:1: ( rule__Event__Group_1__0 )?
+            int alt53=2;
+            int LA53_0 = input.LA(1);
+
+            if ( (LA53_0==43) ) {
+                alt53=1;
+            }
+            switch (alt53) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10543:2: rule__Event__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Event__Group_1__0_in_rule__Event__Group__1__Impl20965);
+                    rule__Event__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEventAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Event__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10557:1: rule__Event__Group_1__0 : rule__Event__Group_1__0__Impl rule__Event__Group_1__1 ;
+    public final void rule__Event__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10561:1: ( rule__Event__Group_1__0__Impl rule__Event__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10562:2: rule__Event__Group_1__0__Impl rule__Event__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group_1__0__Impl_in_rule__Event__Group_1__021000);
+            rule__Event__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group_1__1_in_rule__Event__Group_1__021003);
+            rule__Event__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group_1__0"
+
+
+    // $ANTLR start "rule__Event__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10569:1: rule__Event__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__Event__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10573:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10574:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10574:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10575:1: '[id:'
+            {
+             before(grammarAccess.getEventAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__Event__Group_1__0__Impl21031); 
+             after(grammarAccess.getEventAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__Event__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10588:1: rule__Event__Group_1__1 : rule__Event__Group_1__1__Impl rule__Event__Group_1__2 ;
+    public final void rule__Event__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10592:1: ( rule__Event__Group_1__1__Impl rule__Event__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10593:2: rule__Event__Group_1__1__Impl rule__Event__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group_1__1__Impl_in_rule__Event__Group_1__121062);
+            rule__Event__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group_1__2_in_rule__Event__Group_1__121065);
+            rule__Event__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group_1__1"
+
+
+    // $ANTLR start "rule__Event__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10600:1: rule__Event__Group_1__1__Impl : ( ( rule__Event__IdAssignment_1_1 ) ) ;
+    public final void rule__Event__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10604:1: ( ( ( rule__Event__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10605:1: ( ( rule__Event__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10605:1: ( ( rule__Event__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10606:1: ( rule__Event__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getEventAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10607:1: ( rule__Event__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10607:2: rule__Event__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__IdAssignment_1_1_in_rule__Event__Group_1__1__Impl21092);
+            rule__Event__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEventAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__Event__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10617:1: rule__Event__Group_1__2 : rule__Event__Group_1__2__Impl ;
+    public final void rule__Event__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10621:1: ( rule__Event__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10622:2: rule__Event__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group_1__2__Impl_in_rule__Event__Group_1__221122);
+            rule__Event__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group_1__2"
+
+
+    // $ANTLR start "rule__Event__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10628:1: rule__Event__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__Event__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10632:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10633:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10633:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10634:1: ']'
+            {
+             before(grammarAccess.getEventAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__Event__Group_1__2__Impl21150); 
+             after(grammarAccess.getEventAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10653:1: rule__WeightedTactic__Group__0 : rule__WeightedTactic__Group__0__Impl rule__WeightedTactic__Group__1 ;
+    public final void rule__WeightedTactic__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10657:1: ( rule__WeightedTactic__Group__0__Impl rule__WeightedTactic__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10658:2: rule__WeightedTactic__Group__0__Impl rule__WeightedTactic__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__0__Impl_in_rule__WeightedTactic__Group__021187);
+            rule__WeightedTactic__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__1_in_rule__WeightedTactic__Group__021190);
+            rule__WeightedTactic__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__0"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10665:1: rule__WeightedTactic__Group__0__Impl : ( ( rule__WeightedTactic__NameAssignment_0 ) ) ;
+    public final void rule__WeightedTactic__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10669:1: ( ( ( rule__WeightedTactic__NameAssignment_0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10670:1: ( ( rule__WeightedTactic__NameAssignment_0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10670:1: ( ( rule__WeightedTactic__NameAssignment_0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10671:1: ( rule__WeightedTactic__NameAssignment_0 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getNameAssignment_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10672:1: ( rule__WeightedTactic__NameAssignment_0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10672:2: rule__WeightedTactic__NameAssignment_0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__NameAssignment_0_in_rule__WeightedTactic__Group__0__Impl21217);
+            rule__WeightedTactic__NameAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getNameAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10682:1: rule__WeightedTactic__Group__1 : rule__WeightedTactic__Group__1__Impl rule__WeightedTactic__Group__2 ;
+    public final void rule__WeightedTactic__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10686:1: ( rule__WeightedTactic__Group__1__Impl rule__WeightedTactic__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10687:2: rule__WeightedTactic__Group__1__Impl rule__WeightedTactic__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__1__Impl_in_rule__WeightedTactic__Group__121247);
+            rule__WeightedTactic__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__2_in_rule__WeightedTactic__Group__121250);
+            rule__WeightedTactic__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__1"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10694:1: rule__WeightedTactic__Group__1__Impl : ( ( rule__WeightedTactic__Group_1__0 )? ) ;
+    public final void rule__WeightedTactic__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10698:1: ( ( ( rule__WeightedTactic__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10699:1: ( ( rule__WeightedTactic__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10699:1: ( ( rule__WeightedTactic__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10700:1: ( rule__WeightedTactic__Group_1__0 )?
+            {
+             before(grammarAccess.getWeightedTacticAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10701:1: ( rule__WeightedTactic__Group_1__0 )?
+            int alt54=2;
+            int LA54_0 = input.LA(1);
+
+            if ( (LA54_0==43) ) {
+                alt54=1;
+            }
+            switch (alt54) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10701:2: rule__WeightedTactic__Group_1__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_1__0_in_rule__WeightedTactic__Group__1__Impl21277);
+                    rule__WeightedTactic__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10711:1: rule__WeightedTactic__Group__2 : rule__WeightedTactic__Group__2__Impl rule__WeightedTactic__Group__3 ;
+    public final void rule__WeightedTactic__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10715:1: ( rule__WeightedTactic__Group__2__Impl rule__WeightedTactic__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10716:2: rule__WeightedTactic__Group__2__Impl rule__WeightedTactic__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__2__Impl_in_rule__WeightedTactic__Group__221308);
+            rule__WeightedTactic__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__3_in_rule__WeightedTactic__Group__221311);
+            rule__WeightedTactic__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__2"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10723:1: rule__WeightedTactic__Group__2__Impl : ( '=' ) ;
+    public final void rule__WeightedTactic__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10727:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10728:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10728:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10729:1: '='
+            {
+             before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_2()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__WeightedTactic__Group__2__Impl21339); 
+             after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__2__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10742:1: rule__WeightedTactic__Group__3 : rule__WeightedTactic__Group__3__Impl rule__WeightedTactic__Group__4 ;
+    public final void rule__WeightedTactic__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10746:1: ( rule__WeightedTactic__Group__3__Impl rule__WeightedTactic__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10747:2: rule__WeightedTactic__Group__3__Impl rule__WeightedTactic__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__3__Impl_in_rule__WeightedTactic__Group__321370);
+            rule__WeightedTactic__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__4_in_rule__WeightedTactic__Group__321373);
+            rule__WeightedTactic__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__3"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10754:1: rule__WeightedTactic__Group__3__Impl : ( '(' ) ;
+    public final void rule__WeightedTactic__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10758:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10759:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10759:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10760:1: '('
+            {
+             before(grammarAccess.getWeightedTacticAccess().getLeftParenthesisKeyword_3()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__WeightedTactic__Group__3__Impl21401); 
+             after(grammarAccess.getWeightedTacticAccess().getLeftParenthesisKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__3__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10773:1: rule__WeightedTactic__Group__4 : rule__WeightedTactic__Group__4__Impl rule__WeightedTactic__Group__5 ;
+    public final void rule__WeightedTactic__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10777:1: ( rule__WeightedTactic__Group__4__Impl rule__WeightedTactic__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10778:2: rule__WeightedTactic__Group__4__Impl rule__WeightedTactic__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__4__Impl_in_rule__WeightedTactic__Group__421432);
+            rule__WeightedTactic__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__5_in_rule__WeightedTactic__Group__421435);
+            rule__WeightedTactic__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__4"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10785:1: rule__WeightedTactic__Group__4__Impl : ( ( rule__WeightedTactic__Group_4__0 )? ) ;
+    public final void rule__WeightedTactic__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10789:1: ( ( ( rule__WeightedTactic__Group_4__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10790:1: ( ( rule__WeightedTactic__Group_4__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10790:1: ( ( rule__WeightedTactic__Group_4__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10791:1: ( rule__WeightedTactic__Group_4__0 )?
+            {
+             before(grammarAccess.getWeightedTacticAccess().getGroup_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10792:1: ( rule__WeightedTactic__Group_4__0 )?
+            int alt55=2;
+            int LA55_0 = input.LA(1);
+
+            if ( (LA55_0==96) ) {
+                alt55=1;
+            }
+            switch (alt55) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10792:2: rule__WeightedTactic__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_4__0_in_rule__WeightedTactic__Group__4__Impl21462);
+                    rule__WeightedTactic__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__4__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10802:1: rule__WeightedTactic__Group__5 : rule__WeightedTactic__Group__5__Impl rule__WeightedTactic__Group__6 ;
+    public final void rule__WeightedTactic__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10806:1: ( rule__WeightedTactic__Group__5__Impl rule__WeightedTactic__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10807:2: rule__WeightedTactic__Group__5__Impl rule__WeightedTactic__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__5__Impl_in_rule__WeightedTactic__Group__521493);
+            rule__WeightedTactic__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__6_in_rule__WeightedTactic__Group__521496);
+            rule__WeightedTactic__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__5"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10814:1: rule__WeightedTactic__Group__5__Impl : ( ( rule__WeightedTactic__UsedTacticAssignment_5 ) ) ;
+    public final void rule__WeightedTactic__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10818:1: ( ( ( rule__WeightedTactic__UsedTacticAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10819:1: ( ( rule__WeightedTactic__UsedTacticAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10819:1: ( ( rule__WeightedTactic__UsedTacticAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10820:1: ( rule__WeightedTactic__UsedTacticAssignment_5 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getUsedTacticAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10821:1: ( rule__WeightedTactic__UsedTacticAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10821:2: rule__WeightedTactic__UsedTacticAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__UsedTacticAssignment_5_in_rule__WeightedTactic__Group__5__Impl21523);
+            rule__WeightedTactic__UsedTacticAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getUsedTacticAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__5__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10831:1: rule__WeightedTactic__Group__6 : rule__WeightedTactic__Group__6__Impl rule__WeightedTactic__Group__7 ;
+    public final void rule__WeightedTactic__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10835:1: ( rule__WeightedTactic__Group__6__Impl rule__WeightedTactic__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10836:2: rule__WeightedTactic__Group__6__Impl rule__WeightedTactic__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__6__Impl_in_rule__WeightedTactic__Group__621553);
+            rule__WeightedTactic__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__7_in_rule__WeightedTactic__Group__621556);
+            rule__WeightedTactic__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__6"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10843:1: rule__WeightedTactic__Group__6__Impl : ( ',' ) ;
+    public final void rule__WeightedTactic__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10847:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10848:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10848:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10849:1: ','
+            {
+             before(grammarAccess.getWeightedTacticAccess().getCommaKeyword_6()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__WeightedTactic__Group__6__Impl21584); 
+             after(grammarAccess.getWeightedTacticAccess().getCommaKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__6__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10862:1: rule__WeightedTactic__Group__7 : rule__WeightedTactic__Group__7__Impl rule__WeightedTactic__Group__8 ;
+    public final void rule__WeightedTactic__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10866:1: ( rule__WeightedTactic__Group__7__Impl rule__WeightedTactic__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10867:2: rule__WeightedTactic__Group__7__Impl rule__WeightedTactic__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__7__Impl_in_rule__WeightedTactic__Group__721615);
+            rule__WeightedTactic__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__8_in_rule__WeightedTactic__Group__721618);
+            rule__WeightedTactic__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__7"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10874:1: rule__WeightedTactic__Group__7__Impl : ( ( rule__WeightedTactic__Group_7__0 )? ) ;
+    public final void rule__WeightedTactic__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10878:1: ( ( ( rule__WeightedTactic__Group_7__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10879:1: ( ( rule__WeightedTactic__Group_7__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10879:1: ( ( rule__WeightedTactic__Group_7__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10880:1: ( rule__WeightedTactic__Group_7__0 )?
+            {
+             before(grammarAccess.getWeightedTacticAccess().getGroup_7()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10881:1: ( rule__WeightedTactic__Group_7__0 )?
+            int alt56=2;
+            int LA56_0 = input.LA(1);
+
+            if ( (LA56_0==97) ) {
+                alt56=1;
+            }
+            switch (alt56) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10881:2: rule__WeightedTactic__Group_7__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_7__0_in_rule__WeightedTactic__Group__7__Impl21645);
+                    rule__WeightedTactic__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__7__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10891:1: rule__WeightedTactic__Group__8 : rule__WeightedTactic__Group__8__Impl rule__WeightedTactic__Group__9 ;
+    public final void rule__WeightedTactic__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10895:1: ( rule__WeightedTactic__Group__8__Impl rule__WeightedTactic__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10896:2: rule__WeightedTactic__Group__8__Impl rule__WeightedTactic__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__8__Impl_in_rule__WeightedTactic__Group__821676);
+            rule__WeightedTactic__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__9_in_rule__WeightedTactic__Group__821679);
+            rule__WeightedTactic__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__8"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10903:1: rule__WeightedTactic__Group__8__Impl : ( ( rule__WeightedTactic__DefaultWeightAssignment_8 ) ) ;
+    public final void rule__WeightedTactic__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10907:1: ( ( ( rule__WeightedTactic__DefaultWeightAssignment_8 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10908:1: ( ( rule__WeightedTactic__DefaultWeightAssignment_8 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10908:1: ( ( rule__WeightedTactic__DefaultWeightAssignment_8 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10909:1: ( rule__WeightedTactic__DefaultWeightAssignment_8 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10910:1: ( rule__WeightedTactic__DefaultWeightAssignment_8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10910:2: rule__WeightedTactic__DefaultWeightAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__DefaultWeightAssignment_8_in_rule__WeightedTactic__Group__8__Impl21706);
+            rule__WeightedTactic__DefaultWeightAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__8__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10920:1: rule__WeightedTactic__Group__9 : rule__WeightedTactic__Group__9__Impl rule__WeightedTactic__Group__10 ;
+    public final void rule__WeightedTactic__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10924:1: ( rule__WeightedTactic__Group__9__Impl rule__WeightedTactic__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10925:2: rule__WeightedTactic__Group__9__Impl rule__WeightedTactic__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__9__Impl_in_rule__WeightedTactic__Group__921736);
+            rule__WeightedTactic__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__10_in_rule__WeightedTactic__Group__921739);
+            rule__WeightedTactic__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__9"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10932:1: rule__WeightedTactic__Group__9__Impl : ( ',' ) ;
+    public final void rule__WeightedTactic__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10936:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10937:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10937:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10938:1: ','
+            {
+             before(grammarAccess.getWeightedTacticAccess().getCommaKeyword_9()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__WeightedTactic__Group__9__Impl21767); 
+             after(grammarAccess.getWeightedTacticAccess().getCommaKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__9__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10951:1: rule__WeightedTactic__Group__10 : rule__WeightedTactic__Group__10__Impl rule__WeightedTactic__Group__11 ;
+    public final void rule__WeightedTactic__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10955:1: ( rule__WeightedTactic__Group__10__Impl rule__WeightedTactic__Group__11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10956:2: rule__WeightedTactic__Group__10__Impl rule__WeightedTactic__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__10__Impl_in_rule__WeightedTactic__Group__1021798);
+            rule__WeightedTactic__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__11_in_rule__WeightedTactic__Group__1021801);
+            rule__WeightedTactic__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__10"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10963:1: rule__WeightedTactic__Group__10__Impl : ( ( rule__WeightedTactic__Group_10__0 )? ) ;
+    public final void rule__WeightedTactic__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10967:1: ( ( ( rule__WeightedTactic__Group_10__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10968:1: ( ( rule__WeightedTactic__Group_10__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10968:1: ( ( rule__WeightedTactic__Group_10__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10969:1: ( rule__WeightedTactic__Group_10__0 )?
+            {
+             before(grammarAccess.getWeightedTacticAccess().getGroup_10()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10970:1: ( rule__WeightedTactic__Group_10__0 )?
+            int alt57=2;
+            int LA57_0 = input.LA(1);
+
+            if ( (LA57_0==98) ) {
+                alt57=1;
+            }
+            switch (alt57) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10970:2: rule__WeightedTactic__Group_10__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_10__0_in_rule__WeightedTactic__Group__10__Impl21828);
+                    rule__WeightedTactic__Group_10__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getGroup_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__10__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10980:1: rule__WeightedTactic__Group__11 : rule__WeightedTactic__Group__11__Impl rule__WeightedTactic__Group__12 ;
+    public final void rule__WeightedTactic__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10984:1: ( rule__WeightedTactic__Group__11__Impl rule__WeightedTactic__Group__12 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10985:2: rule__WeightedTactic__Group__11__Impl rule__WeightedTactic__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__11__Impl_in_rule__WeightedTactic__Group__1121859);
+            rule__WeightedTactic__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__12_in_rule__WeightedTactic__Group__1121862);
+            rule__WeightedTactic__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__11"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__11__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10992:1: rule__WeightedTactic__Group__11__Impl : ( ( rule__WeightedTactic__CurrentWeightAssignment_11 ) ) ;
+    public final void rule__WeightedTactic__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10996:1: ( ( ( rule__WeightedTactic__CurrentWeightAssignment_11 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10997:1: ( ( rule__WeightedTactic__CurrentWeightAssignment_11 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10997:1: ( ( rule__WeightedTactic__CurrentWeightAssignment_11 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10998:1: ( rule__WeightedTactic__CurrentWeightAssignment_11 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_11()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10999:1: ( rule__WeightedTactic__CurrentWeightAssignment_11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:10999:2: rule__WeightedTactic__CurrentWeightAssignment_11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__CurrentWeightAssignment_11_in_rule__WeightedTactic__Group__11__Impl21889);
+            rule__WeightedTactic__CurrentWeightAssignment_11();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__11__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__12"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11009:1: rule__WeightedTactic__Group__12 : rule__WeightedTactic__Group__12__Impl rule__WeightedTactic__Group__13 ;
+    public final void rule__WeightedTactic__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11013:1: ( rule__WeightedTactic__Group__12__Impl rule__WeightedTactic__Group__13 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11014:2: rule__WeightedTactic__Group__12__Impl rule__WeightedTactic__Group__13
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__12__Impl_in_rule__WeightedTactic__Group__1221919);
+            rule__WeightedTactic__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__13_in_rule__WeightedTactic__Group__1221922);
+            rule__WeightedTactic__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__12"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__12__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11021:1: rule__WeightedTactic__Group__12__Impl : ( ( rule__WeightedTactic__Group_12__0 )? ) ;
+    public final void rule__WeightedTactic__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11025:1: ( ( ( rule__WeightedTactic__Group_12__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11026:1: ( ( rule__WeightedTactic__Group_12__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11026:1: ( ( rule__WeightedTactic__Group_12__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11027:1: ( rule__WeightedTactic__Group_12__0 )?
+            {
+             before(grammarAccess.getWeightedTacticAccess().getGroup_12()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11028:1: ( rule__WeightedTactic__Group_12__0 )?
+            int alt58=2;
+            int LA58_0 = input.LA(1);
+
+            if ( (LA58_0==46) ) {
+                alt58=1;
+            }
+            switch (alt58) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11028:2: rule__WeightedTactic__Group_12__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_12__0_in_rule__WeightedTactic__Group__12__Impl21949);
+                    rule__WeightedTactic__Group_12__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getGroup_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__12__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__13"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11038:1: rule__WeightedTactic__Group__13 : rule__WeightedTactic__Group__13__Impl ;
+    public final void rule__WeightedTactic__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11042:1: ( rule__WeightedTactic__Group__13__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11043:2: rule__WeightedTactic__Group__13__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__13__Impl_in_rule__WeightedTactic__Group__1321980);
+            rule__WeightedTactic__Group__13__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__13"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__13__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11049:1: rule__WeightedTactic__Group__13__Impl : ( ')' ) ;
+    public final void rule__WeightedTactic__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11053:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11054:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11054:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11055:1: ')'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getRightParenthesisKeyword_13()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__WeightedTactic__Group__13__Impl22008); 
+             after(grammarAccess.getWeightedTacticAccess().getRightParenthesisKeyword_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__13__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11096:1: rule__WeightedTactic__Group_1__0 : rule__WeightedTactic__Group_1__0__Impl rule__WeightedTactic__Group_1__1 ;
+    public final void rule__WeightedTactic__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11100:1: ( rule__WeightedTactic__Group_1__0__Impl rule__WeightedTactic__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11101:2: rule__WeightedTactic__Group_1__0__Impl rule__WeightedTactic__Group_1__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_1__0__Impl_in_rule__WeightedTactic__Group_1__022067);
+            rule__WeightedTactic__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_1__1_in_rule__WeightedTactic__Group_1__022070);
+            rule__WeightedTactic__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_1__0"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11108:1: rule__WeightedTactic__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__WeightedTactic__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11112:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11113:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11113:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11114:1: '[id:'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__WeightedTactic__Group_1__0__Impl22098); 
+             after(grammarAccess.getWeightedTacticAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11127:1: rule__WeightedTactic__Group_1__1 : rule__WeightedTactic__Group_1__1__Impl rule__WeightedTactic__Group_1__2 ;
+    public final void rule__WeightedTactic__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11131:1: ( rule__WeightedTactic__Group_1__1__Impl rule__WeightedTactic__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11132:2: rule__WeightedTactic__Group_1__1__Impl rule__WeightedTactic__Group_1__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_1__1__Impl_in_rule__WeightedTactic__Group_1__122129);
+            rule__WeightedTactic__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_1__2_in_rule__WeightedTactic__Group_1__122132);
+            rule__WeightedTactic__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_1__1"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11139:1: rule__WeightedTactic__Group_1__1__Impl : ( ( rule__WeightedTactic__IdAssignment_1_1 ) ) ;
+    public final void rule__WeightedTactic__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11143:1: ( ( ( rule__WeightedTactic__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11144:1: ( ( rule__WeightedTactic__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11144:1: ( ( rule__WeightedTactic__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11145:1: ( rule__WeightedTactic__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11146:1: ( rule__WeightedTactic__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11146:2: rule__WeightedTactic__IdAssignment_1_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__IdAssignment_1_1_in_rule__WeightedTactic__Group_1__1__Impl22159);
+            rule__WeightedTactic__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11156:1: rule__WeightedTactic__Group_1__2 : rule__WeightedTactic__Group_1__2__Impl ;
+    public final void rule__WeightedTactic__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11160:1: ( rule__WeightedTactic__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11161:2: rule__WeightedTactic__Group_1__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_1__2__Impl_in_rule__WeightedTactic__Group_1__222189);
+            rule__WeightedTactic__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_1__2"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11167:1: rule__WeightedTactic__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__WeightedTactic__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11171:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11172:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11172:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11173:1: ']'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__WeightedTactic__Group_1__2__Impl22217); 
+             after(grammarAccess.getWeightedTacticAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11192:1: rule__WeightedTactic__Group_4__0 : rule__WeightedTactic__Group_4__0__Impl rule__WeightedTactic__Group_4__1 ;
+    public final void rule__WeightedTactic__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11196:1: ( rule__WeightedTactic__Group_4__0__Impl rule__WeightedTactic__Group_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11197:2: rule__WeightedTactic__Group_4__0__Impl rule__WeightedTactic__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_4__0__Impl_in_rule__WeightedTactic__Group_4__022254);
+            rule__WeightedTactic__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_4__1_in_rule__WeightedTactic__Group_4__022257);
+            rule__WeightedTactic__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_4__0"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11204:1: rule__WeightedTactic__Group_4__0__Impl : ( 'tactic' ) ;
+    public final void rule__WeightedTactic__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11208:1: ( ( 'tactic' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11209:1: ( 'tactic' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11209:1: ( 'tactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11210:1: 'tactic'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0()); 
+            match(input,96,FollowSets000.FOLLOW_96_in_rule__WeightedTactic__Group_4__0__Impl22285); 
+             after(grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11223:1: rule__WeightedTactic__Group_4__1 : rule__WeightedTactic__Group_4__1__Impl ;
+    public final void rule__WeightedTactic__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11227:1: ( rule__WeightedTactic__Group_4__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11228:2: rule__WeightedTactic__Group_4__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group_4__1__Impl_in_rule__WeightedTactic__Group_4__122316);
+            rule__WeightedTactic__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_4__1"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11234:1: rule__WeightedTactic__Group_4__1__Impl : ( '=' ) ;
+    public final void rule__WeightedTactic__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11238:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11239:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11239:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11240:1: '='
+            {
+             before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__WeightedTactic__Group_4__1__Impl22344); 
+             after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_7__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11257:1: rule__WeightedTactic__Group_7__0 : rule__WeightedTactic__Group_7__0__Impl rule__WeightedTactic__Group_7__1 ;
+    public final void rule__WeightedTactic__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11261:1: ( rule__WeightedTactic__Group_7__0__Impl rule__WeightedTactic__Group_7__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11262:2: rule__WeightedTactic__Group_7__0__Impl rule__WeightedTactic__Group_7__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_7__0__Impl_in_rule__WeightedTactic__Group_7__022379);
+            rule__WeightedTactic__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_7__1_in_rule__WeightedTactic__Group_7__022382);
+            rule__WeightedTactic__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_7__0"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_7__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11269:1: rule__WeightedTactic__Group_7__0__Impl : ( 'default' ) ;
+    public final void rule__WeightedTactic__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11273:1: ( ( 'default' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11274:1: ( 'default' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11274:1: ( 'default' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11275:1: 'default'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0()); 
+            match(input,97,FollowSets001.FOLLOW_97_in_rule__WeightedTactic__Group_7__0__Impl22410); 
+             after(grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_7__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11288:1: rule__WeightedTactic__Group_7__1 : rule__WeightedTactic__Group_7__1__Impl ;
+    public final void rule__WeightedTactic__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11292:1: ( rule__WeightedTactic__Group_7__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11293:2: rule__WeightedTactic__Group_7__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_7__1__Impl_in_rule__WeightedTactic__Group_7__122441);
+            rule__WeightedTactic__Group_7__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_7__1"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_7__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11299:1: rule__WeightedTactic__Group_7__1__Impl : ( '=' ) ;
+    public final void rule__WeightedTactic__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11303:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11304:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11304:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11305:1: '='
+            {
+             before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1()); 
+            match(input,50,FollowSets001.FOLLOW_50_in_rule__WeightedTactic__Group_7__1__Impl22469); 
+             after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_10__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11322:1: rule__WeightedTactic__Group_10__0 : rule__WeightedTactic__Group_10__0__Impl rule__WeightedTactic__Group_10__1 ;
+    public final void rule__WeightedTactic__Group_10__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11326:1: ( rule__WeightedTactic__Group_10__0__Impl rule__WeightedTactic__Group_10__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11327:2: rule__WeightedTactic__Group_10__0__Impl rule__WeightedTactic__Group_10__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_10__0__Impl_in_rule__WeightedTactic__Group_10__022504);
+            rule__WeightedTactic__Group_10__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_10__1_in_rule__WeightedTactic__Group_10__022507);
+            rule__WeightedTactic__Group_10__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_10__0"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_10__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11334:1: rule__WeightedTactic__Group_10__0__Impl : ( 'current' ) ;
+    public final void rule__WeightedTactic__Group_10__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11338:1: ( ( 'current' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11339:1: ( 'current' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11339:1: ( 'current' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11340:1: 'current'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0()); 
+            match(input,98,FollowSets001.FOLLOW_98_in_rule__WeightedTactic__Group_10__0__Impl22535); 
+             after(grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_10__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_10__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11353:1: rule__WeightedTactic__Group_10__1 : rule__WeightedTactic__Group_10__1__Impl ;
+    public final void rule__WeightedTactic__Group_10__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11357:1: ( rule__WeightedTactic__Group_10__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11358:2: rule__WeightedTactic__Group_10__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_10__1__Impl_in_rule__WeightedTactic__Group_10__122566);
+            rule__WeightedTactic__Group_10__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_10__1"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_10__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11364:1: rule__WeightedTactic__Group_10__1__Impl : ( '=' ) ;
+    public final void rule__WeightedTactic__Group_10__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11368:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11369:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11369:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11370:1: '='
+            {
+             before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1()); 
+            match(input,50,FollowSets001.FOLLOW_50_in_rule__WeightedTactic__Group_10__1__Impl22594); 
+             after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_10__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11387:1: rule__WeightedTactic__Group_12__0 : rule__WeightedTactic__Group_12__0__Impl rule__WeightedTactic__Group_12__1 ;
+    public final void rule__WeightedTactic__Group_12__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11391:1: ( rule__WeightedTactic__Group_12__0__Impl rule__WeightedTactic__Group_12__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11392:2: rule__WeightedTactic__Group_12__0__Impl rule__WeightedTactic__Group_12__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_12__0__Impl_in_rule__WeightedTactic__Group_12__022629);
+            rule__WeightedTactic__Group_12__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_12__1_in_rule__WeightedTactic__Group_12__022632);
+            rule__WeightedTactic__Group_12__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12__0"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11399:1: rule__WeightedTactic__Group_12__0__Impl : ( ',' ) ;
+    public final void rule__WeightedTactic__Group_12__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11403:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11404:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11404:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11405:1: ','
+            {
+             before(grammarAccess.getWeightedTacticAccess().getCommaKeyword_12_0()); 
+            match(input,46,FollowSets001.FOLLOW_46_in_rule__WeightedTactic__Group_12__0__Impl22660); 
+             after(grammarAccess.getWeightedTacticAccess().getCommaKeyword_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11418:1: rule__WeightedTactic__Group_12__1 : rule__WeightedTactic__Group_12__1__Impl rule__WeightedTactic__Group_12__2 ;
+    public final void rule__WeightedTactic__Group_12__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11422:1: ( rule__WeightedTactic__Group_12__1__Impl rule__WeightedTactic__Group_12__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11423:2: rule__WeightedTactic__Group_12__1__Impl rule__WeightedTactic__Group_12__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_12__1__Impl_in_rule__WeightedTactic__Group_12__122691);
+            rule__WeightedTactic__Group_12__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_12__2_in_rule__WeightedTactic__Group_12__122694);
+            rule__WeightedTactic__Group_12__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12__1"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11430:1: rule__WeightedTactic__Group_12__1__Impl : ( ( rule__WeightedTactic__Group_12_1__0 )? ) ;
+    public final void rule__WeightedTactic__Group_12__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11434:1: ( ( ( rule__WeightedTactic__Group_12_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11435:1: ( ( rule__WeightedTactic__Group_12_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11435:1: ( ( rule__WeightedTactic__Group_12_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11436:1: ( rule__WeightedTactic__Group_12_1__0 )?
+            {
+             before(grammarAccess.getWeightedTacticAccess().getGroup_12_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11437:1: ( rule__WeightedTactic__Group_12_1__0 )?
+            int alt59=2;
+            int LA59_0 = input.LA(1);
+
+            if ( (LA59_0==99) ) {
+                alt59=1;
+            }
+            switch (alt59) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11437:2: rule__WeightedTactic__Group_12_1__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_12_1__0_in_rule__WeightedTactic__Group_12__1__Impl22721);
+                    rule__WeightedTactic__Group_12_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getGroup_12_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11447:1: rule__WeightedTactic__Group_12__2 : rule__WeightedTactic__Group_12__2__Impl ;
+    public final void rule__WeightedTactic__Group_12__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11451:1: ( rule__WeightedTactic__Group_12__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11452:2: rule__WeightedTactic__Group_12__2__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_12__2__Impl_in_rule__WeightedTactic__Group_12__222752);
+            rule__WeightedTactic__Group_12__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12__2"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11458:1: rule__WeightedTactic__Group_12__2__Impl : ( ( rule__WeightedTactic__LastImpactAssignment_12_2 ) ) ;
+    public final void rule__WeightedTactic__Group_12__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11462:1: ( ( ( rule__WeightedTactic__LastImpactAssignment_12_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11463:1: ( ( rule__WeightedTactic__LastImpactAssignment_12_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11463:1: ( ( rule__WeightedTactic__LastImpactAssignment_12_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11464:1: ( rule__WeightedTactic__LastImpactAssignment_12_2 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getLastImpactAssignment_12_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11465:1: ( rule__WeightedTactic__LastImpactAssignment_12_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11465:2: rule__WeightedTactic__LastImpactAssignment_12_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__LastImpactAssignment_12_2_in_rule__WeightedTactic__Group_12__2__Impl22779);
+            rule__WeightedTactic__LastImpactAssignment_12_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getLastImpactAssignment_12_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12__2__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11481:1: rule__WeightedTactic__Group_12_1__0 : rule__WeightedTactic__Group_12_1__0__Impl rule__WeightedTactic__Group_12_1__1 ;
+    public final void rule__WeightedTactic__Group_12_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11485:1: ( rule__WeightedTactic__Group_12_1__0__Impl rule__WeightedTactic__Group_12_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11486:2: rule__WeightedTactic__Group_12_1__0__Impl rule__WeightedTactic__Group_12_1__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_12_1__0__Impl_in_rule__WeightedTactic__Group_12_1__022815);
+            rule__WeightedTactic__Group_12_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_12_1__1_in_rule__WeightedTactic__Group_12_1__022818);
+            rule__WeightedTactic__Group_12_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12_1__0"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11493:1: rule__WeightedTactic__Group_12_1__0__Impl : ( 'lastImpact' ) ;
+    public final void rule__WeightedTactic__Group_12_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11497:1: ( ( 'lastImpact' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11498:1: ( 'lastImpact' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11498:1: ( 'lastImpact' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11499:1: 'lastImpact'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0()); 
+            match(input,99,FollowSets001.FOLLOW_99_in_rule__WeightedTactic__Group_12_1__0__Impl22846); 
+             after(grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12_1__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11512:1: rule__WeightedTactic__Group_12_1__1 : rule__WeightedTactic__Group_12_1__1__Impl ;
+    public final void rule__WeightedTactic__Group_12_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11516:1: ( rule__WeightedTactic__Group_12_1__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11517:2: rule__WeightedTactic__Group_12_1__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedTactic__Group_12_1__1__Impl_in_rule__WeightedTactic__Group_12_1__122877);
+            rule__WeightedTactic__Group_12_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12_1__1"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group_12_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11523:1: rule__WeightedTactic__Group_12_1__1__Impl : ( '=' ) ;
+    public final void rule__WeightedTactic__Group_12_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11527:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11528:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11528:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11529:1: '='
+            {
+             before(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1()); 
+            match(input,50,FollowSets001.FOLLOW_50_in_rule__WeightedTactic__Group_12_1__1__Impl22905); 
+             after(grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group_12_1__1__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11546:1: rule__WeightingFunction__Group__0 : rule__WeightingFunction__Group__0__Impl rule__WeightingFunction__Group__1 ;
+    public final void rule__WeightingFunction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11550:1: ( rule__WeightingFunction__Group__0__Impl rule__WeightingFunction__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11551:2: rule__WeightingFunction__Group__0__Impl rule__WeightingFunction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__0__Impl_in_rule__WeightingFunction__Group__022940);
+            rule__WeightingFunction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__1_in_rule__WeightingFunction__Group__022943);
+            rule__WeightingFunction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__0"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11558:1: rule__WeightingFunction__Group__0__Impl : ( ( rule__WeightingFunction__NameAssignment_0 ) ) ;
+    public final void rule__WeightingFunction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11562:1: ( ( ( rule__WeightingFunction__NameAssignment_0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11563:1: ( ( rule__WeightingFunction__NameAssignment_0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11563:1: ( ( rule__WeightingFunction__NameAssignment_0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11564:1: ( rule__WeightingFunction__NameAssignment_0 )
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getNameAssignment_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11565:1: ( rule__WeightingFunction__NameAssignment_0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11565:2: rule__WeightingFunction__NameAssignment_0
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__NameAssignment_0_in_rule__WeightingFunction__Group__0__Impl22970);
+            rule__WeightingFunction__NameAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightingFunctionAccess().getNameAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11575:1: rule__WeightingFunction__Group__1 : rule__WeightingFunction__Group__1__Impl rule__WeightingFunction__Group__2 ;
+    public final void rule__WeightingFunction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11579:1: ( rule__WeightingFunction__Group__1__Impl rule__WeightingFunction__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11580:2: rule__WeightingFunction__Group__1__Impl rule__WeightingFunction__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__1__Impl_in_rule__WeightingFunction__Group__123000);
+            rule__WeightingFunction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__2_in_rule__WeightingFunction__Group__123003);
+            rule__WeightingFunction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__1"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11587:1: rule__WeightingFunction__Group__1__Impl : ( ( rule__WeightingFunction__Group_1__0 )? ) ;
+    public final void rule__WeightingFunction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11591:1: ( ( ( rule__WeightingFunction__Group_1__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11592:1: ( ( rule__WeightingFunction__Group_1__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11592:1: ( ( rule__WeightingFunction__Group_1__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11593:1: ( rule__WeightingFunction__Group_1__0 )?
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getGroup_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11594:1: ( rule__WeightingFunction__Group_1__0 )?
+            int alt60=2;
+            int LA60_0 = input.LA(1);
+
+            if ( (LA60_0==43) ) {
+                alt60=1;
+            }
+            switch (alt60) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11594:2: rule__WeightingFunction__Group_1__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_1__0_in_rule__WeightingFunction__Group__1__Impl23030);
+                    rule__WeightingFunction__Group_1__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightingFunctionAccess().getGroup_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11604:1: rule__WeightingFunction__Group__2 : rule__WeightingFunction__Group__2__Impl rule__WeightingFunction__Group__3 ;
+    public final void rule__WeightingFunction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11608:1: ( rule__WeightingFunction__Group__2__Impl rule__WeightingFunction__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11609:2: rule__WeightingFunction__Group__2__Impl rule__WeightingFunction__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__2__Impl_in_rule__WeightingFunction__Group__223061);
+            rule__WeightingFunction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__3_in_rule__WeightingFunction__Group__223064);
+            rule__WeightingFunction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__2"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11616:1: rule__WeightingFunction__Group__2__Impl : ( '=' ) ;
+    public final void rule__WeightingFunction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11620:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11621:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11621:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11622:1: '='
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_2()); 
+            match(input,50,FollowSets001.FOLLOW_50_in_rule__WeightingFunction__Group__2__Impl23092); 
+             after(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11635:1: rule__WeightingFunction__Group__3 : rule__WeightingFunction__Group__3__Impl rule__WeightingFunction__Group__4 ;
+    public final void rule__WeightingFunction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11639:1: ( rule__WeightingFunction__Group__3__Impl rule__WeightingFunction__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11640:2: rule__WeightingFunction__Group__3__Impl rule__WeightingFunction__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__3__Impl_in_rule__WeightingFunction__Group__323123);
+            rule__WeightingFunction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__4_in_rule__WeightingFunction__Group__323126);
+            rule__WeightingFunction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__3"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11647:1: rule__WeightingFunction__Group__3__Impl : ( '(' ) ;
+    public final void rule__WeightingFunction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11651:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11652:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11652:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11653:1: '('
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_3()); 
+            match(input,51,FollowSets001.FOLLOW_51_in_rule__WeightingFunction__Group__3__Impl23154); 
+             after(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11666:1: rule__WeightingFunction__Group__4 : rule__WeightingFunction__Group__4__Impl rule__WeightingFunction__Group__5 ;
+    public final void rule__WeightingFunction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11670:1: ( rule__WeightingFunction__Group__4__Impl rule__WeightingFunction__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11671:2: rule__WeightingFunction__Group__4__Impl rule__WeightingFunction__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__4__Impl_in_rule__WeightingFunction__Group__423185);
+            rule__WeightingFunction__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__5_in_rule__WeightingFunction__Group__423188);
+            rule__WeightingFunction__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__4"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11678:1: rule__WeightingFunction__Group__4__Impl : ( 'weightingFunctionImplementation' ) ;
+    public final void rule__WeightingFunction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11682:1: ( ( 'weightingFunctionImplementation' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11683:1: ( 'weightingFunctionImplementation' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11683:1: ( 'weightingFunctionImplementation' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11684:1: 'weightingFunctionImplementation'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationKeyword_4()); 
+            match(input,100,FollowSets001.FOLLOW_100_in_rule__WeightingFunction__Group__4__Impl23216); 
+             after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11697:1: rule__WeightingFunction__Group__5 : rule__WeightingFunction__Group__5__Impl rule__WeightingFunction__Group__6 ;
+    public final void rule__WeightingFunction__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11701:1: ( rule__WeightingFunction__Group__5__Impl rule__WeightingFunction__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11702:2: rule__WeightingFunction__Group__5__Impl rule__WeightingFunction__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__5__Impl_in_rule__WeightingFunction__Group__523247);
+            rule__WeightingFunction__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__6_in_rule__WeightingFunction__Group__523250);
+            rule__WeightingFunction__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__5"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11709:1: rule__WeightingFunction__Group__5__Impl : ( '=' ) ;
+    public final void rule__WeightingFunction__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11713:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11714:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11714:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11715:1: '='
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_5()); 
+            match(input,50,FollowSets001.FOLLOW_50_in_rule__WeightingFunction__Group__5__Impl23278); 
+             after(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__5__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11728:1: rule__WeightingFunction__Group__6 : rule__WeightingFunction__Group__6__Impl rule__WeightingFunction__Group__7 ;
+    public final void rule__WeightingFunction__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11732:1: ( rule__WeightingFunction__Group__6__Impl rule__WeightingFunction__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11733:2: rule__WeightingFunction__Group__6__Impl rule__WeightingFunction__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__6__Impl_in_rule__WeightingFunction__Group__623309);
+            rule__WeightingFunction__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__7_in_rule__WeightingFunction__Group__623312);
+            rule__WeightingFunction__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__6"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11740:1: rule__WeightingFunction__Group__6__Impl : ( ( rule__WeightingFunction__WeightingFunctionImplementationAssignment_6 ) ) ;
+    public final void rule__WeightingFunction__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11744:1: ( ( ( rule__WeightingFunction__WeightingFunctionImplementationAssignment_6 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11745:1: ( ( rule__WeightingFunction__WeightingFunctionImplementationAssignment_6 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11745:1: ( ( rule__WeightingFunction__WeightingFunctionImplementationAssignment_6 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11746:1: ( rule__WeightingFunction__WeightingFunctionImplementationAssignment_6 )
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationAssignment_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11747:1: ( rule__WeightingFunction__WeightingFunctionImplementationAssignment_6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11747:2: rule__WeightingFunction__WeightingFunctionImplementationAssignment_6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__WeightingFunctionImplementationAssignment_6_in_rule__WeightingFunction__Group__6__Impl23339);
+            rule__WeightingFunction__WeightingFunctionImplementationAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__6__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11757:1: rule__WeightingFunction__Group__7 : rule__WeightingFunction__Group__7__Impl rule__WeightingFunction__Group__8 ;
+    public final void rule__WeightingFunction__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11761:1: ( rule__WeightingFunction__Group__7__Impl rule__WeightingFunction__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11762:2: rule__WeightingFunction__Group__7__Impl rule__WeightingFunction__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__7__Impl_in_rule__WeightingFunction__Group__723369);
+            rule__WeightingFunction__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__8_in_rule__WeightingFunction__Group__723372);
+            rule__WeightingFunction__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__7"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11769:1: rule__WeightingFunction__Group__7__Impl : ( 'weightedMetrics' ) ;
+    public final void rule__WeightingFunction__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11773:1: ( ( 'weightedMetrics' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11774:1: ( 'weightedMetrics' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11774:1: ( 'weightedMetrics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11775:1: 'weightedMetrics'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsKeyword_7()); 
+            match(input,101,FollowSets001.FOLLOW_101_in_rule__WeightingFunction__Group__7__Impl23400); 
+             after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__7__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11788:1: rule__WeightingFunction__Group__8 : rule__WeightingFunction__Group__8__Impl rule__WeightingFunction__Group__9 ;
+    public final void rule__WeightingFunction__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11792:1: ( rule__WeightingFunction__Group__8__Impl rule__WeightingFunction__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11793:2: rule__WeightingFunction__Group__8__Impl rule__WeightingFunction__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__8__Impl_in_rule__WeightingFunction__Group__823431);
+            rule__WeightingFunction__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__9_in_rule__WeightingFunction__Group__823434);
+            rule__WeightingFunction__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__8"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11800:1: rule__WeightingFunction__Group__8__Impl : ( '=' ) ;
+    public final void rule__WeightingFunction__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11804:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11805:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11805:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11806:1: '='
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_8()); 
+            match(input,50,FollowSets001.FOLLOW_50_in_rule__WeightingFunction__Group__8__Impl23462); 
+             after(grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__8__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11819:1: rule__WeightingFunction__Group__9 : rule__WeightingFunction__Group__9__Impl rule__WeightingFunction__Group__10 ;
+    public final void rule__WeightingFunction__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11823:1: ( rule__WeightingFunction__Group__9__Impl rule__WeightingFunction__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11824:2: rule__WeightingFunction__Group__9__Impl rule__WeightingFunction__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__9__Impl_in_rule__WeightingFunction__Group__923493);
+            rule__WeightingFunction__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__10_in_rule__WeightingFunction__Group__923496);
+            rule__WeightingFunction__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__9"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11831:1: rule__WeightingFunction__Group__9__Impl : ( '(' ) ;
+    public final void rule__WeightingFunction__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11835:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11836:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11836:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11837:1: '('
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_9()); 
+            match(input,51,FollowSets001.FOLLOW_51_in_rule__WeightingFunction__Group__9__Impl23524); 
+             after(grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__9__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11850:1: rule__WeightingFunction__Group__10 : rule__WeightingFunction__Group__10__Impl rule__WeightingFunction__Group__11 ;
+    public final void rule__WeightingFunction__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11854:1: ( rule__WeightingFunction__Group__10__Impl rule__WeightingFunction__Group__11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11855:2: rule__WeightingFunction__Group__10__Impl rule__WeightingFunction__Group__11
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__10__Impl_in_rule__WeightingFunction__Group__1023555);
+            rule__WeightingFunction__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__11_in_rule__WeightingFunction__Group__1023558);
+            rule__WeightingFunction__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__10"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11862:1: rule__WeightingFunction__Group__10__Impl : ( ( rule__WeightingFunction__WeightedMetricsAssignment_10 ) ) ;
+    public final void rule__WeightingFunction__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11866:1: ( ( ( rule__WeightingFunction__WeightedMetricsAssignment_10 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11867:1: ( ( rule__WeightingFunction__WeightedMetricsAssignment_10 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11867:1: ( ( rule__WeightingFunction__WeightedMetricsAssignment_10 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11868:1: ( rule__WeightingFunction__WeightedMetricsAssignment_10 )
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_10()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11869:1: ( rule__WeightingFunction__WeightedMetricsAssignment_10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11869:2: rule__WeightingFunction__WeightedMetricsAssignment_10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__WeightedMetricsAssignment_10_in_rule__WeightingFunction__Group__10__Impl23585);
+            rule__WeightingFunction__WeightedMetricsAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__10__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11879:1: rule__WeightingFunction__Group__11 : rule__WeightingFunction__Group__11__Impl rule__WeightingFunction__Group__12 ;
+    public final void rule__WeightingFunction__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11883:1: ( rule__WeightingFunction__Group__11__Impl rule__WeightingFunction__Group__12 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11884:2: rule__WeightingFunction__Group__11__Impl rule__WeightingFunction__Group__12
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__11__Impl_in_rule__WeightingFunction__Group__1123615);
+            rule__WeightingFunction__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__12_in_rule__WeightingFunction__Group__1123618);
+            rule__WeightingFunction__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__11"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__11__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11891:1: rule__WeightingFunction__Group__11__Impl : ( ( rule__WeightingFunction__Group_11__0 )* ) ;
+    public final void rule__WeightingFunction__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11895:1: ( ( ( rule__WeightingFunction__Group_11__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11896:1: ( ( rule__WeightingFunction__Group_11__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11896:1: ( ( rule__WeightingFunction__Group_11__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11897:1: ( rule__WeightingFunction__Group_11__0 )*
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getGroup_11()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11898:1: ( rule__WeightingFunction__Group_11__0 )*
+            loop61:
+            do {
+                int alt61=2;
+                int LA61_0 = input.LA(1);
+
+                if ( (LA61_0==46) ) {
+                    alt61=1;
+                }
+
+
+                switch (alt61) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11898:2: rule__WeightingFunction__Group_11__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_11__0_in_rule__WeightingFunction__Group__11__Impl23645);
+            	    rule__WeightingFunction__Group_11__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop61;
+                }
+            } while (true);
+
+             after(grammarAccess.getWeightingFunctionAccess().getGroup_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__11__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__12"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11908:1: rule__WeightingFunction__Group__12 : rule__WeightingFunction__Group__12__Impl rule__WeightingFunction__Group__13 ;
+    public final void rule__WeightingFunction__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11912:1: ( rule__WeightingFunction__Group__12__Impl rule__WeightingFunction__Group__13 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11913:2: rule__WeightingFunction__Group__12__Impl rule__WeightingFunction__Group__13
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__12__Impl_in_rule__WeightingFunction__Group__1223676);
+            rule__WeightingFunction__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__13_in_rule__WeightingFunction__Group__1223679);
+            rule__WeightingFunction__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__12"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__12__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11920:1: rule__WeightingFunction__Group__12__Impl : ( ')' ) ;
+    public final void rule__WeightingFunction__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11924:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11925:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11925:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11926:1: ')'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_12()); 
+            match(input,52,FollowSets001.FOLLOW_52_in_rule__WeightingFunction__Group__12__Impl23707); 
+             after(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__12__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__13"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11939:1: rule__WeightingFunction__Group__13 : rule__WeightingFunction__Group__13__Impl ;
+    public final void rule__WeightingFunction__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11943:1: ( rule__WeightingFunction__Group__13__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11944:2: rule__WeightingFunction__Group__13__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group__13__Impl_in_rule__WeightingFunction__Group__1323738);
+            rule__WeightingFunction__Group__13__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__13"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__13__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11950:1: rule__WeightingFunction__Group__13__Impl : ( ')' ) ;
+    public final void rule__WeightingFunction__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11954:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11955:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11955:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11956:1: ')'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_13()); 
+            match(input,52,FollowSets001.FOLLOW_52_in_rule__WeightingFunction__Group__13__Impl23766); 
+             after(grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__13__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_1__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:11997:1: rule__WeightingFunction__Group_1__0 : rule__WeightingFunction__Group_1__0__Impl rule__WeightingFunction__Group_1__1 ;
+    public final void rule__WeightingFunction__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12001:1: ( rule__WeightingFunction__Group_1__0__Impl rule__WeightingFunction__Group_1__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12002:2: rule__WeightingFunction__Group_1__0__Impl rule__WeightingFunction__Group_1__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_1__0__Impl_in_rule__WeightingFunction__Group_1__023825);
+            rule__WeightingFunction__Group_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_1__1_in_rule__WeightingFunction__Group_1__023828);
+            rule__WeightingFunction__Group_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_1__0"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_1__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12009:1: rule__WeightingFunction__Group_1__0__Impl : ( '[id:' ) ;
+    public final void rule__WeightingFunction__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12013:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12014:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12014:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12015:1: '[id:'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getIdKeyword_1_0()); 
+            match(input,43,FollowSets001.FOLLOW_43_in_rule__WeightingFunction__Group_1__0__Impl23856); 
+             after(grammarAccess.getWeightingFunctionAccess().getIdKeyword_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_1__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12028:1: rule__WeightingFunction__Group_1__1 : rule__WeightingFunction__Group_1__1__Impl rule__WeightingFunction__Group_1__2 ;
+    public final void rule__WeightingFunction__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12032:1: ( rule__WeightingFunction__Group_1__1__Impl rule__WeightingFunction__Group_1__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12033:2: rule__WeightingFunction__Group_1__1__Impl rule__WeightingFunction__Group_1__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_1__1__Impl_in_rule__WeightingFunction__Group_1__123887);
+            rule__WeightingFunction__Group_1__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_1__2_in_rule__WeightingFunction__Group_1__123890);
+            rule__WeightingFunction__Group_1__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_1__1"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_1__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12040:1: rule__WeightingFunction__Group_1__1__Impl : ( ( rule__WeightingFunction__IdAssignment_1_1 ) ) ;
+    public final void rule__WeightingFunction__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12044:1: ( ( ( rule__WeightingFunction__IdAssignment_1_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12045:1: ( ( rule__WeightingFunction__IdAssignment_1_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12045:1: ( ( rule__WeightingFunction__IdAssignment_1_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12046:1: ( rule__WeightingFunction__IdAssignment_1_1 )
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getIdAssignment_1_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12047:1: ( rule__WeightingFunction__IdAssignment_1_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12047:2: rule__WeightingFunction__IdAssignment_1_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__IdAssignment_1_1_in_rule__WeightingFunction__Group_1__1__Impl23917);
+            rule__WeightingFunction__IdAssignment_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightingFunctionAccess().getIdAssignment_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_1__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12057:1: rule__WeightingFunction__Group_1__2 : rule__WeightingFunction__Group_1__2__Impl ;
+    public final void rule__WeightingFunction__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12061:1: ( rule__WeightingFunction__Group_1__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12062:2: rule__WeightingFunction__Group_1__2__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_1__2__Impl_in_rule__WeightingFunction__Group_1__223947);
+            rule__WeightingFunction__Group_1__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_1__2"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_1__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12068:1: rule__WeightingFunction__Group_1__2__Impl : ( ']' ) ;
+    public final void rule__WeightingFunction__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12072:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12073:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12073:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12074:1: ']'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getRightSquareBracketKeyword_1_2()); 
+            match(input,44,FollowSets001.FOLLOW_44_in_rule__WeightingFunction__Group_1__2__Impl23975); 
+             after(grammarAccess.getWeightingFunctionAccess().getRightSquareBracketKeyword_1_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_11__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12093:1: rule__WeightingFunction__Group_11__0 : rule__WeightingFunction__Group_11__0__Impl rule__WeightingFunction__Group_11__1 ;
+    public final void rule__WeightingFunction__Group_11__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12097:1: ( rule__WeightingFunction__Group_11__0__Impl rule__WeightingFunction__Group_11__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12098:2: rule__WeightingFunction__Group_11__0__Impl rule__WeightingFunction__Group_11__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_11__0__Impl_in_rule__WeightingFunction__Group_11__024012);
+            rule__WeightingFunction__Group_11__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_11__1_in_rule__WeightingFunction__Group_11__024015);
+            rule__WeightingFunction__Group_11__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_11__0"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_11__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12105:1: rule__WeightingFunction__Group_11__0__Impl : ( ',' ) ;
+    public final void rule__WeightingFunction__Group_11__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12109:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12110:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12110:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12111:1: ','
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getCommaKeyword_11_0()); 
+            match(input,46,FollowSets001.FOLLOW_46_in_rule__WeightingFunction__Group_11__0__Impl24043); 
+             after(grammarAccess.getWeightingFunctionAccess().getCommaKeyword_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_11__0__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_11__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12124:1: rule__WeightingFunction__Group_11__1 : rule__WeightingFunction__Group_11__1__Impl ;
+    public final void rule__WeightingFunction__Group_11__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12128:1: ( rule__WeightingFunction__Group_11__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12129:2: rule__WeightingFunction__Group_11__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__Group_11__1__Impl_in_rule__WeightingFunction__Group_11__124074);
+            rule__WeightingFunction__Group_11__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_11__1"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group_11__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12135:1: rule__WeightingFunction__Group_11__1__Impl : ( ( rule__WeightingFunction__WeightedMetricsAssignment_11_1 ) ) ;
+    public final void rule__WeightingFunction__Group_11__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12139:1: ( ( ( rule__WeightingFunction__WeightedMetricsAssignment_11_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12140:1: ( ( rule__WeightingFunction__WeightedMetricsAssignment_11_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12140:1: ( ( rule__WeightingFunction__WeightedMetricsAssignment_11_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12141:1: ( rule__WeightingFunction__WeightedMetricsAssignment_11_1 )
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_11_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12142:1: ( rule__WeightingFunction__WeightedMetricsAssignment_11_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12142:2: rule__WeightingFunction__WeightedMetricsAssignment_11_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightingFunction__WeightedMetricsAssignment_11_1_in_rule__WeightingFunction__Group_11__1__Impl24101);
+            rule__WeightingFunction__WeightedMetricsAssignment_11_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsAssignment_11_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group_11__1__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12156:1: rule__Specification__Group__0 : rule__Specification__Group__0__Impl rule__Specification__Group__1 ;
+    public final void rule__Specification__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12160:1: ( rule__Specification__Group__0__Impl rule__Specification__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12161:2: rule__Specification__Group__0__Impl rule__Specification__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__0__Impl_in_rule__Specification__Group__024135);
+            rule__Specification__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__1_in_rule__Specification__Group__024138);
+            rule__Specification__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__0"
+
+
+    // $ANTLR start "rule__Specification__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12168:1: rule__Specification__Group__0__Impl : ( ( 'Specification' )? ) ;
+    public final void rule__Specification__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12172:1: ( ( ( 'Specification' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12173:1: ( ( 'Specification' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12173:1: ( ( 'Specification' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12174:1: ( 'Specification' )?
+            {
+             before(grammarAccess.getSpecificationAccess().getSpecificationKeyword_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12175:1: ( 'Specification' )?
+            int alt62=2;
+            int LA62_0 = input.LA(1);
+
+            if ( (LA62_0==102) ) {
+                alt62=1;
+            }
+            switch (alt62) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12176:2: 'Specification'
+                    {
+                    match(input,102,FollowSets001.FOLLOW_102_in_rule__Specification__Group__0__Impl24167); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getSpecificationAccess().getSpecificationKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12187:1: rule__Specification__Group__1 : rule__Specification__Group__1__Impl rule__Specification__Group__2 ;
+    public final void rule__Specification__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12191:1: ( rule__Specification__Group__1__Impl rule__Specification__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12192:2: rule__Specification__Group__1__Impl rule__Specification__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__1__Impl_in_rule__Specification__Group__124200);
+            rule__Specification__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__2_in_rule__Specification__Group__124203);
+            rule__Specification__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__1"
+
+
+    // $ANTLR start "rule__Specification__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12199:1: rule__Specification__Group__1__Impl : ( '(' ) ;
+    public final void rule__Specification__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12203:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12204:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12204:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12205:1: '('
+            {
+             before(grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_1()); 
+            match(input,51,FollowSets001.FOLLOW_51_in_rule__Specification__Group__1__Impl24231); 
+             after(grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12218:1: rule__Specification__Group__2 : rule__Specification__Group__2__Impl rule__Specification__Group__3 ;
+    public final void rule__Specification__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12222:1: ( rule__Specification__Group__2__Impl rule__Specification__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12223:2: rule__Specification__Group__2__Impl rule__Specification__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__2__Impl_in_rule__Specification__Group__224262);
+            rule__Specification__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__3_in_rule__Specification__Group__224265);
+            rule__Specification__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__2"
+
+
+    // $ANTLR start "rule__Specification__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12230:1: rule__Specification__Group__2__Impl : ( ( 'metricType' )? ) ;
+    public final void rule__Specification__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12234:1: ( ( ( 'metricType' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12235:1: ( ( 'metricType' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12235:1: ( ( 'metricType' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12236:1: ( 'metricType' )?
+            {
+             before(grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12237:1: ( 'metricType' )?
+            int alt63=2;
+            int LA63_0 = input.LA(1);
+
+            if ( (LA63_0==103) ) {
+                alt63=1;
+            }
+            switch (alt63) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12238:2: 'metricType'
+                    {
+                    match(input,103,FollowSets001.FOLLOW_103_in_rule__Specification__Group__2__Impl24294); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12249:1: rule__Specification__Group__3 : rule__Specification__Group__3__Impl rule__Specification__Group__4 ;
+    public final void rule__Specification__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12253:1: ( rule__Specification__Group__3__Impl rule__Specification__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12254:2: rule__Specification__Group__3__Impl rule__Specification__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__3__Impl_in_rule__Specification__Group__324327);
+            rule__Specification__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__4_in_rule__Specification__Group__324330);
+            rule__Specification__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__3"
+
+
+    // $ANTLR start "rule__Specification__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12261:1: rule__Specification__Group__3__Impl : ( ( rule__Specification__MetricTypeAssignment_3 ) ) ;
+    public final void rule__Specification__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12265:1: ( ( ( rule__Specification__MetricTypeAssignment_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12266:1: ( ( rule__Specification__MetricTypeAssignment_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12266:1: ( ( rule__Specification__MetricTypeAssignment_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12267:1: ( rule__Specification__MetricTypeAssignment_3 )
+            {
+             before(grammarAccess.getSpecificationAccess().getMetricTypeAssignment_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12268:1: ( rule__Specification__MetricTypeAssignment_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12268:2: rule__Specification__MetricTypeAssignment_3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__MetricTypeAssignment_3_in_rule__Specification__Group__3__Impl24357);
+            rule__Specification__MetricTypeAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSpecificationAccess().getMetricTypeAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12278:1: rule__Specification__Group__4 : rule__Specification__Group__4__Impl rule__Specification__Group__5 ;
+    public final void rule__Specification__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12282:1: ( rule__Specification__Group__4__Impl rule__Specification__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12283:2: rule__Specification__Group__4__Impl rule__Specification__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__4__Impl_in_rule__Specification__Group__424387);
+            rule__Specification__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__5_in_rule__Specification__Group__424390);
+            rule__Specification__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__4"
+
+
+    // $ANTLR start "rule__Specification__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12290:1: rule__Specification__Group__4__Impl : ( ',' ) ;
+    public final void rule__Specification__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12294:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12295:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12295:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12296:1: ','
+            {
+             before(grammarAccess.getSpecificationAccess().getCommaKeyword_4()); 
+            match(input,46,FollowSets001.FOLLOW_46_in_rule__Specification__Group__4__Impl24418); 
+             after(grammarAccess.getSpecificationAccess().getCommaKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12309:1: rule__Specification__Group__5 : rule__Specification__Group__5__Impl rule__Specification__Group__6 ;
+    public final void rule__Specification__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12313:1: ( rule__Specification__Group__5__Impl rule__Specification__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12314:2: rule__Specification__Group__5__Impl rule__Specification__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__5__Impl_in_rule__Specification__Group__524449);
+            rule__Specification__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__6_in_rule__Specification__Group__524452);
+            rule__Specification__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__5"
+
+
+    // $ANTLR start "rule__Specification__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12321:1: rule__Specification__Group__5__Impl : ( ( 'relationalOperator' )? ) ;
+    public final void rule__Specification__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12325:1: ( ( ( 'relationalOperator' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12326:1: ( ( 'relationalOperator' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12326:1: ( ( 'relationalOperator' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12327:1: ( 'relationalOperator' )?
+            {
+             before(grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12328:1: ( 'relationalOperator' )?
+            int alt64=2;
+            int LA64_0 = input.LA(1);
+
+            if ( (LA64_0==104) ) {
+                alt64=1;
+            }
+            switch (alt64) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12329:2: 'relationalOperator'
+                    {
+                    match(input,104,FollowSets001.FOLLOW_104_in_rule__Specification__Group__5__Impl24481); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12340:1: rule__Specification__Group__6 : rule__Specification__Group__6__Impl rule__Specification__Group__7 ;
+    public final void rule__Specification__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12344:1: ( rule__Specification__Group__6__Impl rule__Specification__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12345:2: rule__Specification__Group__6__Impl rule__Specification__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__6__Impl_in_rule__Specification__Group__624514);
+            rule__Specification__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__7_in_rule__Specification__Group__624517);
+            rule__Specification__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__6"
+
+
+    // $ANTLR start "rule__Specification__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12352:1: rule__Specification__Group__6__Impl : ( ( rule__Specification__RelationalOperatorAssignment_6 ) ) ;
+    public final void rule__Specification__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12356:1: ( ( ( rule__Specification__RelationalOperatorAssignment_6 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12357:1: ( ( rule__Specification__RelationalOperatorAssignment_6 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12357:1: ( ( rule__Specification__RelationalOperatorAssignment_6 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12358:1: ( rule__Specification__RelationalOperatorAssignment_6 )
+            {
+             before(grammarAccess.getSpecificationAccess().getRelationalOperatorAssignment_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12359:1: ( rule__Specification__RelationalOperatorAssignment_6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12359:2: rule__Specification__RelationalOperatorAssignment_6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__RelationalOperatorAssignment_6_in_rule__Specification__Group__6__Impl24544);
+            rule__Specification__RelationalOperatorAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSpecificationAccess().getRelationalOperatorAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12369:1: rule__Specification__Group__7 : rule__Specification__Group__7__Impl rule__Specification__Group__8 ;
+    public final void rule__Specification__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12373:1: ( rule__Specification__Group__7__Impl rule__Specification__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12374:2: rule__Specification__Group__7__Impl rule__Specification__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__7__Impl_in_rule__Specification__Group__724574);
+            rule__Specification__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__8_in_rule__Specification__Group__724577);
+            rule__Specification__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__7"
+
+
+    // $ANTLR start "rule__Specification__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12381:1: rule__Specification__Group__7__Impl : ( ',' ) ;
+    public final void rule__Specification__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12385:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12386:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12386:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12387:1: ','
+            {
+             before(grammarAccess.getSpecificationAccess().getCommaKeyword_7()); 
+            match(input,46,FollowSets001.FOLLOW_46_in_rule__Specification__Group__7__Impl24605); 
+             after(grammarAccess.getSpecificationAccess().getCommaKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12400:1: rule__Specification__Group__8 : rule__Specification__Group__8__Impl rule__Specification__Group__9 ;
+    public final void rule__Specification__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12404:1: ( rule__Specification__Group__8__Impl rule__Specification__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12405:2: rule__Specification__Group__8__Impl rule__Specification__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__8__Impl_in_rule__Specification__Group__824636);
+            rule__Specification__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__9_in_rule__Specification__Group__824639);
+            rule__Specification__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__8"
+
+
+    // $ANTLR start "rule__Specification__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12412:1: rule__Specification__Group__8__Impl : ( ( 'value' )? ) ;
+    public final void rule__Specification__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12416:1: ( ( ( 'value' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12417:1: ( ( 'value' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12417:1: ( ( 'value' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12418:1: ( 'value' )?
+            {
+             before(grammarAccess.getSpecificationAccess().getValueKeyword_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12419:1: ( 'value' )?
+            int alt65=2;
+            int LA65_0 = input.LA(1);
+
+            if ( (LA65_0==61) ) {
+                alt65=1;
+            }
+            switch (alt65) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12420:2: 'value'
+                    {
+                    match(input,61,FollowSets001.FOLLOW_61_in_rule__Specification__Group__8__Impl24668); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getSpecificationAccess().getValueKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12431:1: rule__Specification__Group__9 : rule__Specification__Group__9__Impl rule__Specification__Group__10 ;
+    public final void rule__Specification__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12435:1: ( rule__Specification__Group__9__Impl rule__Specification__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12436:2: rule__Specification__Group__9__Impl rule__Specification__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__9__Impl_in_rule__Specification__Group__924701);
+            rule__Specification__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__10_in_rule__Specification__Group__924704);
+            rule__Specification__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__9"
+
+
+    // $ANTLR start "rule__Specification__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12443:1: rule__Specification__Group__9__Impl : ( ( rule__Specification__ValueAssignment_9 ) ) ;
+    public final void rule__Specification__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12447:1: ( ( ( rule__Specification__ValueAssignment_9 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12448:1: ( ( rule__Specification__ValueAssignment_9 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12448:1: ( ( rule__Specification__ValueAssignment_9 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12449:1: ( rule__Specification__ValueAssignment_9 )
+            {
+             before(grammarAccess.getSpecificationAccess().getValueAssignment_9()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12450:1: ( rule__Specification__ValueAssignment_9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12450:2: rule__Specification__ValueAssignment_9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__ValueAssignment_9_in_rule__Specification__Group__9__Impl24731);
+            rule__Specification__ValueAssignment_9();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSpecificationAccess().getValueAssignment_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Specification__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12460:1: rule__Specification__Group__10 : rule__Specification__Group__10__Impl ;
+    public final void rule__Specification__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12464:1: ( rule__Specification__Group__10__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12465:2: rule__Specification__Group__10__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__Specification__Group__10__Impl_in_rule__Specification__Group__1024761);
+            rule__Specification__Group__10__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__10"
+
+
+    // $ANTLR start "rule__Specification__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12471:1: rule__Specification__Group__10__Impl : ( ')' ) ;
+    public final void rule__Specification__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12475:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12476:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12476:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12477:1: ')'
+            {
+             before(grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_10()); 
+            match(input,52,FollowSets001.FOLLOW_52_in_rule__Specification__Group__10__Impl24789); 
+             after(grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__Group__10__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12519:1: rule__MetricValue__Group__0 : rule__MetricValue__Group__0__Impl rule__MetricValue__Group__1 ;
+    public final void rule__MetricValue__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12523:1: ( rule__MetricValue__Group__0__Impl rule__MetricValue__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12524:2: rule__MetricValue__Group__0__Impl rule__MetricValue__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__0__Impl_in_rule__MetricValue__Group__024849);
+            rule__MetricValue__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__1_in_rule__MetricValue__Group__024852);
+            rule__MetricValue__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__0"
+
+
+    // $ANTLR start "rule__MetricValue__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12531:1: rule__MetricValue__Group__0__Impl : ( 'MetricValue' ) ;
+    public final void rule__MetricValue__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12535:1: ( ( 'MetricValue' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12536:1: ( 'MetricValue' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12536:1: ( 'MetricValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12537:1: 'MetricValue'
+            {
+             before(grammarAccess.getMetricValueAccess().getMetricValueKeyword_0()); 
+            match(input,105,FollowSets001.FOLLOW_105_in_rule__MetricValue__Group__0__Impl24880); 
+             after(grammarAccess.getMetricValueAccess().getMetricValueKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__0__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12550:1: rule__MetricValue__Group__1 : rule__MetricValue__Group__1__Impl rule__MetricValue__Group__2 ;
+    public final void rule__MetricValue__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12554:1: ( rule__MetricValue__Group__1__Impl rule__MetricValue__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12555:2: rule__MetricValue__Group__1__Impl rule__MetricValue__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__1__Impl_in_rule__MetricValue__Group__124911);
+            rule__MetricValue__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__2_in_rule__MetricValue__Group__124914);
+            rule__MetricValue__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__1"
+
+
+    // $ANTLR start "rule__MetricValue__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12562:1: rule__MetricValue__Group__1__Impl : ( ( rule__MetricValue__NameAssignment_1 ) ) ;
+    public final void rule__MetricValue__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12566:1: ( ( ( rule__MetricValue__NameAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12567:1: ( ( rule__MetricValue__NameAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12567:1: ( ( rule__MetricValue__NameAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12568:1: ( rule__MetricValue__NameAssignment_1 )
+            {
+             before(grammarAccess.getMetricValueAccess().getNameAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12569:1: ( rule__MetricValue__NameAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12569:2: rule__MetricValue__NameAssignment_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__NameAssignment_1_in_rule__MetricValue__Group__1__Impl24941);
+            rule__MetricValue__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMetricValueAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__1__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12579:1: rule__MetricValue__Group__2 : rule__MetricValue__Group__2__Impl rule__MetricValue__Group__3 ;
+    public final void rule__MetricValue__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12583:1: ( rule__MetricValue__Group__2__Impl rule__MetricValue__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12584:2: rule__MetricValue__Group__2__Impl rule__MetricValue__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__2__Impl_in_rule__MetricValue__Group__224971);
+            rule__MetricValue__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__3_in_rule__MetricValue__Group__224974);
+            rule__MetricValue__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__2"
+
+
+    // $ANTLR start "rule__MetricValue__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12591:1: rule__MetricValue__Group__2__Impl : ( ( rule__MetricValue__Group_2__0 )? ) ;
+    public final void rule__MetricValue__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12595:1: ( ( ( rule__MetricValue__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12596:1: ( ( rule__MetricValue__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12596:1: ( ( rule__MetricValue__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12597:1: ( rule__MetricValue__Group_2__0 )?
+            {
+             before(grammarAccess.getMetricValueAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12598:1: ( rule__MetricValue__Group_2__0 )?
+            int alt66=2;
+            int LA66_0 = input.LA(1);
+
+            if ( (LA66_0==43) ) {
+                alt66=1;
+            }
+            switch (alt66) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12598:2: rule__MetricValue__Group_2__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group_2__0_in_rule__MetricValue__Group__2__Impl25001);
+                    rule__MetricValue__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getMetricValueAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__2__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12608:1: rule__MetricValue__Group__3 : rule__MetricValue__Group__3__Impl rule__MetricValue__Group__4 ;
+    public final void rule__MetricValue__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12612:1: ( rule__MetricValue__Group__3__Impl rule__MetricValue__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12613:2: rule__MetricValue__Group__3__Impl rule__MetricValue__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__3__Impl_in_rule__MetricValue__Group__325032);
+            rule__MetricValue__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__4_in_rule__MetricValue__Group__325035);
+            rule__MetricValue__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__3"
+
+
+    // $ANTLR start "rule__MetricValue__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12620:1: rule__MetricValue__Group__3__Impl : ( '{' ) ;
+    public final void rule__MetricValue__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12624:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12625:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12625:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12626:1: '{'
+            {
+             before(grammarAccess.getMetricValueAccess().getLeftCurlyBracketKeyword_3()); 
+            match(input,36,FollowSets001.FOLLOW_36_in_rule__MetricValue__Group__3__Impl25063); 
+             after(grammarAccess.getMetricValueAccess().getLeftCurlyBracketKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__3__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12639:1: rule__MetricValue__Group__4 : rule__MetricValue__Group__4__Impl rule__MetricValue__Group__5 ;
+    public final void rule__MetricValue__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12643:1: ( rule__MetricValue__Group__4__Impl rule__MetricValue__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12644:2: rule__MetricValue__Group__4__Impl rule__MetricValue__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__4__Impl_in_rule__MetricValue__Group__425094);
+            rule__MetricValue__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__5_in_rule__MetricValue__Group__425097);
+            rule__MetricValue__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__4"
+
+
+    // $ANTLR start "rule__MetricValue__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12651:1: rule__MetricValue__Group__4__Impl : ( 'value' ) ;
+    public final void rule__MetricValue__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12655:1: ( ( 'value' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12656:1: ( 'value' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12656:1: ( 'value' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12657:1: 'value'
+            {
+             before(grammarAccess.getMetricValueAccess().getValueKeyword_4()); 
+            match(input,61,FollowSets001.FOLLOW_61_in_rule__MetricValue__Group__4__Impl25125); 
+             after(grammarAccess.getMetricValueAccess().getValueKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__4__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12670:1: rule__MetricValue__Group__5 : rule__MetricValue__Group__5__Impl rule__MetricValue__Group__6 ;
+    public final void rule__MetricValue__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12674:1: ( rule__MetricValue__Group__5__Impl rule__MetricValue__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12675:2: rule__MetricValue__Group__5__Impl rule__MetricValue__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__5__Impl_in_rule__MetricValue__Group__525156);
+            rule__MetricValue__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__6_in_rule__MetricValue__Group__525159);
+            rule__MetricValue__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__5"
+
+
+    // $ANTLR start "rule__MetricValue__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12682:1: rule__MetricValue__Group__5__Impl : ( ( rule__MetricValue__ValueAssignment_5 ) ) ;
+    public final void rule__MetricValue__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12686:1: ( ( ( rule__MetricValue__ValueAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12687:1: ( ( rule__MetricValue__ValueAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12687:1: ( ( rule__MetricValue__ValueAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12688:1: ( rule__MetricValue__ValueAssignment_5 )
+            {
+             before(grammarAccess.getMetricValueAccess().getValueAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12689:1: ( rule__MetricValue__ValueAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12689:2: rule__MetricValue__ValueAssignment_5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__ValueAssignment_5_in_rule__MetricValue__Group__5__Impl25186);
+            rule__MetricValue__ValueAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMetricValueAccess().getValueAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__5__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12699:1: rule__MetricValue__Group__6 : rule__MetricValue__Group__6__Impl rule__MetricValue__Group__7 ;
+    public final void rule__MetricValue__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12703:1: ( rule__MetricValue__Group__6__Impl rule__MetricValue__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12704:2: rule__MetricValue__Group__6__Impl rule__MetricValue__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__6__Impl_in_rule__MetricValue__Group__625216);
+            rule__MetricValue__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__7_in_rule__MetricValue__Group__625219);
+            rule__MetricValue__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__6"
+
+
+    // $ANTLR start "rule__MetricValue__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12711:1: rule__MetricValue__Group__6__Impl : ( 'measuredEntity' ) ;
+    public final void rule__MetricValue__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12715:1: ( ( 'measuredEntity' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12716:1: ( 'measuredEntity' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12716:1: ( 'measuredEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12717:1: 'measuredEntity'
+            {
+             before(grammarAccess.getMetricValueAccess().getMeasuredEntityKeyword_6()); 
+            match(input,106,FollowSets001.FOLLOW_106_in_rule__MetricValue__Group__6__Impl25247); 
+             after(grammarAccess.getMetricValueAccess().getMeasuredEntityKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__6__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12730:1: rule__MetricValue__Group__7 : rule__MetricValue__Group__7__Impl rule__MetricValue__Group__8 ;
+    public final void rule__MetricValue__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12734:1: ( rule__MetricValue__Group__7__Impl rule__MetricValue__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12735:2: rule__MetricValue__Group__7__Impl rule__MetricValue__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__7__Impl_in_rule__MetricValue__Group__725278);
+            rule__MetricValue__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__8_in_rule__MetricValue__Group__725281);
+            rule__MetricValue__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__7"
+
+
+    // $ANTLR start "rule__MetricValue__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12742:1: rule__MetricValue__Group__7__Impl : ( ( rule__MetricValue__MeasuredEntityAssignment_7 ) ) ;
+    public final void rule__MetricValue__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12746:1: ( ( ( rule__MetricValue__MeasuredEntityAssignment_7 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12747:1: ( ( rule__MetricValue__MeasuredEntityAssignment_7 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12747:1: ( ( rule__MetricValue__MeasuredEntityAssignment_7 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12748:1: ( rule__MetricValue__MeasuredEntityAssignment_7 )
+            {
+             before(grammarAccess.getMetricValueAccess().getMeasuredEntityAssignment_7()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12749:1: ( rule__MetricValue__MeasuredEntityAssignment_7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12749:2: rule__MetricValue__MeasuredEntityAssignment_7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__MeasuredEntityAssignment_7_in_rule__MetricValue__Group__7__Impl25308);
+            rule__MetricValue__MeasuredEntityAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMetricValueAccess().getMeasuredEntityAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__7__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12759:1: rule__MetricValue__Group__8 : rule__MetricValue__Group__8__Impl rule__MetricValue__Group__9 ;
+    public final void rule__MetricValue__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12763:1: ( rule__MetricValue__Group__8__Impl rule__MetricValue__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12764:2: rule__MetricValue__Group__8__Impl rule__MetricValue__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__8__Impl_in_rule__MetricValue__Group__825338);
+            rule__MetricValue__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__9_in_rule__MetricValue__Group__825341);
+            rule__MetricValue__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__8"
+
+
+    // $ANTLR start "rule__MetricValue__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12771:1: rule__MetricValue__Group__8__Impl : ( 'metricType' ) ;
+    public final void rule__MetricValue__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12775:1: ( ( 'metricType' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12776:1: ( 'metricType' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12776:1: ( 'metricType' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12777:1: 'metricType'
+            {
+             before(grammarAccess.getMetricValueAccess().getMetricTypeKeyword_8()); 
+            match(input,103,FollowSets001.FOLLOW_103_in_rule__MetricValue__Group__8__Impl25369); 
+             after(grammarAccess.getMetricValueAccess().getMetricTypeKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__8__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12790:1: rule__MetricValue__Group__9 : rule__MetricValue__Group__9__Impl rule__MetricValue__Group__10 ;
+    public final void rule__MetricValue__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12794:1: ( rule__MetricValue__Group__9__Impl rule__MetricValue__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12795:2: rule__MetricValue__Group__9__Impl rule__MetricValue__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__9__Impl_in_rule__MetricValue__Group__925400);
+            rule__MetricValue__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__10_in_rule__MetricValue__Group__925403);
+            rule__MetricValue__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__9"
+
+
+    // $ANTLR start "rule__MetricValue__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12802:1: rule__MetricValue__Group__9__Impl : ( ( rule__MetricValue__MetricTypeAssignment_9 ) ) ;
+    public final void rule__MetricValue__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12806:1: ( ( ( rule__MetricValue__MetricTypeAssignment_9 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12807:1: ( ( rule__MetricValue__MetricTypeAssignment_9 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12807:1: ( ( rule__MetricValue__MetricTypeAssignment_9 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12808:1: ( rule__MetricValue__MetricTypeAssignment_9 )
+            {
+             before(grammarAccess.getMetricValueAccess().getMetricTypeAssignment_9()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12809:1: ( rule__MetricValue__MetricTypeAssignment_9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12809:2: rule__MetricValue__MetricTypeAssignment_9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__MetricTypeAssignment_9_in_rule__MetricValue__Group__9__Impl25430);
+            rule__MetricValue__MetricTypeAssignment_9();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMetricValueAccess().getMetricTypeAssignment_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__9__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12819:1: rule__MetricValue__Group__10 : rule__MetricValue__Group__10__Impl ;
+    public final void rule__MetricValue__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12823:1: ( rule__MetricValue__Group__10__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12824:2: rule__MetricValue__Group__10__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group__10__Impl_in_rule__MetricValue__Group__1025460);
+            rule__MetricValue__Group__10__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__10"
+
+
+    // $ANTLR start "rule__MetricValue__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12830:1: rule__MetricValue__Group__10__Impl : ( '}' ) ;
+    public final void rule__MetricValue__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12834:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12835:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12835:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12836:1: '}'
+            {
+             before(grammarAccess.getMetricValueAccess().getRightCurlyBracketKeyword_10()); 
+            match(input,42,FollowSets001.FOLLOW_42_in_rule__MetricValue__Group__10__Impl25488); 
+             after(grammarAccess.getMetricValueAccess().getRightCurlyBracketKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group__10__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12871:1: rule__MetricValue__Group_2__0 : rule__MetricValue__Group_2__0__Impl rule__MetricValue__Group_2__1 ;
+    public final void rule__MetricValue__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12875:1: ( rule__MetricValue__Group_2__0__Impl rule__MetricValue__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12876:2: rule__MetricValue__Group_2__0__Impl rule__MetricValue__Group_2__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group_2__0__Impl_in_rule__MetricValue__Group_2__025541);
+            rule__MetricValue__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group_2__1_in_rule__MetricValue__Group_2__025544);
+            rule__MetricValue__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group_2__0"
+
+
+    // $ANTLR start "rule__MetricValue__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12883:1: rule__MetricValue__Group_2__0__Impl : ( '[id:' ) ;
+    public final void rule__MetricValue__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12887:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12888:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12888:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12889:1: '[id:'
+            {
+             before(grammarAccess.getMetricValueAccess().getIdKeyword_2_0()); 
+            match(input,43,FollowSets001.FOLLOW_43_in_rule__MetricValue__Group_2__0__Impl25572); 
+             after(grammarAccess.getMetricValueAccess().getIdKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12902:1: rule__MetricValue__Group_2__1 : rule__MetricValue__Group_2__1__Impl rule__MetricValue__Group_2__2 ;
+    public final void rule__MetricValue__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12906:1: ( rule__MetricValue__Group_2__1__Impl rule__MetricValue__Group_2__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12907:2: rule__MetricValue__Group_2__1__Impl rule__MetricValue__Group_2__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group_2__1__Impl_in_rule__MetricValue__Group_2__125603);
+            rule__MetricValue__Group_2__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group_2__2_in_rule__MetricValue__Group_2__125606);
+            rule__MetricValue__Group_2__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group_2__1"
+
+
+    // $ANTLR start "rule__MetricValue__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12914:1: rule__MetricValue__Group_2__1__Impl : ( ( rule__MetricValue__IdAssignment_2_1 ) ) ;
+    public final void rule__MetricValue__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12918:1: ( ( ( rule__MetricValue__IdAssignment_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12919:1: ( ( rule__MetricValue__IdAssignment_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12919:1: ( ( rule__MetricValue__IdAssignment_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12920:1: ( rule__MetricValue__IdAssignment_2_1 )
+            {
+             before(grammarAccess.getMetricValueAccess().getIdAssignment_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12921:1: ( rule__MetricValue__IdAssignment_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12921:2: rule__MetricValue__IdAssignment_2_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__IdAssignment_2_1_in_rule__MetricValue__Group_2__1__Impl25633);
+            rule__MetricValue__IdAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMetricValueAccess().getIdAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__MetricValue__Group_2__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12931:1: rule__MetricValue__Group_2__2 : rule__MetricValue__Group_2__2__Impl ;
+    public final void rule__MetricValue__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12935:1: ( rule__MetricValue__Group_2__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12936:2: rule__MetricValue__Group_2__2__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__MetricValue__Group_2__2__Impl_in_rule__MetricValue__Group_2__225663);
+            rule__MetricValue__Group_2__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group_2__2"
+
+
+    // $ANTLR start "rule__MetricValue__Group_2__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12942:1: rule__MetricValue__Group_2__2__Impl : ( ']' ) ;
+    public final void rule__MetricValue__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12946:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12947:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12947:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12948:1: ']'
+            {
+             before(grammarAccess.getMetricValueAccess().getRightSquareBracketKeyword_2_2()); 
+            match(input,44,FollowSets001.FOLLOW_44_in_rule__MetricValue__Group_2__2__Impl25691); 
+             after(grammarAccess.getMetricValueAccess().getRightSquareBracketKeyword_2_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12970:1: rule__WeightedMetric__Group__0 : rule__WeightedMetric__Group__0__Impl rule__WeightedMetric__Group__1 ;
+    public final void rule__WeightedMetric__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12974:1: ( rule__WeightedMetric__Group__0__Impl rule__WeightedMetric__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12975:2: rule__WeightedMetric__Group__0__Impl rule__WeightedMetric__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__0__Impl_in_rule__WeightedMetric__Group__025731);
+            rule__WeightedMetric__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__1_in_rule__WeightedMetric__Group__025734);
+            rule__WeightedMetric__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__0"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12982:1: rule__WeightedMetric__Group__0__Impl : ( ( 'WeightedMetric' )? ) ;
+    public final void rule__WeightedMetric__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12986:1: ( ( ( 'WeightedMetric' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12987:1: ( ( 'WeightedMetric' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12987:1: ( ( 'WeightedMetric' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12988:1: ( 'WeightedMetric' )?
+            {
+             before(grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12989:1: ( 'WeightedMetric' )?
+            int alt67=2;
+            int LA67_0 = input.LA(1);
+
+            if ( (LA67_0==107) ) {
+                alt67=1;
+            }
+            switch (alt67) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:12990:2: 'WeightedMetric'
+                    {
+                    match(input,107,FollowSets001.FOLLOW_107_in_rule__WeightedMetric__Group__0__Impl25763); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13001:1: rule__WeightedMetric__Group__1 : rule__WeightedMetric__Group__1__Impl rule__WeightedMetric__Group__2 ;
+    public final void rule__WeightedMetric__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13005:1: ( rule__WeightedMetric__Group__1__Impl rule__WeightedMetric__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13006:2: rule__WeightedMetric__Group__1__Impl rule__WeightedMetric__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__1__Impl_in_rule__WeightedMetric__Group__125796);
+            rule__WeightedMetric__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__2_in_rule__WeightedMetric__Group__125799);
+            rule__WeightedMetric__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__1"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13013:1: rule__WeightedMetric__Group__1__Impl : ( ( rule__WeightedMetric__NameAssignment_1 ) ) ;
+    public final void rule__WeightedMetric__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13017:1: ( ( ( rule__WeightedMetric__NameAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13018:1: ( ( rule__WeightedMetric__NameAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13018:1: ( ( rule__WeightedMetric__NameAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13019:1: ( rule__WeightedMetric__NameAssignment_1 )
+            {
+             before(grammarAccess.getWeightedMetricAccess().getNameAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13020:1: ( rule__WeightedMetric__NameAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13020:2: rule__WeightedMetric__NameAssignment_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__NameAssignment_1_in_rule__WeightedMetric__Group__1__Impl25826);
+            rule__WeightedMetric__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13030:1: rule__WeightedMetric__Group__2 : rule__WeightedMetric__Group__2__Impl rule__WeightedMetric__Group__3 ;
+    public final void rule__WeightedMetric__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13034:1: ( rule__WeightedMetric__Group__2__Impl rule__WeightedMetric__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13035:2: rule__WeightedMetric__Group__2__Impl rule__WeightedMetric__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__2__Impl_in_rule__WeightedMetric__Group__225856);
+            rule__WeightedMetric__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__3_in_rule__WeightedMetric__Group__225859);
+            rule__WeightedMetric__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__2"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13042:1: rule__WeightedMetric__Group__2__Impl : ( ( rule__WeightedMetric__Group_2__0 )? ) ;
+    public final void rule__WeightedMetric__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13046:1: ( ( ( rule__WeightedMetric__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13047:1: ( ( rule__WeightedMetric__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13047:1: ( ( rule__WeightedMetric__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13048:1: ( rule__WeightedMetric__Group_2__0 )?
+            {
+             before(grammarAccess.getWeightedMetricAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13049:1: ( rule__WeightedMetric__Group_2__0 )?
+            int alt68=2;
+            int LA68_0 = input.LA(1);
+
+            if ( (LA68_0==43) ) {
+                alt68=1;
+            }
+            switch (alt68) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13049:2: rule__WeightedMetric__Group_2__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_2__0_in_rule__WeightedMetric__Group__2__Impl25886);
+                    rule__WeightedMetric__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__2__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13059:1: rule__WeightedMetric__Group__3 : rule__WeightedMetric__Group__3__Impl rule__WeightedMetric__Group__4 ;
+    public final void rule__WeightedMetric__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13063:1: ( rule__WeightedMetric__Group__3__Impl rule__WeightedMetric__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13064:2: rule__WeightedMetric__Group__3__Impl rule__WeightedMetric__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__3__Impl_in_rule__WeightedMetric__Group__325917);
+            rule__WeightedMetric__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__4_in_rule__WeightedMetric__Group__325920);
+            rule__WeightedMetric__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__3"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13071:1: rule__WeightedMetric__Group__3__Impl : ( '=' ) ;
+    public final void rule__WeightedMetric__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13075:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13076:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13076:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13077:1: '='
+            {
+             before(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_3()); 
+            match(input,50,FollowSets001.FOLLOW_50_in_rule__WeightedMetric__Group__3__Impl25948); 
+             after(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__3__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13090:1: rule__WeightedMetric__Group__4 : rule__WeightedMetric__Group__4__Impl rule__WeightedMetric__Group__5 ;
+    public final void rule__WeightedMetric__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13094:1: ( rule__WeightedMetric__Group__4__Impl rule__WeightedMetric__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13095:2: rule__WeightedMetric__Group__4__Impl rule__WeightedMetric__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__4__Impl_in_rule__WeightedMetric__Group__425979);
+            rule__WeightedMetric__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__5_in_rule__WeightedMetric__Group__425982);
+            rule__WeightedMetric__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__4"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13102:1: rule__WeightedMetric__Group__4__Impl : ( '(' ) ;
+    public final void rule__WeightedMetric__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13106:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13107:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13107:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13108:1: '('
+            {
+             before(grammarAccess.getWeightedMetricAccess().getLeftParenthesisKeyword_4()); 
+            match(input,51,FollowSets001.FOLLOW_51_in_rule__WeightedMetric__Group__4__Impl26010); 
+             after(grammarAccess.getWeightedMetricAccess().getLeftParenthesisKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__4__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13121:1: rule__WeightedMetric__Group__5 : rule__WeightedMetric__Group__5__Impl rule__WeightedMetric__Group__6 ;
+    public final void rule__WeightedMetric__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13125:1: ( rule__WeightedMetric__Group__5__Impl rule__WeightedMetric__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13126:2: rule__WeightedMetric__Group__5__Impl rule__WeightedMetric__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__5__Impl_in_rule__WeightedMetric__Group__526041);
+            rule__WeightedMetric__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__6_in_rule__WeightedMetric__Group__526044);
+            rule__WeightedMetric__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__5"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13133:1: rule__WeightedMetric__Group__5__Impl : ( ( rule__WeightedMetric__Group_5__0 )? ) ;
+    public final void rule__WeightedMetric__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13137:1: ( ( ( rule__WeightedMetric__Group_5__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13138:1: ( ( rule__WeightedMetric__Group_5__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13138:1: ( ( rule__WeightedMetric__Group_5__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13139:1: ( rule__WeightedMetric__Group_5__0 )?
+            {
+             before(grammarAccess.getWeightedMetricAccess().getGroup_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13140:1: ( rule__WeightedMetric__Group_5__0 )?
+            int alt69=2;
+            int LA69_0 = input.LA(1);
+
+            if ( (LA69_0==103) ) {
+                alt69=1;
+            }
+            switch (alt69) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13140:2: rule__WeightedMetric__Group_5__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_5__0_in_rule__WeightedMetric__Group__5__Impl26071);
+                    rule__WeightedMetric__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__5__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13150:1: rule__WeightedMetric__Group__6 : rule__WeightedMetric__Group__6__Impl rule__WeightedMetric__Group__7 ;
+    public final void rule__WeightedMetric__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13154:1: ( rule__WeightedMetric__Group__6__Impl rule__WeightedMetric__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13155:2: rule__WeightedMetric__Group__6__Impl rule__WeightedMetric__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__6__Impl_in_rule__WeightedMetric__Group__626102);
+            rule__WeightedMetric__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__7_in_rule__WeightedMetric__Group__626105);
+            rule__WeightedMetric__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__6"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13162:1: rule__WeightedMetric__Group__6__Impl : ( ( rule__WeightedMetric__MetricTypeAssignment_6 ) ) ;
+    public final void rule__WeightedMetric__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13166:1: ( ( ( rule__WeightedMetric__MetricTypeAssignment_6 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13167:1: ( ( rule__WeightedMetric__MetricTypeAssignment_6 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13167:1: ( ( rule__WeightedMetric__MetricTypeAssignment_6 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13168:1: ( rule__WeightedMetric__MetricTypeAssignment_6 )
+            {
+             before(grammarAccess.getWeightedMetricAccess().getMetricTypeAssignment_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13169:1: ( rule__WeightedMetric__MetricTypeAssignment_6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13169:2: rule__WeightedMetric__MetricTypeAssignment_6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__MetricTypeAssignment_6_in_rule__WeightedMetric__Group__6__Impl26132);
+            rule__WeightedMetric__MetricTypeAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getMetricTypeAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__6__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13179:1: rule__WeightedMetric__Group__7 : rule__WeightedMetric__Group__7__Impl rule__WeightedMetric__Group__8 ;
+    public final void rule__WeightedMetric__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13183:1: ( rule__WeightedMetric__Group__7__Impl rule__WeightedMetric__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13184:2: rule__WeightedMetric__Group__7__Impl rule__WeightedMetric__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__7__Impl_in_rule__WeightedMetric__Group__726162);
+            rule__WeightedMetric__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__8_in_rule__WeightedMetric__Group__726165);
+            rule__WeightedMetric__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__7"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13191:1: rule__WeightedMetric__Group__7__Impl : ( ',' ) ;
+    public final void rule__WeightedMetric__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13195:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13196:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13196:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13197:1: ','
+            {
+             before(grammarAccess.getWeightedMetricAccess().getCommaKeyword_7()); 
+            match(input,46,FollowSets001.FOLLOW_46_in_rule__WeightedMetric__Group__7__Impl26193); 
+             after(grammarAccess.getWeightedMetricAccess().getCommaKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__7__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13210:1: rule__WeightedMetric__Group__8 : rule__WeightedMetric__Group__8__Impl rule__WeightedMetric__Group__9 ;
+    public final void rule__WeightedMetric__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13214:1: ( rule__WeightedMetric__Group__8__Impl rule__WeightedMetric__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13215:2: rule__WeightedMetric__Group__8__Impl rule__WeightedMetric__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__8__Impl_in_rule__WeightedMetric__Group__826224);
+            rule__WeightedMetric__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__9_in_rule__WeightedMetric__Group__826227);
+            rule__WeightedMetric__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__8"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13222:1: rule__WeightedMetric__Group__8__Impl : ( ( rule__WeightedMetric__Group_8__0 )? ) ;
+    public final void rule__WeightedMetric__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13226:1: ( ( ( rule__WeightedMetric__Group_8__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13227:1: ( ( rule__WeightedMetric__Group_8__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13227:1: ( ( rule__WeightedMetric__Group_8__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13228:1: ( rule__WeightedMetric__Group_8__0 )?
+            {
+             before(grammarAccess.getWeightedMetricAccess().getGroup_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13229:1: ( rule__WeightedMetric__Group_8__0 )?
+            int alt70=2;
+            int LA70_0 = input.LA(1);
+
+            if ( (LA70_0==108) ) {
+                alt70=1;
+            }
+            switch (alt70) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13229:2: rule__WeightedMetric__Group_8__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_8__0_in_rule__WeightedMetric__Group__8__Impl26254);
+                    rule__WeightedMetric__Group_8__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__8__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13239:1: rule__WeightedMetric__Group__9 : rule__WeightedMetric__Group__9__Impl rule__WeightedMetric__Group__10 ;
+    public final void rule__WeightedMetric__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13243:1: ( rule__WeightedMetric__Group__9__Impl rule__WeightedMetric__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13244:2: rule__WeightedMetric__Group__9__Impl rule__WeightedMetric__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__9__Impl_in_rule__WeightedMetric__Group__926285);
+            rule__WeightedMetric__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__10_in_rule__WeightedMetric__Group__926288);
+            rule__WeightedMetric__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__9"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13251:1: rule__WeightedMetric__Group__9__Impl : ( ( rule__WeightedMetric__WeightAssignment_9 ) ) ;
+    public final void rule__WeightedMetric__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13255:1: ( ( ( rule__WeightedMetric__WeightAssignment_9 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13256:1: ( ( rule__WeightedMetric__WeightAssignment_9 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13256:1: ( ( rule__WeightedMetric__WeightAssignment_9 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13257:1: ( rule__WeightedMetric__WeightAssignment_9 )
+            {
+             before(grammarAccess.getWeightedMetricAccess().getWeightAssignment_9()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13258:1: ( rule__WeightedMetric__WeightAssignment_9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13258:2: rule__WeightedMetric__WeightAssignment_9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__WeightAssignment_9_in_rule__WeightedMetric__Group__9__Impl26315);
+            rule__WeightedMetric__WeightAssignment_9();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getWeightAssignment_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__9__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13268:1: rule__WeightedMetric__Group__10 : rule__WeightedMetric__Group__10__Impl ;
+    public final void rule__WeightedMetric__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13272:1: ( rule__WeightedMetric__Group__10__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13273:2: rule__WeightedMetric__Group__10__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group__10__Impl_in_rule__WeightedMetric__Group__1026345);
+            rule__WeightedMetric__Group__10__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__10"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13279:1: rule__WeightedMetric__Group__10__Impl : ( ')' ) ;
+    public final void rule__WeightedMetric__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13283:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13284:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13284:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13285:1: ')'
+            {
+             before(grammarAccess.getWeightedMetricAccess().getRightParenthesisKeyword_10()); 
+            match(input,52,FollowSets001.FOLLOW_52_in_rule__WeightedMetric__Group__10__Impl26373); 
+             after(grammarAccess.getWeightedMetricAccess().getRightParenthesisKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group__10__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13320:1: rule__WeightedMetric__Group_2__0 : rule__WeightedMetric__Group_2__0__Impl rule__WeightedMetric__Group_2__1 ;
+    public final void rule__WeightedMetric__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13324:1: ( rule__WeightedMetric__Group_2__0__Impl rule__WeightedMetric__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13325:2: rule__WeightedMetric__Group_2__0__Impl rule__WeightedMetric__Group_2__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_2__0__Impl_in_rule__WeightedMetric__Group_2__026426);
+            rule__WeightedMetric__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_2__1_in_rule__WeightedMetric__Group_2__026429);
+            rule__WeightedMetric__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_2__0"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13332:1: rule__WeightedMetric__Group_2__0__Impl : ( '[id:' ) ;
+    public final void rule__WeightedMetric__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13336:1: ( ( '[id:' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13337:1: ( '[id:' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13337:1: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13338:1: '[id:'
+            {
+             before(grammarAccess.getWeightedMetricAccess().getIdKeyword_2_0()); 
+            match(input,43,FollowSets001.FOLLOW_43_in_rule__WeightedMetric__Group_2__0__Impl26457); 
+             after(grammarAccess.getWeightedMetricAccess().getIdKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13351:1: rule__WeightedMetric__Group_2__1 : rule__WeightedMetric__Group_2__1__Impl rule__WeightedMetric__Group_2__2 ;
+    public final void rule__WeightedMetric__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13355:1: ( rule__WeightedMetric__Group_2__1__Impl rule__WeightedMetric__Group_2__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13356:2: rule__WeightedMetric__Group_2__1__Impl rule__WeightedMetric__Group_2__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_2__1__Impl_in_rule__WeightedMetric__Group_2__126488);
+            rule__WeightedMetric__Group_2__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_2__2_in_rule__WeightedMetric__Group_2__126491);
+            rule__WeightedMetric__Group_2__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_2__1"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13363:1: rule__WeightedMetric__Group_2__1__Impl : ( ( rule__WeightedMetric__IdAssignment_2_1 ) ) ;
+    public final void rule__WeightedMetric__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13367:1: ( ( ( rule__WeightedMetric__IdAssignment_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13368:1: ( ( rule__WeightedMetric__IdAssignment_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13368:1: ( ( rule__WeightedMetric__IdAssignment_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13369:1: ( rule__WeightedMetric__IdAssignment_2_1 )
+            {
+             before(grammarAccess.getWeightedMetricAccess().getIdAssignment_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13370:1: ( rule__WeightedMetric__IdAssignment_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13370:2: rule__WeightedMetric__IdAssignment_2_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__IdAssignment_2_1_in_rule__WeightedMetric__Group_2__1__Impl26518);
+            rule__WeightedMetric__IdAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getIdAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_2__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13380:1: rule__WeightedMetric__Group_2__2 : rule__WeightedMetric__Group_2__2__Impl ;
+    public final void rule__WeightedMetric__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13384:1: ( rule__WeightedMetric__Group_2__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13385:2: rule__WeightedMetric__Group_2__2__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_2__2__Impl_in_rule__WeightedMetric__Group_2__226548);
+            rule__WeightedMetric__Group_2__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_2__2"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_2__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13391:1: rule__WeightedMetric__Group_2__2__Impl : ( ']' ) ;
+    public final void rule__WeightedMetric__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13395:1: ( ( ']' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13396:1: ( ']' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13396:1: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13397:1: ']'
+            {
+             before(grammarAccess.getWeightedMetricAccess().getRightSquareBracketKeyword_2_2()); 
+            match(input,44,FollowSets001.FOLLOW_44_in_rule__WeightedMetric__Group_2__2__Impl26576); 
+             after(grammarAccess.getWeightedMetricAccess().getRightSquareBracketKeyword_2_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_5__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13416:1: rule__WeightedMetric__Group_5__0 : rule__WeightedMetric__Group_5__0__Impl rule__WeightedMetric__Group_5__1 ;
+    public final void rule__WeightedMetric__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13420:1: ( rule__WeightedMetric__Group_5__0__Impl rule__WeightedMetric__Group_5__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13421:2: rule__WeightedMetric__Group_5__0__Impl rule__WeightedMetric__Group_5__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_5__0__Impl_in_rule__WeightedMetric__Group_5__026613);
+            rule__WeightedMetric__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_5__1_in_rule__WeightedMetric__Group_5__026616);
+            rule__WeightedMetric__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_5__0"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_5__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13428:1: rule__WeightedMetric__Group_5__0__Impl : ( 'metricType' ) ;
+    public final void rule__WeightedMetric__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13432:1: ( ( 'metricType' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13433:1: ( 'metricType' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13433:1: ( 'metricType' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13434:1: 'metricType'
+            {
+             before(grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0()); 
+            match(input,103,FollowSets001.FOLLOW_103_in_rule__WeightedMetric__Group_5__0__Impl26644); 
+             after(grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_5__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13447:1: rule__WeightedMetric__Group_5__1 : rule__WeightedMetric__Group_5__1__Impl ;
+    public final void rule__WeightedMetric__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13451:1: ( rule__WeightedMetric__Group_5__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13452:2: rule__WeightedMetric__Group_5__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_5__1__Impl_in_rule__WeightedMetric__Group_5__126675);
+            rule__WeightedMetric__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_5__1"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_5__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13458:1: rule__WeightedMetric__Group_5__1__Impl : ( '=' ) ;
+    public final void rule__WeightedMetric__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13462:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13463:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13463:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13464:1: '='
+            {
+             before(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1()); 
+            match(input,50,FollowSets001.FOLLOW_50_in_rule__WeightedMetric__Group_5__1__Impl26703); 
+             after(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_8__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13481:1: rule__WeightedMetric__Group_8__0 : rule__WeightedMetric__Group_8__0__Impl rule__WeightedMetric__Group_8__1 ;
+    public final void rule__WeightedMetric__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13485:1: ( rule__WeightedMetric__Group_8__0__Impl rule__WeightedMetric__Group_8__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13486:2: rule__WeightedMetric__Group_8__0__Impl rule__WeightedMetric__Group_8__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_8__0__Impl_in_rule__WeightedMetric__Group_8__026738);
+            rule__WeightedMetric__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_8__1_in_rule__WeightedMetric__Group_8__026741);
+            rule__WeightedMetric__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_8__0"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_8__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13493:1: rule__WeightedMetric__Group_8__0__Impl : ( 'weight' ) ;
+    public final void rule__WeightedMetric__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13497:1: ( ( 'weight' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13498:1: ( 'weight' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13498:1: ( 'weight' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13499:1: 'weight'
+            {
+             before(grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0()); 
+            match(input,108,FollowSets001.FOLLOW_108_in_rule__WeightedMetric__Group_8__0__Impl26769); 
+             after(grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_8__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13512:1: rule__WeightedMetric__Group_8__1 : rule__WeightedMetric__Group_8__1__Impl ;
+    public final void rule__WeightedMetric__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13516:1: ( rule__WeightedMetric__Group_8__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13517:2: rule__WeightedMetric__Group_8__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WeightedMetric__Group_8__1__Impl_in_rule__WeightedMetric__Group_8__126800);
+            rule__WeightedMetric__Group_8__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_8__1"
+
+
+    // $ANTLR start "rule__WeightedMetric__Group_8__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13523:1: rule__WeightedMetric__Group_8__1__Impl : ( '=' ) ;
+    public final void rule__WeightedMetric__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13527:1: ( ( '=' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13528:1: ( '=' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13528:1: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13529:1: '='
+            {
+             before(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1()); 
+            match(input,50,FollowSets001.FOLLOW_50_in_rule__WeightedMetric__Group_8__1__Impl26828); 
+             after(grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationProcess__ImportDeclarationAssignment_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13547:1: rule__AdaptationProcess__ImportDeclarationAssignment_0 : ( ruleImportDeclaration ) ;
+    public final void rule__AdaptationProcess__ImportDeclarationAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13551:1: ( ( ruleImportDeclaration ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13552:1: ( ruleImportDeclaration )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13552:1: ( ruleImportDeclaration )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13553:1: ruleImportDeclaration
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getImportDeclarationImportDeclarationParserRuleCall_0_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleImportDeclaration_in_rule__AdaptationProcess__ImportDeclarationAssignment_026868);
+            ruleImportDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getImportDeclarationImportDeclarationParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__ImportDeclarationAssignment_0"
+
+
+    // $ANTLR start "rule__AdaptationProcess__NameAssignment_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13562:1: rule__AdaptationProcess__NameAssignment_2 : ( ruleEString ) ;
+    public final void rule__AdaptationProcess__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13566:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13567:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13567:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13568:1: ruleEString
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getNameEStringParserRuleCall_2_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__AdaptationProcess__NameAssignment_226899);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getNameEStringParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__NameAssignment_2"
+
+
+    // $ANTLR start "rule__AdaptationProcess__IdAssignment_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13577:1: rule__AdaptationProcess__IdAssignment_3_1 : ( ruleEString ) ;
+    public final void rule__AdaptationProcess__IdAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13581:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13582:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13582:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13583:1: ruleEString
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getIdEStringParserRuleCall_3_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__AdaptationProcess__IdAssignment_3_126930);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getIdEStringParserRuleCall_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__IdAssignment_3_1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__ParametersAssignment_5_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13592:1: rule__AdaptationProcess__ParametersAssignment_5_2 : ( ruleParameter ) ;
+    public final void rule__AdaptationProcess__ParametersAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13596:1: ( ( ruleParameter ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13597:1: ( ruleParameter )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13597:1: ( ruleParameter )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13598:1: ruleParameter
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleParameter_in_rule__AdaptationProcess__ParametersAssignment_5_226961);
+            ruleParameter();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__ParametersAssignment_5_2"
+
+
+    // $ANTLR start "rule__AdaptationProcess__ParametersAssignment_5_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13607:1: rule__AdaptationProcess__ParametersAssignment_5_3_1 : ( ruleParameter ) ;
+    public final void rule__AdaptationProcess__ParametersAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13611:1: ( ( ruleParameter ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13612:1: ( ruleParameter )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13612:1: ( ruleParameter )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13613:1: ruleParameter
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleParameter_in_rule__AdaptationProcess__ParametersAssignment_5_3_126992);
+            ruleParameter();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__ParametersAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__GoalAssignment_8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13622:1: rule__AdaptationProcess__GoalAssignment_8 : ( ruleOverallGoal ) ;
+    public final void rule__AdaptationProcess__GoalAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13626:1: ( ( ruleOverallGoal ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13627:1: ( ruleOverallGoal )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13627:1: ( ruleOverallGoal )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13628:1: ruleOverallGoal
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getGoalOverallGoalParserRuleCall_8_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleOverallGoal_in_rule__AdaptationProcess__GoalAssignment_827023);
+            ruleOverallGoal();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getGoalOverallGoalParserRuleCall_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__GoalAssignment_8"
+
+
+    // $ANTLR start "rule__AdaptationProcess__ActionsAssignment_11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13637:1: rule__AdaptationProcess__ActionsAssignment_11 : ( ruleAction ) ;
+    public final void rule__AdaptationProcess__ActionsAssignment_11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13641:1: ( ( ruleAction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13642:1: ( ruleAction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13642:1: ( ruleAction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13643:1: ruleAction
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_11_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAction_in_rule__AdaptationProcess__ActionsAssignment_1127054);
+            ruleAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__ActionsAssignment_11"
+
+
+    // $ANTLR start "rule__AdaptationProcess__ActionsAssignment_12_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13652:1: rule__AdaptationProcess__ActionsAssignment_12_1 : ( ruleAction ) ;
+    public final void rule__AdaptationProcess__ActionsAssignment_12_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13656:1: ( ( ruleAction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13657:1: ( ruleAction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13657:1: ( ruleAction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13658:1: ruleAction
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_12_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAction_in_rule__AdaptationProcess__ActionsAssignment_12_127085);
+            ruleAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_12_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__ActionsAssignment_12_1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__TacticsAssignment_15"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13667:1: rule__AdaptationProcess__TacticsAssignment_15 : ( ruleTactic ) ;
+    public final void rule__AdaptationProcess__TacticsAssignment_15() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13671:1: ( ( ruleTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13672:1: ( ruleTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13672:1: ( ruleTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13673:1: ruleTactic
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_15_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleTactic_in_rule__AdaptationProcess__TacticsAssignment_1527116);
+            ruleTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_15_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__TacticsAssignment_15"
+
+
+    // $ANTLR start "rule__AdaptationProcess__TacticsAssignment_16_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13682:1: rule__AdaptationProcess__TacticsAssignment_16_1 : ( ruleTactic ) ;
+    public final void rule__AdaptationProcess__TacticsAssignment_16_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13686:1: ( ( ruleTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13687:1: ( ruleTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13687:1: ( ruleTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13688:1: ruleTactic
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_16_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleTactic_in_rule__AdaptationProcess__TacticsAssignment_16_127147);
+            ruleTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_16_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__TacticsAssignment_16_1"
+
+
+    // $ANTLR start "rule__AdaptationProcess__StrategiesAssignment_19"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13697:1: rule__AdaptationProcess__StrategiesAssignment_19 : ( ruleStrategy ) ;
+    public final void rule__AdaptationProcess__StrategiesAssignment_19() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13701:1: ( ( ruleStrategy ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13702:1: ( ruleStrategy )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13702:1: ( ruleStrategy )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13703:1: ruleStrategy
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_19_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleStrategy_in_rule__AdaptationProcess__StrategiesAssignment_1927178);
+            ruleStrategy();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_19_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__StrategiesAssignment_19"
+
+
+    // $ANTLR start "rule__AdaptationProcess__StrategiesAssignment_20_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13712:1: rule__AdaptationProcess__StrategiesAssignment_20_1 : ( ruleStrategy ) ;
+    public final void rule__AdaptationProcess__StrategiesAssignment_20_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13716:1: ( ( ruleStrategy ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13717:1: ( ruleStrategy )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13717:1: ( ruleStrategy )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13718:1: ruleStrategy
+            {
+             before(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_20_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleStrategy_in_rule__AdaptationProcess__StrategiesAssignment_20_127209);
+            ruleStrategy();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_20_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationProcess__StrategiesAssignment_20_1"
+
+
+    // $ANTLR start "rule__Tactic__NameAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13727:1: rule__Tactic__NameAssignment_1 : ( ruleEString ) ;
+    public final void rule__Tactic__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13731:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13732:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13732:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13733:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Tactic__NameAssignment_127240);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__NameAssignment_1"
+
+
+    // $ANTLR start "rule__Tactic__IdAssignment_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13742:1: rule__Tactic__IdAssignment_2_1 : ( ruleEString ) ;
+    public final void rule__Tactic__IdAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13746:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13747:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13747:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13748:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_2_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Tactic__IdAssignment_2_127271);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__IdAssignment_2_1"
+
+
+    // $ANTLR start "rule__Tactic__ImplementedPlanAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13757:1: rule__Tactic__ImplementedPlanAssignment_5 : ( ruleAdaptationPlan ) ;
+    public final void rule__Tactic__ImplementedPlanAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13761:1: ( ( ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13762:1: ( ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13762:1: ( ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13763:1: ruleAdaptationPlan
+            {
+             before(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_5_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAdaptationPlan_in_rule__Tactic__ImplementedPlanAssignment_527302);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__ImplementedPlanAssignment_5"
+
+
+    // $ANTLR start "rule__Tactic__InputParamsAssignment_6_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13772:1: rule__Tactic__InputParamsAssignment_6_3 : ( ( ruleEString ) ) ;
+    public final void rule__Tactic__InputParamsAssignment_6_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13776:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13777:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13777:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13778:1: ( ruleEString )
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_3_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13779:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13780:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_3_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Tactic__InputParamsAssignment_6_327337);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_3_0_1()); 
+
+            }
+
+             after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__InputParamsAssignment_6_3"
+
+
+    // $ANTLR start "rule__Tactic__InputParamsAssignment_6_4_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13791:1: rule__Tactic__InputParamsAssignment_6_4_1 : ( ( ruleEString ) ) ;
+    public final void rule__Tactic__InputParamsAssignment_6_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13795:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13796:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13796:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13797:1: ( ruleEString )
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_4_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13798:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13799:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_4_1_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Tactic__InputParamsAssignment_6_4_127376);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_6_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__InputParamsAssignment_6_4_1"
+
+
+    // $ANTLR start "rule__Tactic__OutputParamAssignment_7_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13810:1: rule__Tactic__OutputParamAssignment_7_2 : ( ( ruleEString ) ) ;
+    public final void rule__Tactic__OutputParamAssignment_7_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13814:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13815:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13815:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13816:1: ( ruleEString )
+            {
+             before(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_7_2_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13817:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13818:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_7_2_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Tactic__OutputParamAssignment_7_227415);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_7_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_7_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__OutputParamAssignment_7_2"
+
+
+    // $ANTLR start "rule__Action__NameAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13829:1: rule__Action__NameAssignment_1 : ( ruleEString ) ;
+    public final void rule__Action__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13833:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13834:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13834:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13835:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getNameEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Action__NameAssignment_127450);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getNameEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__NameAssignment_1"
+
+
+    // $ANTLR start "rule__Action__IdAssignment_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13844:1: rule__Action__IdAssignment_2_1 : ( ruleEString ) ;
+    public final void rule__Action__IdAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13848:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13849:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13849:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13850:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Action__IdAssignment_2_127481);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__IdAssignment_2_1"
+
+
+    // $ANTLR start "rule__Action__AdaptationActionOperationAssignment_6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13859:1: rule__Action__AdaptationActionOperationAssignment_6 : ( ruleAdaptationActionOperation ) ;
+    public final void rule__Action__AdaptationActionOperationAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13863:1: ( ( ruleAdaptationActionOperation ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13864:1: ( ruleAdaptationActionOperation )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13864:1: ( ruleAdaptationActionOperation )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13865:1: ruleAdaptationActionOperation
+            {
+             before(grammarAccess.getActionAccess().getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAdaptationActionOperation_in_rule__Action__AdaptationActionOperationAssignment_627512);
+            ruleAdaptationActionOperation();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__AdaptationActionOperationAssignment_6"
+
+
+    // $ANTLR start "rule__Action__ReferredAdaptationPointAssignment_9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13874:1: rule__Action__ReferredAdaptationPointAssignment_9 : ( ( ruleEString ) ) ;
+    public final void rule__Action__ReferredAdaptationPointAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13878:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13879:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13879:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13880:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_9_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13881:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13882:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_9_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Action__ReferredAdaptationPointAssignment_927547);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_9_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__ReferredAdaptationPointAssignment_9"
+
+
+    // $ANTLR start "rule__Action__InputParamsAssignment_10_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13893:1: rule__Action__InputParamsAssignment_10_3 : ( ( ruleEString ) ) ;
+    public final void rule__Action__InputParamsAssignment_10_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13897:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13898:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13898:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13899:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_3_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13900:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13901:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_3_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Action__InputParamsAssignment_10_327586);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_3_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__InputParamsAssignment_10_3"
+
+
+    // $ANTLR start "rule__Action__InputParamsAssignment_10_4_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13912:1: rule__Action__InputParamsAssignment_10_4_1 : ( ( ruleEString ) ) ;
+    public final void rule__Action__InputParamsAssignment_10_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13916:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13917:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13917:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13918:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_4_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13919:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13920:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_4_1_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Action__InputParamsAssignment_10_4_127625);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_10_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__InputParamsAssignment_10_4_1"
+
+
+    // $ANTLR start "rule__Action__OutputParamAssignment_11_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13931:1: rule__Action__OutputParamAssignment_11_2 : ( ( ruleEString ) ) ;
+    public final void rule__Action__OutputParamAssignment_11_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13935:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13936:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13936:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13937:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_11_2_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13938:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13939:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_11_2_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Action__OutputParamAssignment_11_227664);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_11_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_11_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__OutputParamAssignment_11_2"
+
+
+    // $ANTLR start "rule__Strategy__NameAssignment_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13950:1: rule__Strategy__NameAssignment_0 : ( ruleEString ) ;
+    public final void rule__Strategy__NameAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13954:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13955:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13955:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13956:1: ruleEString
+            {
+             before(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_0_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Strategy__NameAssignment_027699);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__NameAssignment_0"
+
+
+    // $ANTLR start "rule__Strategy__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13965:1: rule__Strategy__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__Strategy__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13969:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13970:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13970:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13971:1: ruleEString
+            {
+             before(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Strategy__IdAssignment_1_127730);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__Strategy__ObjectiveAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13980:1: rule__Strategy__ObjectiveAssignment_5 : ( ( ruleEString ) ) ;
+    public final void rule__Strategy__ObjectiveAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13984:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13985:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13985:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13986:1: ( ruleEString )
+            {
+             before(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_5_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13987:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13988:1: ruleEString
+            {
+             before(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_5_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Strategy__ObjectiveAssignment_527765);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_5_0_1()); 
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__ObjectiveAssignment_5"
+
+
+    // $ANTLR start "rule__Strategy__TriggeringEventsAssignment_8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:13999:1: rule__Strategy__TriggeringEventsAssignment_8 : ( ruleEvent ) ;
+    public final void rule__Strategy__TriggeringEventsAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14003:1: ( ( ruleEvent ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14004:1: ( ruleEvent )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14004:1: ( ruleEvent )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14005:1: ruleEvent
+            {
+             before(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_8_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEvent_in_rule__Strategy__TriggeringEventsAssignment_827800);
+            ruleEvent();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__TriggeringEventsAssignment_8"
+
+
+    // $ANTLR start "rule__Strategy__TacticsAssignment_12"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14014:1: rule__Strategy__TacticsAssignment_12 : ( ruleWeightedTactic ) ;
+    public final void rule__Strategy__TacticsAssignment_12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14018:1: ( ( ruleWeightedTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14019:1: ( ruleWeightedTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14019:1: ( ruleWeightedTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14020:1: ruleWeightedTactic
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_12_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleWeightedTactic_in_rule__Strategy__TacticsAssignment_1227831);
+            ruleWeightedTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__TacticsAssignment_12"
+
+
+    // $ANTLR start "rule__Strategy__TacticsAssignment_13_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14029:1: rule__Strategy__TacticsAssignment_13_1 : ( ruleWeightedTactic ) ;
+    public final void rule__Strategy__TacticsAssignment_13_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14033:1: ( ( ruleWeightedTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14034:1: ( ruleWeightedTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14034:1: ( ruleWeightedTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14035:1: ruleWeightedTactic
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_13_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleWeightedTactic_in_rule__Strategy__TacticsAssignment_13_127862);
+            ruleWeightedTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_13_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__TacticsAssignment_13_1"
+
+
+    // $ANTLR start "rule__Strategy__WeightingFunctionAssignment_16"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14044:1: rule__Strategy__WeightingFunctionAssignment_16 : ( ruleWeightingFunction ) ;
+    public final void rule__Strategy__WeightingFunctionAssignment_16() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14048:1: ( ( ruleWeightingFunction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14049:1: ( ruleWeightingFunction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14049:1: ( ruleWeightingFunction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14050:1: ruleWeightingFunction
+            {
+             before(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_16_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleWeightingFunction_in_rule__Strategy__WeightingFunctionAssignment_1627893);
+            ruleWeightingFunction();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_16_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__WeightingFunctionAssignment_16"
+
+
+    // $ANTLR start "rule__Parameter__NameAssignment_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14059:1: rule__Parameter__NameAssignment_0 : ( ruleEString ) ;
+    public final void rule__Parameter__NameAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14063:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14064:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14064:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14065:1: ruleEString
+            {
+             before(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_0_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Parameter__NameAssignment_027924);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__NameAssignment_0"
+
+
+    // $ANTLR start "rule__Parameter__TypeAssignment_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14074:1: rule__Parameter__TypeAssignment_3 : ( ruleEString ) ;
+    public final void rule__Parameter__TypeAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14078:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14079:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14079:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14080:1: ruleEString
+            {
+             before(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_3_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Parameter__TypeAssignment_327955);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__TypeAssignment_3"
+
+
+    // $ANTLR start "rule__Parameter__ValueAssignment_4_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14089:1: rule__Parameter__ValueAssignment_4_2 : ( ruleEString ) ;
+    public final void rule__Parameter__ValueAssignment_4_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14093:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14094:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14094:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14095:1: ruleEString
+            {
+             before(grammarAccess.getParameterAccess().getValueEStringParserRuleCall_4_2_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Parameter__ValueAssignment_4_227986);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getParameterAccess().getValueEStringParserRuleCall_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__ValueAssignment_4_2"
+
+
+    // $ANTLR start "rule__OverallGoal__DescriptionAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14104:1: rule__OverallGoal__DescriptionAssignment_1 : ( ruleEString ) ;
+    public final void rule__OverallGoal__DescriptionAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14108:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14109:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14109:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14110:1: ruleEString
+            {
+             before(grammarAccess.getOverallGoalAccess().getDescriptionEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__OverallGoal__DescriptionAssignment_128017);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getOverallGoalAccess().getDescriptionEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__DescriptionAssignment_1"
+
+
+    // $ANTLR start "rule__OverallGoal__ObjectivesAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14119:1: rule__OverallGoal__ObjectivesAssignment_5 : ( ruleObjective ) ;
+    public final void rule__OverallGoal__ObjectivesAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14123:1: ( ( ruleObjective ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14124:1: ( ruleObjective )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14124:1: ( ruleObjective )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14125:1: ruleObjective
+            {
+             before(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_5_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleObjective_in_rule__OverallGoal__ObjectivesAssignment_528048);
+            ruleObjective();
+
+            state._fsp--;
+
+             after(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__ObjectivesAssignment_5"
+
+
+    // $ANTLR start "rule__OverallGoal__ObjectivesAssignment_6_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14134:1: rule__OverallGoal__ObjectivesAssignment_6_1 : ( ruleObjective ) ;
+    public final void rule__OverallGoal__ObjectivesAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14138:1: ( ( ruleObjective ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14139:1: ( ruleObjective )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14139:1: ( ruleObjective )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14140:1: ruleObjective
+            {
+             before(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_6_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleObjective_in_rule__OverallGoal__ObjectivesAssignment_6_128079);
+            ruleObjective();
+
+            state._fsp--;
+
+             after(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OverallGoal__ObjectivesAssignment_6_1"
+
+
+    // $ANTLR start "rule__ImportDeclaration__ImportURIAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14149:1: rule__ImportDeclaration__ImportURIAssignment_1 : ( ruleEString ) ;
+    public final void rule__ImportDeclaration__ImportURIAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14153:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14154:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14154:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14155:1: ruleEString
+            {
+             before(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__ImportDeclaration__ImportURIAssignment_128110);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ImportDeclaration__ImportURIAssignment_1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__NameAssignment_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14164:1: rule__AdaptationPlan__NameAssignment_0 : ( ruleEString ) ;
+    public final void rule__AdaptationPlan__NameAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14168:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14169:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14169:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14170:1: ruleEString
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_0_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__AdaptationPlan__NameAssignment_028141);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__NameAssignment_0"
+
+
+    // $ANTLR start "rule__AdaptationPlan__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14179:1: rule__AdaptationPlan__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__AdaptationPlan__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14183:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14184:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14184:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14185:1: ruleEString
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__AdaptationPlan__IdAssignment_1_128172);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__StepsAssignment_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14194:1: rule__AdaptationPlan__StepsAssignment_3_1 : ( ruleAbstractControlFlowElement ) ;
+    public final void rule__AdaptationPlan__StepsAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14198:1: ( ( ruleAbstractControlFlowElement ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14199:1: ( ruleAbstractControlFlowElement )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14199:1: ( ruleAbstractControlFlowElement )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14200:1: ruleAbstractControlFlowElement
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAbstractControlFlowElement_in_rule__AdaptationPlan__StepsAssignment_3_128203);
+            ruleAbstractControlFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__StepsAssignment_3_1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__StepsAssignment_3_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14209:1: rule__AdaptationPlan__StepsAssignment_3_2_1 : ( ruleAbstractControlFlowElement ) ;
+    public final void rule__AdaptationPlan__StepsAssignment_3_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14213:1: ( ( ruleAbstractControlFlowElement ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14214:1: ( ruleAbstractControlFlowElement )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14214:1: ( ruleAbstractControlFlowElement )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14215:1: ruleAbstractControlFlowElement
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAbstractControlFlowElement_in_rule__AdaptationPlan__StepsAssignment_3_2_128234);
+            ruleAbstractControlFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__StepsAssignment_3_2_1"
+
+
+    // $ANTLR start "rule__StartAction__IdAssignment_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14224:1: rule__StartAction__IdAssignment_2_1 : ( ruleEString ) ;
+    public final void rule__StartAction__IdAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14228:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14229:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14229:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14230:1: ruleEString
+            {
+             before(grammarAccess.getStartActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__StartAction__IdAssignment_2_128265);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStartActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__IdAssignment_2_1"
+
+
+    // $ANTLR start "rule__StopAction__IdAssignment_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14239:1: rule__StopAction__IdAssignment_2_1 : ( ruleEString ) ;
+    public final void rule__StopAction__IdAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14243:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14244:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14244:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14245:1: ruleEString
+            {
+             before(grammarAccess.getStopActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__StopAction__IdAssignment_2_128296);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStopActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__IdAssignment_2_1"
+
+
+    // $ANTLR start "rule__LoopAction__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14254:1: rule__LoopAction__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__LoopAction__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14258:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14259:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14259:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14260:1: ruleEString
+            {
+             before(grammarAccess.getLoopActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__LoopAction__IdAssignment_1_128327);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__LoopAction__CounterAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14269:1: rule__LoopAction__CounterAssignment_5 : ( ( ruleEString ) ) ;
+    public final void rule__LoopAction__CounterAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14273:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14274:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14274:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14275:1: ( ruleEString )
+            {
+             before(grammarAccess.getLoopActionAccess().getCounterParameterCrossReference_5_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14276:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14277:1: ruleEString
+            {
+             before(grammarAccess.getLoopActionAccess().getCounterParameterEStringParserRuleCall_5_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__LoopAction__CounterAssignment_528362);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopActionAccess().getCounterParameterEStringParserRuleCall_5_0_1()); 
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getCounterParameterCrossReference_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__CounterAssignment_5"
+
+
+    // $ANTLR start "rule__LoopAction__BodyAssignment_7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14288:1: rule__LoopAction__BodyAssignment_7 : ( ruleAdaptationPlan ) ;
+    public final void rule__LoopAction__BodyAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14292:1: ( ( ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14293:1: ( ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14293:1: ( ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14294:1: ruleAdaptationPlan
+            {
+             before(grammarAccess.getLoopActionAccess().getBodyAdaptationPlanParserRuleCall_7_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAdaptationPlan_in_rule__LoopAction__BodyAssignment_728397);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopActionAccess().getBodyAdaptationPlanParserRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__BodyAssignment_7"
+
+
+    // $ANTLR start "rule__BranchAction__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14303:1: rule__BranchAction__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__BranchAction__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14307:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14308:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14308:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14309:1: ruleEString
+            {
+             before(grammarAccess.getBranchActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__BranchAction__IdAssignment_1_128428);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__BranchAction__ContextAssignment_6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14318:1: rule__BranchAction__ContextAssignment_6 : ( ( ruleEString ) ) ;
+    public final void rule__BranchAction__ContextAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14322:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14323:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14323:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14324:1: ( ruleEString )
+            {
+             before(grammarAccess.getBranchActionAccess().getContextEntityCrossReference_6_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14325:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14326:1: ruleEString
+            {
+             before(grammarAccess.getBranchActionAccess().getContextEntityEStringParserRuleCall_6_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__BranchAction__ContextAssignment_628463);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchActionAccess().getContextEntityEStringParserRuleCall_6_0_1()); 
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getContextEntityCrossReference_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__ContextAssignment_6"
+
+
+    // $ANTLR start "rule__BranchAction__ConditionAssignment_10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14337:1: rule__BranchAction__ConditionAssignment_10 : ( ruleEString ) ;
+    public final void rule__BranchAction__ConditionAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14341:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14342:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14342:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14343:1: ruleEString
+            {
+             before(grammarAccess.getBranchActionAccess().getConditionEStringParserRuleCall_10_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__BranchAction__ConditionAssignment_1028498);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchActionAccess().getConditionEStringParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__ConditionAssignment_10"
+
+
+    // $ANTLR start "rule__BranchAction__ConditionTrueBranchAssignment_14"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14352:1: rule__BranchAction__ConditionTrueBranchAssignment_14 : ( ruleAdaptationPlan ) ;
+    public final void rule__BranchAction__ConditionTrueBranchAssignment_14() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14356:1: ( ( ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14357:1: ( ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14357:1: ( ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14358:1: ruleAdaptationPlan
+            {
+             before(grammarAccess.getBranchActionAccess().getConditionTrueBranchAdaptationPlanParserRuleCall_14_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAdaptationPlan_in_rule__BranchAction__ConditionTrueBranchAssignment_1428529);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchActionAccess().getConditionTrueBranchAdaptationPlanParserRuleCall_14_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__ConditionTrueBranchAssignment_14"
+
+
+    // $ANTLR start "rule__BranchAction__ConditionFalseBranchAssignment_18"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14367:1: rule__BranchAction__ConditionFalseBranchAssignment_18 : ( ruleAdaptationPlan ) ;
+    public final void rule__BranchAction__ConditionFalseBranchAssignment_18() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14371:1: ( ( ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14372:1: ( ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14372:1: ( ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14373:1: ruleAdaptationPlan
+            {
+             before(grammarAccess.getBranchActionAccess().getConditionFalseBranchAdaptationPlanParserRuleCall_18_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAdaptationPlan_in_rule__BranchAction__ConditionFalseBranchAssignment_1828560);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchActionAccess().getConditionFalseBranchAdaptationPlanParserRuleCall_18_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__ConditionFalseBranchAssignment_18"
+
+
+    // $ANTLR start "rule__ActionReference__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14382:1: rule__ActionReference__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__ActionReference__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14386:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14387:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14387:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14388:1: ruleEString
+            {
+             before(grammarAccess.getActionReferenceAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__ActionReference__IdAssignment_1_128591);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionReferenceAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__ActionReference__RefersToAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14397:1: rule__ActionReference__RefersToAssignment_4 : ( ( ruleEString ) ) ;
+    public final void rule__ActionReference__RefersToAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14401:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14402:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14402:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14403:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_4_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14404:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14405:1: ruleEString
+            {
+             before(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_4_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__ActionReference__RefersToAssignment_428626);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_4_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__RefersToAssignment_4"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14416:1: rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1 : ( ruleAdaptationDirection ) ;
+    public final void rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14420:1: ( ( ruleAdaptationDirection ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14421:1: ( ruleAdaptationDirection )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14421:1: ( ruleAdaptationDirection )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14422:1: ruleAdaptationDirection
+            {
+             before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAdaptationDirection_in_rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_128661);
+            ruleAdaptationDirection();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1"
+
+
+    // $ANTLR start "rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14431:1: rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3 : ( ruleAdaptationScope ) ;
+    public final void rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14435:1: ( ( ruleAdaptationScope ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14436:1: ( ruleAdaptationScope )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14436:1: ( ruleAdaptationScope )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14437:1: ruleAdaptationScope
+            {
+             before(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleAdaptationScope_in_rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_328692);
+            ruleAdaptationScope();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14446:1: rule__ModelVariableConfigurationRange__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__ModelVariableConfigurationRange__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14450:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14451:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14451:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14452:1: ruleEString
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__IdAssignment_1_128723);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__NameAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14461:1: rule__ModelVariableConfigurationRange__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__ModelVariableConfigurationRange__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14465:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14466:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14466:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14467:1: ruleEString
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__NameAssignment_428754);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__NameAssignment_4"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__MinValueAssignment_6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14476:1: rule__ModelVariableConfigurationRange__MinValueAssignment_6 : ( ruleEDouble ) ;
+    public final void rule__ModelVariableConfigurationRange__MinValueAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14480:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14481:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14481:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14482:1: ruleEDouble
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_6_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEDouble_in_rule__ModelVariableConfigurationRange__MinValueAssignment_628785);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__MinValueAssignment_6"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__MaxValueAssignment_8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14491:1: rule__ModelVariableConfigurationRange__MaxValueAssignment_8 : ( ruleEDouble ) ;
+    public final void rule__ModelVariableConfigurationRange__MaxValueAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14495:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14496:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14496:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14497:1: ruleEDouble
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_8_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEDouble_in_rule__ModelVariableConfigurationRange__MaxValueAssignment_828816);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__MaxValueAssignment_8"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14506:1: rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10 : ( ( ruleEString ) ) ;
+    public final void rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14510:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14511:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14511:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14512:1: ( ruleEString )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_10_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14513:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14514:1: ruleEString
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_10_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_1028851);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_10_0_1()); 
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14525:1: rule__ModelEntityConfigurationRange__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__ModelEntityConfigurationRange__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14529:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14530:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14530:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14531:1: ruleEString
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__IdAssignment_1_128886);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__NameAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14540:1: rule__ModelEntityConfigurationRange__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__ModelEntityConfigurationRange__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14544:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14545:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14545:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14546:1: ruleEString
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__NameAssignment_428917);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__NameAssignment_4"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14555:1: rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6 : ( ( ruleEString ) ) ;
+    public final void rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14559:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14560:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14560:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14561:1: ( ruleEString )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityCrossReference_6_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14562:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14563:1: ruleEString
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityEStringParserRuleCall_6_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_628952);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityEStringParserRuleCall_6_0_1()); 
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityCrossReference_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14574:1: rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8 : ( ruleVariationType ) ;
+    public final void rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14578:1: ( ( ruleVariationType ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14579:1: ( ruleVariationType )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14579:1: ( ruleVariationType )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14580:1: ruleVariationType
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_8_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleVariationType_in_rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_828987);
+            ruleVariationType();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8"
+
+
+    // $ANTLR start "rule__PropertyRange__MinValueConstraintAssignment_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14589:1: rule__PropertyRange__MinValueConstraintAssignment_3 : ( ruleOclConstraint ) ;
+    public final void rule__PropertyRange__MinValueConstraintAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14593:1: ( ( ruleOclConstraint ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14594:1: ( ruleOclConstraint )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14594:1: ( ruleOclConstraint )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14595:1: ruleOclConstraint
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleOclConstraint_in_rule__PropertyRange__MinValueConstraintAssignment_329018);
+            ruleOclConstraint();
+
+            state._fsp--;
+
+             after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__MinValueConstraintAssignment_3"
+
+
+    // $ANTLR start "rule__PropertyRange__MaxValueConstraintAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14604:1: rule__PropertyRange__MaxValueConstraintAssignment_5 : ( ruleOclConstraint ) ;
+    public final void rule__PropertyRange__MaxValueConstraintAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14608:1: ( ( ruleOclConstraint ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14609:1: ( ruleOclConstraint )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14609:1: ( ruleOclConstraint )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14610:1: ruleOclConstraint
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleOclConstraint_in_rule__PropertyRange__MaxValueConstraintAssignment_529049);
+            ruleOclConstraint();
+
+            state._fsp--;
+
+             after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__MaxValueConstraintAssignment_5"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__VariantsAssignment_2_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14619:1: rule__SetOfConfigurations__VariantsAssignment_2_2 : ( ( ruleEString ) ) ;
+    public final void rule__SetOfConfigurations__VariantsAssignment_2_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14623:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14624:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14624:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14625:1: ( ruleEString )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_2_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14626:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14627:1: ruleEString
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_2_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__SetOfConfigurations__VariantsAssignment_2_229084);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__VariantsAssignment_2_2"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__VariantsAssignment_2_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14638:1: rule__SetOfConfigurations__VariantsAssignment_2_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__SetOfConfigurations__VariantsAssignment_2_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14642:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14643:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14643:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14644:1: ( ruleEString )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_3_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14645:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14646:1: ruleEString
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_3_1_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__SetOfConfigurations__VariantsAssignment_2_3_129123);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityEStringParserRuleCall_2_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__VariantsAssignment_2_3_1"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__ValueConstraintAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14657:1: rule__SetOfConfigurations__ValueConstraintAssignment_4 : ( ruleOclConstraint ) ;
+    public final void rule__SetOfConfigurations__ValueConstraintAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14661:1: ( ( ruleOclConstraint ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14662:1: ( ruleOclConstraint )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14662:1: ( ruleOclConstraint )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14663:1: ruleOclConstraint
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintParserRuleCall_4_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleOclConstraint_in_rule__SetOfConfigurations__ValueConstraintAssignment_429158);
+            ruleOclConstraint();
+
+            state._fsp--;
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__ValueConstraintAssignment_4"
+
+
+    // $ANTLR start "rule__OclConstraint__NameAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14672:1: rule__OclConstraint__NameAssignment_1 : ( ruleEString ) ;
+    public final void rule__OclConstraint__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14676:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14677:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14677:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14678:1: ruleEString
+            {
+             before(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__OclConstraint__NameAssignment_129189);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__NameAssignment_1"
+
+
+    // $ANTLR start "rule__OclConstraint__OclStringAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14687:1: rule__OclConstraint__OclStringAssignment_4 : ( ruleEString ) ;
+    public final void rule__OclConstraint__OclStringAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14691:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14692:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14692:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14693:1: ruleEString
+            {
+             before(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__OclConstraint__OclStringAssignment_429220);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OclConstraint__OclStringAssignment_4"
+
+
+    // $ANTLR start "rule__Objective__NameAssignment_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14702:1: rule__Objective__NameAssignment_0 : ( ruleEString ) ;
+    public final void rule__Objective__NameAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14706:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14707:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14707:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14708:1: ruleEString
+            {
+             before(grammarAccess.getObjectiveAccess().getNameEStringParserRuleCall_0_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Objective__NameAssignment_029251);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getObjectiveAccess().getNameEStringParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__NameAssignment_0"
+
+
+    // $ANTLR start "rule__Objective__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14717:1: rule__Objective__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__Objective__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14721:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14722:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14722:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14723:1: ruleEString
+            {
+             before(grammarAccess.getObjectiveAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Objective__IdAssignment_1_129282);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getObjectiveAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__Objective__SpecificationsAssignment_5_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14732:1: rule__Objective__SpecificationsAssignment_5_0 : ( ruleSpecification ) ;
+    public final void rule__Objective__SpecificationsAssignment_5_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14736:1: ( ( ruleSpecification ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14737:1: ( ruleSpecification )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14737:1: ( ruleSpecification )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14738:1: ruleSpecification
+            {
+             before(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_0_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleSpecification_in_rule__Objective__SpecificationsAssignment_5_029313);
+            ruleSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__SpecificationsAssignment_5_0"
+
+
+    // $ANTLR start "rule__Objective__SpecificationsAssignment_5_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14747:1: rule__Objective__SpecificationsAssignment_5_1_1 : ( ruleSpecification ) ;
+    public final void rule__Objective__SpecificationsAssignment_5_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14751:1: ( ( ruleSpecification ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14752:1: ( ruleSpecification )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14752:1: ( ruleSpecification )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14753:1: ruleSpecification
+            {
+             before(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleSpecification_in_rule__Objective__SpecificationsAssignment_5_1_129344);
+            ruleSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__SpecificationsAssignment_5_1_1"
+
+
+    // $ANTLR start "rule__Objective__SpecificationsAssignment_5_1_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14762:1: rule__Objective__SpecificationsAssignment_5_1_2_1 : ( ruleSpecification ) ;
+    public final void rule__Objective__SpecificationsAssignment_5_1_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14766:1: ( ( ruleSpecification ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14767:1: ( ruleSpecification )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14767:1: ( ruleSpecification )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14768:1: ruleSpecification
+            {
+             before(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_2_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleSpecification_in_rule__Objective__SpecificationsAssignment_5_1_2_129375);
+            ruleSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Objective__SpecificationsAssignment_5_1_2_1"
+
+
+    // $ANTLR start "rule__Event__NameAssignment_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14777:1: rule__Event__NameAssignment_0 : ( ruleEString ) ;
+    public final void rule__Event__NameAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14781:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14782:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14782:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14783:1: ruleEString
+            {
+             before(grammarAccess.getEventAccess().getNameEStringParserRuleCall_0_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Event__NameAssignment_029406);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getEventAccess().getNameEStringParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__NameAssignment_0"
+
+
+    // $ANTLR start "rule__Event__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14792:1: rule__Event__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__Event__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14796:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14797:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14797:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14798:1: ruleEString
+            {
+             before(grammarAccess.getEventAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Event__IdAssignment_1_129437);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getEventAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__WeightedTactic__NameAssignment_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14807:1: rule__WeightedTactic__NameAssignment_0 : ( ruleEString ) ;
+    public final void rule__WeightedTactic__NameAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14811:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14812:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14812:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14813:1: ruleEString
+            {
+             before(grammarAccess.getWeightedTacticAccess().getNameEStringParserRuleCall_0_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightedTactic__NameAssignment_029468);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticAccess().getNameEStringParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__NameAssignment_0"
+
+
+    // $ANTLR start "rule__WeightedTactic__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14822:1: rule__WeightedTactic__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__WeightedTactic__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14826:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14827:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14827:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14828:1: ruleEString
+            {
+             before(grammarAccess.getWeightedTacticAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightedTactic__IdAssignment_1_129499);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__WeightedTactic__UsedTacticAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14837:1: rule__WeightedTactic__UsedTacticAssignment_5 : ( ( ruleEString ) ) ;
+    public final void rule__WeightedTactic__UsedTacticAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14841:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14842:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14842:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14843:1: ( ruleEString )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticCrossReference_5_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14844:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14845:1: ruleEString
+            {
+             before(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticEStringParserRuleCall_5_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightedTactic__UsedTacticAssignment_529534);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticEStringParserRuleCall_5_0_1()); 
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticCrossReference_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__UsedTacticAssignment_5"
+
+
+    // $ANTLR start "rule__WeightedTactic__DefaultWeightAssignment_8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14856:1: rule__WeightedTactic__DefaultWeightAssignment_8 : ( ruleEDouble ) ;
+    public final void rule__WeightedTactic__DefaultWeightAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14860:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14861:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14861:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14862:1: ruleEDouble
+            {
+             before(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_8_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEDouble_in_rule__WeightedTactic__DefaultWeightAssignment_829569);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__DefaultWeightAssignment_8"
+
+
+    // $ANTLR start "rule__WeightedTactic__CurrentWeightAssignment_11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14871:1: rule__WeightedTactic__CurrentWeightAssignment_11 : ( ruleEDouble ) ;
+    public final void rule__WeightedTactic__CurrentWeightAssignment_11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14875:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14876:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14876:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14877:1: ruleEDouble
+            {
+             before(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_11_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEDouble_in_rule__WeightedTactic__CurrentWeightAssignment_1129600);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__CurrentWeightAssignment_11"
+
+
+    // $ANTLR start "rule__WeightedTactic__LastImpactAssignment_12_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14886:1: rule__WeightedTactic__LastImpactAssignment_12_2 : ( ( ruleEString ) ) ;
+    public final void rule__WeightedTactic__LastImpactAssignment_12_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14890:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14891:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14891:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14892:1: ( ruleEString )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getLastImpactImpactCrossReference_12_2_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14893:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14894:1: ruleEString
+            {
+             before(grammarAccess.getWeightedTacticAccess().getLastImpactImpactEStringParserRuleCall_12_2_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightedTactic__LastImpactAssignment_12_229635);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticAccess().getLastImpactImpactEStringParserRuleCall_12_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getLastImpactImpactCrossReference_12_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__LastImpactAssignment_12_2"
+
+
+    // $ANTLR start "rule__WeightingFunction__NameAssignment_0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14905:1: rule__WeightingFunction__NameAssignment_0 : ( ruleEString ) ;
+    public final void rule__WeightingFunction__NameAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14909:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14910:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14910:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14911:1: ruleEString
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getNameEStringParserRuleCall_0_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightingFunction__NameAssignment_029670);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightingFunctionAccess().getNameEStringParserRuleCall_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__NameAssignment_0"
+
+
+    // $ANTLR start "rule__WeightingFunction__IdAssignment_1_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14920:1: rule__WeightingFunction__IdAssignment_1_1 : ( ruleEString ) ;
+    public final void rule__WeightingFunction__IdAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14924:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14925:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14925:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14926:1: ruleEString
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getIdEStringParserRuleCall_1_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightingFunction__IdAssignment_1_129701);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightingFunctionAccess().getIdEStringParserRuleCall_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__IdAssignment_1_1"
+
+
+    // $ANTLR start "rule__WeightingFunction__WeightingFunctionImplementationAssignment_6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14935:1: rule__WeightingFunction__WeightingFunctionImplementationAssignment_6 : ( ruleEString ) ;
+    public final void rule__WeightingFunction__WeightingFunctionImplementationAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14939:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14940:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14940:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14941:1: ruleEString
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationEStringParserRuleCall_6_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightingFunction__WeightingFunctionImplementationAssignment_629732);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationEStringParserRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__WeightingFunctionImplementationAssignment_6"
+
+
+    // $ANTLR start "rule__WeightingFunction__WeightedMetricsAssignment_10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14950:1: rule__WeightingFunction__WeightedMetricsAssignment_10 : ( ruleWeightedMetric ) ;
+    public final void rule__WeightingFunction__WeightedMetricsAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14954:1: ( ( ruleWeightedMetric ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14955:1: ( ruleWeightedMetric )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14955:1: ( ruleWeightedMetric )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14956:1: ruleWeightedMetric
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_10_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleWeightedMetric_in_rule__WeightingFunction__WeightedMetricsAssignment_1029763);
+            ruleWeightedMetric();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__WeightedMetricsAssignment_10"
+
+
+    // $ANTLR start "rule__WeightingFunction__WeightedMetricsAssignment_11_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14965:1: rule__WeightingFunction__WeightedMetricsAssignment_11_1 : ( ruleWeightedMetric ) ;
+    public final void rule__WeightingFunction__WeightedMetricsAssignment_11_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14969:1: ( ( ruleWeightedMetric ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14970:1: ( ruleWeightedMetric )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14970:1: ( ruleWeightedMetric )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14971:1: ruleWeightedMetric
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_11_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleWeightedMetric_in_rule__WeightingFunction__WeightedMetricsAssignment_11_129794);
+            ruleWeightedMetric();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_11_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__WeightedMetricsAssignment_11_1"
+
+
+    // $ANTLR start "rule__Specification__MetricTypeAssignment_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14980:1: rule__Specification__MetricTypeAssignment_3 : ( ( ruleEString ) ) ;
+    public final void rule__Specification__MetricTypeAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14984:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14985:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14985:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14986:1: ( ruleEString )
+            {
+             before(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeCrossReference_3_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14987:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14988:1: ruleEString
+            {
+             before(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeEStringParserRuleCall_3_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__Specification__MetricTypeAssignment_329829);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeEStringParserRuleCall_3_0_1()); 
+
+            }
+
+             after(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeCrossReference_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__MetricTypeAssignment_3"
+
+
+    // $ANTLR start "rule__Specification__RelationalOperatorAssignment_6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:14999:1: rule__Specification__RelationalOperatorAssignment_6 : ( ruleRelationalOperator ) ;
+    public final void rule__Specification__RelationalOperatorAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15003:1: ( ( ruleRelationalOperator ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15004:1: ( ruleRelationalOperator )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15004:1: ( ruleRelationalOperator )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15005:1: ruleRelationalOperator
+            {
+             before(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleRelationalOperator_in_rule__Specification__RelationalOperatorAssignment_629864);
+            ruleRelationalOperator();
+
+            state._fsp--;
+
+             after(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__RelationalOperatorAssignment_6"
+
+
+    // $ANTLR start "rule__Specification__ValueAssignment_9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15014:1: rule__Specification__ValueAssignment_9 : ( ruleEDouble ) ;
+    public final void rule__Specification__ValueAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15018:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15019:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15019:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15020:1: ruleEDouble
+            {
+             before(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEDouble_in_rule__Specification__ValueAssignment_929895);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Specification__ValueAssignment_9"
+
+
+    // $ANTLR start "rule__MetricValue__NameAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15040:1: rule__MetricValue__NameAssignment_1 : ( ruleEString ) ;
+    public final void rule__MetricValue__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15044:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15045:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15045:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15046:1: ruleEString
+            {
+             before(grammarAccess.getMetricValueAccess().getNameEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__MetricValue__NameAssignment_129937);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getMetricValueAccess().getNameEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__NameAssignment_1"
+
+
+    // $ANTLR start "rule__MetricValue__IdAssignment_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15055:1: rule__MetricValue__IdAssignment_2_1 : ( ruleEString ) ;
+    public final void rule__MetricValue__IdAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15059:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15060:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15060:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15061:1: ruleEString
+            {
+             before(grammarAccess.getMetricValueAccess().getIdEStringParserRuleCall_2_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__MetricValue__IdAssignment_2_129968);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getMetricValueAccess().getIdEStringParserRuleCall_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__IdAssignment_2_1"
+
+
+    // $ANTLR start "rule__MetricValue__ValueAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15070:1: rule__MetricValue__ValueAssignment_5 : ( ruleEDouble ) ;
+    public final void rule__MetricValue__ValueAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15074:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15075:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15075:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15076:1: ruleEDouble
+            {
+             before(grammarAccess.getMetricValueAccess().getValueEDoubleParserRuleCall_5_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEDouble_in_rule__MetricValue__ValueAssignment_529999);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getMetricValueAccess().getValueEDoubleParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__ValueAssignment_5"
+
+
+    // $ANTLR start "rule__MetricValue__MeasuredEntityAssignment_7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15085:1: rule__MetricValue__MeasuredEntityAssignment_7 : ( ( ruleEString ) ) ;
+    public final void rule__MetricValue__MeasuredEntityAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15089:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15090:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15090:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15091:1: ( ruleEString )
+            {
+             before(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityCrossReference_7_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15092:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15093:1: ruleEString
+            {
+             before(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityEStringParserRuleCall_7_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__MetricValue__MeasuredEntityAssignment_730034);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityEStringParserRuleCall_7_0_1()); 
+
+            }
+
+             after(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityCrossReference_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__MeasuredEntityAssignment_7"
+
+
+    // $ANTLR start "rule__MetricValue__MetricTypeAssignment_9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15104:1: rule__MetricValue__MetricTypeAssignment_9 : ( ( ruleEString ) ) ;
+    public final void rule__MetricValue__MetricTypeAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15108:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15109:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15109:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15110:1: ( ruleEString )
+            {
+             before(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeCrossReference_9_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15111:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15112:1: ruleEString
+            {
+             before(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeEStringParserRuleCall_9_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__MetricValue__MetricTypeAssignment_930073);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeEStringParserRuleCall_9_0_1()); 
+
+            }
+
+             after(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeCrossReference_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MetricValue__MetricTypeAssignment_9"
+
+
+    // $ANTLR start "rule__WeightedMetric__NameAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15127:1: rule__WeightedMetric__NameAssignment_1 : ( ruleEString ) ;
+    public final void rule__WeightedMetric__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15131:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15132:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15132:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15133:1: ruleEString
+            {
+             before(grammarAccess.getWeightedMetricAccess().getNameEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightedMetric__NameAssignment_130112);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedMetricAccess().getNameEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__NameAssignment_1"
+
+
+    // $ANTLR start "rule__WeightedMetric__IdAssignment_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15142:1: rule__WeightedMetric__IdAssignment_2_1 : ( ruleEString ) ;
+    public final void rule__WeightedMetric__IdAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15146:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15147:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15147:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15148:1: ruleEString
+            {
+             before(grammarAccess.getWeightedMetricAccess().getIdEStringParserRuleCall_2_1_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightedMetric__IdAssignment_2_130143);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedMetricAccess().getIdEStringParserRuleCall_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__IdAssignment_2_1"
+
+
+    // $ANTLR start "rule__WeightedMetric__MetricTypeAssignment_6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15157:1: rule__WeightedMetric__MetricTypeAssignment_6 : ( ( ruleEString ) ) ;
+    public final void rule__WeightedMetric__MetricTypeAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15161:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15162:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15162:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15163:1: ( ruleEString )
+            {
+             before(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeCrossReference_6_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15164:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15165:1: ruleEString
+            {
+             before(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeEStringParserRuleCall_6_0_1()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEString_in_rule__WeightedMetric__MetricTypeAssignment_630178);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeEStringParserRuleCall_6_0_1()); 
+
+            }
+
+             after(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeCrossReference_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__MetricTypeAssignment_6"
+
+
+    // $ANTLR start "rule__WeightedMetric__WeightAssignment_9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15176:1: rule__WeightedMetric__WeightAssignment_9 : ( ruleEDouble ) ;
+    public final void rule__WeightedMetric__WeightAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15180:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15181:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15181:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/antlr/internal/InternalStaLang.g:15182:1: ruleEDouble
+            {
+             before(grammarAccess.getWeightedMetricAccess().getWeightEDoubleParserRuleCall_9_0()); 
+            pushFollow(FollowSets001.FOLLOW_ruleEDouble_in_rule__WeightedMetric__WeightAssignment_930213);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedMetricAccess().getWeightEDoubleParserRuleCall_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedMetric__WeightAssignment_9"
+
+    // Delegated rules
+
+
+    protected DFA1 dfa1 = new DFA1(this);
+    static final String DFA1_eotS =
+        "\12\uffff";
+    static final String DFA1_eofS =
+        "\12\uffff";
+    static final String DFA1_minS =
+        "\1\53\3\uffff\1\4\2\uffff\2\54\1\104";
+    static final String DFA1_maxS =
+        "\1\114\3\uffff\1\5\2\uffff\2\54\1\107";
+    static final String DFA1_acceptS =
+        "\1\uffff\1\1\1\2\1\3\1\uffff\1\4\1\5\3\uffff";
+    static final String DFA1_specialS =
+        "\12\uffff}>";
+    static final String[] DFA1_transitionS = {
+            "\1\4\25\uffff\1\1\1\2\2\3\1\uffff\2\5\4\uffff\1\6",
+            "",
+            "",
+            "",
+            "\1\7\1\10",
+            "",
+            "",
+            "\1\11",
+            "\1\11",
+            "\1\3\2\uffff\1\5"
+    };
+
+    static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS);
+    static final short[] DFA1_eof = DFA.unpackEncodedString(DFA1_eofS);
+    static final char[] DFA1_min = DFA.unpackEncodedStringToUnsignedChars(DFA1_minS);
+    static final char[] DFA1_max = DFA.unpackEncodedStringToUnsignedChars(DFA1_maxS);
+    static final short[] DFA1_accept = DFA.unpackEncodedString(DFA1_acceptS);
+    static final short[] DFA1_special = DFA.unpackEncodedString(DFA1_specialS);
+    static final short[][] DFA1_transition;
+
+    static {
+        int numStates = DFA1_transitionS.length;
+        DFA1_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA1_transition[i] = DFA.unpackEncodedString(DFA1_transitionS[i]);
+        }
+    }
+
+    class DFA1 extends DFA {
+
+        public DFA1(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 1;
+            this.eot = DFA1_eot;
+            this.eof = DFA1_eof;
+            this.min = DFA1_min;
+            this.max = DFA1_max;
+            this.accept = DFA1_accept;
+            this.special = DFA1_special;
+            this.transition = DFA1_transition;
+        }
+        public String getDescription() {
+            return "998:1: rule__AbstractControlFlowElement__Alternatives : ( ( ruleStartAction ) | ( ruleStopAction ) | ( ruleLoopAction ) | ( ruleBranchAction ) | ( ruleActionReference ) );";
+        }
+    }
+ 
+
+    
+    private static class FollowSets000 {
+        public static final BitSet FOLLOW_ruleAdaptationProcess_in_entryRuleAdaptationProcess61 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAdaptationProcess68 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__0_in_ruleAdaptationProcess94 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_entryRuleAbstractControlFlowElement123 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAbstractControlFlowElement130 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AbstractControlFlowElement__Alternatives_in_ruleAbstractControlFlowElement156 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVariationType_in_entryRuleVariationType183 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleVariationType190 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VariationType__Alternatives_in_ruleVariationType216 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_entryRuleEString243 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEString250 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EString__Alternatives_in_ruleEString276 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTactic_in_entryRuleTactic303 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleTactic310 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__0_in_ruleTactic336 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAction_in_entryRuleAction363 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAction370 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__0_in_ruleAction396 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStrategy_in_entryRuleStrategy423 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStrategy430 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__0_in_ruleStrategy456 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleParameter_in_entryRuleParameter483 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleParameter490 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__0_in_ruleParameter516 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleOverallGoal_in_entryRuleOverallGoal543 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleOverallGoal550 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__0_in_ruleOverallGoal576 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleImportDeclaration_in_entryRuleImportDeclaration603 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleImportDeclaration610 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ImportDeclaration__Group__0_in_ruleImportDeclaration636 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_entryRuleAdaptationPlan663 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAdaptationPlan670 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__0_in_ruleAdaptationPlan696 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStartAction_in_entryRuleStartAction723 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStartAction730 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__0_in_ruleStartAction756 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStopAction_in_entryRuleStopAction783 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStopAction790 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__0_in_ruleStopAction816 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoopAction_in_entryRuleLoopAction843 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleLoopAction850 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__0_in_ruleLoopAction876 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranchAction_in_entryRuleBranchAction903 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleBranchAction910 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__0_in_ruleBranchAction936 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleActionReference_in_entryRuleActionReference963 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleActionReference970 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__0_in_ruleActionReference996 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationActionOperation_in_entryRuleAdaptationActionOperation1023 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAdaptationActionOperation1030 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__0_in_ruleAdaptationActionOperation1056 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleModelVariableConfigurationRange_in_entryRuleModelVariableConfigurationRange1083 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleModelVariableConfigurationRange1090 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__0_in_ruleModelVariableConfigurationRange1116 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleModelEntityConfigurationRange_in_entryRuleModelEntityConfigurationRange1143 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleModelEntityConfigurationRange1150 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__0_in_ruleModelEntityConfigurationRange1176 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_entryRuleEDouble1203 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEDouble1210 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__0_in_ruleEDouble1236 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePropertyRange_in_entryRulePropertyRange1263 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePropertyRange1270 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__0_in_rulePropertyRange1296 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSetOfConfigurations_in_entryRuleSetOfConfigurations1323 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleSetOfConfigurations1330 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__0_in_ruleSetOfConfigurations1356 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleOclConstraint_in_entryRuleOclConstraint1383 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleOclConstraint1390 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__0_in_ruleOclConstraint1416 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleObjective_in_entryRuleObjective1443 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleObjective1450 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group__0_in_ruleObjective1476 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent1503 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEvent1510 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group__0_in_ruleEvent1536 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_entryRuleWeightedTactic1563 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightedTactic1570 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__0_in_ruleWeightedTactic1596 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightingFunction_in_entryRuleWeightingFunction1623 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightingFunction1630 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__0_in_ruleWeightingFunction1656 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpecification_in_entryRuleSpecification1683 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleSpecification1690 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__0_in_ruleSpecification1716 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDate_in_entryRuleEDate1749 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEDate1756 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_11_in_ruleEDate1783 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleMetricValue_in_entryRuleMetricValue1811 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleMetricValue1818 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__0_in_ruleMetricValue1844 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedMetric_in_entryRuleWeightedMetric1873 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightedMetric1880 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__0_in_ruleWeightedMetric1906 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationScope__Alternatives_in_ruleAdaptationScope1943 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationDirection__Alternatives_in_ruleAdaptationDirection1979 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RelationalOperator__Alternatives_in_ruleRelationalOperator2015 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStartAction_in_rule__AbstractControlFlowElement__Alternatives2051 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStopAction_in_rule__AbstractControlFlowElement__Alternatives2068 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoopAction_in_rule__AbstractControlFlowElement__Alternatives2085 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranchAction_in_rule__AbstractControlFlowElement__Alternatives2102 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleActionReference_in_rule__AbstractControlFlowElement__Alternatives2119 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePropertyRange_in_rule__VariationType__Alternatives2151 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSetOfConfigurations_in_rule__VariationType__Alternatives2168 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_STRING_in_rule__EString__Alternatives2200 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__EString__Alternatives2217 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_12_in_rule__EDouble__Alternatives_4_02250 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_13_in_rule__EDouble__Alternatives_4_02270 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__SpecificationsAssignment_5_0_in_rule__Objective__Alternatives_52304 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1__0_in_rule__Objective__Alternatives_52322 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__AdaptationScope__Alternatives2356 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_15_in_rule__AdaptationScope__Alternatives2377 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_16_in_rule__AdaptationScope__Alternatives2398 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__AdaptationScope__Alternatives2419 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_18_in_rule__AdaptationScope__Alternatives2440 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_19_in_rule__AdaptationScope__Alternatives2461 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__AdaptationDirection__Alternatives2497 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__AdaptationDirection__Alternatives2518 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_21_in_rule__AdaptationDirection__Alternatives2539 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_22_in_rule__AdaptationDirection__Alternatives2560 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__RelationalOperator__Alternatives2596 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_24_in_rule__RelationalOperator__Alternatives2617 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_25_in_rule__RelationalOperator__Alternatives2638 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_26_in_rule__RelationalOperator__Alternatives2659 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_27_in_rule__RelationalOperator__Alternatives2680 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_28_in_rule__RelationalOperator__Alternatives2701 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__RelationalOperator__Alternatives2722 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_30_in_rule__RelationalOperator__Alternatives2743 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__RelationalOperator__Alternatives2764 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_32_in_rule__RelationalOperator__Alternatives2785 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_33_in_rule__RelationalOperator__Alternatives2806 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_34_in_rule__RelationalOperator__Alternatives2827 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__0__Impl_in_rule__AdaptationProcess__Group__02860 = new BitSet(new long[]{0x0000000800000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__1_in_rule__AdaptationProcess__Group__02863 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__ImportDeclarationAssignment_0_in_rule__AdaptationProcess__Group__0__Impl2890 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__1__Impl_in_rule__AdaptationProcess__Group__12921 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__2_in_rule__AdaptationProcess__Group__12924 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_35_in_rule__AdaptationProcess__Group__1__Impl2952 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__2__Impl_in_rule__AdaptationProcess__Group__22983 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__3_in_rule__AdaptationProcess__Group__22986 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__NameAssignment_2_in_rule__AdaptationProcess__Group__2__Impl3013 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__3__Impl_in_rule__AdaptationProcess__Group__33043 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__4_in_rule__AdaptationProcess__Group__33046 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_3__0_in_rule__AdaptationProcess__Group__3__Impl3073 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__4__Impl_in_rule__AdaptationProcess__Group__43104 = new BitSet(new long[]{0x0000202000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__5_in_rule__AdaptationProcess__Group__43107 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__AdaptationProcess__Group__4__Impl3135 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__5__Impl_in_rule__AdaptationProcess__Group__53166 = new BitSet(new long[]{0x0000202000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__6_in_rule__AdaptationProcess__Group__53169 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5__0_in_rule__AdaptationProcess__Group__5__Impl3196 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__6__Impl_in_rule__AdaptationProcess__Group__63227 = new BitSet(new long[]{0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__7_in_rule__AdaptationProcess__Group__63230 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_37_in_rule__AdaptationProcess__Group__6__Impl3258 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__7__Impl_in_rule__AdaptationProcess__Group__73289 = new BitSet(new long[]{0x4000000000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__8_in_rule__AdaptationProcess__Group__73292 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_38_in_rule__AdaptationProcess__Group__7__Impl3320 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__8__Impl_in_rule__AdaptationProcess__Group__83351 = new BitSet(new long[]{0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__9_in_rule__AdaptationProcess__Group__83354 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__GoalAssignment_8_in_rule__AdaptationProcess__Group__8__Impl3381 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__9__Impl_in_rule__AdaptationProcess__Group__93411 = new BitSet(new long[]{0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__10_in_rule__AdaptationProcess__Group__93414 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_39_in_rule__AdaptationProcess__Group__9__Impl3442 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__10__Impl_in_rule__AdaptationProcess__Group__103473 = new BitSet(new long[]{0x0040000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__11_in_rule__AdaptationProcess__Group__103476 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_38_in_rule__AdaptationProcess__Group__10__Impl3504 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__11__Impl_in_rule__AdaptationProcess__Group__113535 = new BitSet(new long[]{0x0000410000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__12_in_rule__AdaptationProcess__Group__113538 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__ActionsAssignment_11_in_rule__AdaptationProcess__Group__11__Impl3565 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__12__Impl_in_rule__AdaptationProcess__Group__123595 = new BitSet(new long[]{0x0000410000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__13_in_rule__AdaptationProcess__Group__123598 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_12__0_in_rule__AdaptationProcess__Group__12__Impl3625 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__13__Impl_in_rule__AdaptationProcess__Group__133656 = new BitSet(new long[]{0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__14_in_rule__AdaptationProcess__Group__133659 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_rule__AdaptationProcess__Group__13__Impl3687 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__14__Impl_in_rule__AdaptationProcess__Group__143718 = new BitSet(new long[]{0x0000800000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__15_in_rule__AdaptationProcess__Group__143721 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_38_in_rule__AdaptationProcess__Group__14__Impl3749 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__15__Impl_in_rule__AdaptationProcess__Group__153780 = new BitSet(new long[]{0x0000420000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__16_in_rule__AdaptationProcess__Group__153783 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__TacticsAssignment_15_in_rule__AdaptationProcess__Group__15__Impl3810 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__16__Impl_in_rule__AdaptationProcess__Group__163840 = new BitSet(new long[]{0x0000420000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__17_in_rule__AdaptationProcess__Group__163843 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_16__0_in_rule__AdaptationProcess__Group__16__Impl3870 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__17__Impl_in_rule__AdaptationProcess__Group__173901 = new BitSet(new long[]{0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__18_in_rule__AdaptationProcess__Group__173904 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_41_in_rule__AdaptationProcess__Group__17__Impl3932 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__18__Impl_in_rule__AdaptationProcess__Group__183963 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__19_in_rule__AdaptationProcess__Group__183966 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_38_in_rule__AdaptationProcess__Group__18__Impl3994 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__19__Impl_in_rule__AdaptationProcess__Group__194025 = new BitSet(new long[]{0x0000440000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__20_in_rule__AdaptationProcess__Group__194028 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__StrategiesAssignment_19_in_rule__AdaptationProcess__Group__19__Impl4055 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__20__Impl_in_rule__AdaptationProcess__Group__204085 = new BitSet(new long[]{0x0000440000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__21_in_rule__AdaptationProcess__Group__204088 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_20__0_in_rule__AdaptationProcess__Group__20__Impl4115 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group__21__Impl_in_rule__AdaptationProcess__Group__214146 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__AdaptationProcess__Group__21__Impl4174 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_3__0__Impl_in_rule__AdaptationProcess__Group_3__04249 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_3__1_in_rule__AdaptationProcess__Group_3__04252 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__AdaptationProcess__Group_3__0__Impl4280 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_3__1__Impl_in_rule__AdaptationProcess__Group_3__14311 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_3__2_in_rule__AdaptationProcess__Group_3__14314 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__IdAssignment_3_1_in_rule__AdaptationProcess__Group_3__1__Impl4341 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_3__2__Impl_in_rule__AdaptationProcess__Group_3__24371 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__AdaptationProcess__Group_3__2__Impl4399 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5__0__Impl_in_rule__AdaptationProcess__Group_5__04436 = new BitSet(new long[]{0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5__1_in_rule__AdaptationProcess__Group_5__04439 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_45_in_rule__AdaptationProcess__Group_5__0__Impl4467 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5__1__Impl_in_rule__AdaptationProcess__Group_5__14498 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5__2_in_rule__AdaptationProcess__Group_5__14501 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_38_in_rule__AdaptationProcess__Group_5__1__Impl4529 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5__2__Impl_in_rule__AdaptationProcess__Group_5__24560 = new BitSet(new long[]{0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5__3_in_rule__AdaptationProcess__Group_5__24563 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__ParametersAssignment_5_2_in_rule__AdaptationProcess__Group_5__2__Impl4590 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5__3__Impl_in_rule__AdaptationProcess__Group_5__34620 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5_3__0_in_rule__AdaptationProcess__Group_5__3__Impl4647 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5_3__0__Impl_in_rule__AdaptationProcess__Group_5_3__04686 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5_3__1_in_rule__AdaptationProcess__Group_5_3__04689 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__AdaptationProcess__Group_5_3__0__Impl4717 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_5_3__1__Impl_in_rule__AdaptationProcess__Group_5_3__14748 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__ParametersAssignment_5_3_1_in_rule__AdaptationProcess__Group_5_3__1__Impl4775 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_12__0__Impl_in_rule__AdaptationProcess__Group_12__04809 = new BitSet(new long[]{0x0040000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_12__1_in_rule__AdaptationProcess__Group_12__04812 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__AdaptationProcess__Group_12__0__Impl4840 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_12__1__Impl_in_rule__AdaptationProcess__Group_12__14871 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__ActionsAssignment_12_1_in_rule__AdaptationProcess__Group_12__1__Impl4898 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_16__0__Impl_in_rule__AdaptationProcess__Group_16__04932 = new BitSet(new long[]{0x0000800000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_16__1_in_rule__AdaptationProcess__Group_16__04935 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__AdaptationProcess__Group_16__0__Impl4963 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_16__1__Impl_in_rule__AdaptationProcess__Group_16__14994 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__TacticsAssignment_16_1_in_rule__AdaptationProcess__Group_16__1__Impl5021 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_20__0__Impl_in_rule__AdaptationProcess__Group_20__05055 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_20__1_in_rule__AdaptationProcess__Group_20__05058 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__AdaptationProcess__Group_20__0__Impl5086 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__Group_20__1__Impl_in_rule__AdaptationProcess__Group_20__15117 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationProcess__StrategiesAssignment_20_1_in_rule__AdaptationProcess__Group_20__1__Impl5144 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__0__Impl_in_rule__Tactic__Group__05178 = new BitSet(new long[]{0x0000800000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__1_in_rule__Tactic__Group__05181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_47_in_rule__Tactic__Group__0__Impl5210 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__1__Impl_in_rule__Tactic__Group__15243 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__2_in_rule__Tactic__Group__15246 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__NameAssignment_1_in_rule__Tactic__Group__1__Impl5273 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__2__Impl_in_rule__Tactic__Group__25303 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__3_in_rule__Tactic__Group__25306 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_2__0_in_rule__Tactic__Group__2__Impl5333 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__3__Impl_in_rule__Tactic__Group__35364 = new BitSet(new long[]{0x0001000000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__4_in_rule__Tactic__Group__35367 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__Tactic__Group__3__Impl5395 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__4__Impl_in_rule__Tactic__Group__45426 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__5_in_rule__Tactic__Group__45429 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_48_in_rule__Tactic__Group__4__Impl5457 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__5__Impl_in_rule__Tactic__Group__55488 = new BitSet(new long[]{0x0022040000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__6_in_rule__Tactic__Group__55491 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__ImplementedPlanAssignment_5_in_rule__Tactic__Group__5__Impl5518 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__6__Impl_in_rule__Tactic__Group__65548 = new BitSet(new long[]{0x0022040000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__7_in_rule__Tactic__Group__65551 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__0_in_rule__Tactic__Group__6__Impl5578 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__7__Impl_in_rule__Tactic__Group__75609 = new BitSet(new long[]{0x0022040000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__8_in_rule__Tactic__Group__75612 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_7__0_in_rule__Tactic__Group__7__Impl5639 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__8__Impl_in_rule__Tactic__Group__85670 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__Tactic__Group__8__Impl5698 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_2__0__Impl_in_rule__Tactic__Group_2__05747 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_2__1_in_rule__Tactic__Group_2__05750 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__Tactic__Group_2__0__Impl5778 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_2__1__Impl_in_rule__Tactic__Group_2__15809 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_2__2_in_rule__Tactic__Group_2__15812 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__IdAssignment_2_1_in_rule__Tactic__Group_2__1__Impl5839 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_2__2__Impl_in_rule__Tactic__Group_2__25869 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__Tactic__Group_2__2__Impl5897 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__0__Impl_in_rule__Tactic__Group_6__05934 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__1_in_rule__Tactic__Group_6__05937 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_49_in_rule__Tactic__Group_6__0__Impl5965 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__1__Impl_in_rule__Tactic__Group_6__15996 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__2_in_rule__Tactic__Group_6__15999 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Tactic__Group_6__1__Impl6027 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__2__Impl_in_rule__Tactic__Group_6__26058 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__3_in_rule__Tactic__Group_6__26061 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__Tactic__Group_6__2__Impl6089 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__3__Impl_in_rule__Tactic__Group_6__36120 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__4_in_rule__Tactic__Group_6__36123 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__InputParamsAssignment_6_3_in_rule__Tactic__Group_6__3__Impl6150 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__4__Impl_in_rule__Tactic__Group_6__46180 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__5_in_rule__Tactic__Group_6__46183 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6_4__0_in_rule__Tactic__Group_6__4__Impl6210 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__5__Impl_in_rule__Tactic__Group_6__56241 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__Tactic__Group_6__5__Impl6269 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6_4__0__Impl_in_rule__Tactic__Group_6_4__06312 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6_4__1_in_rule__Tactic__Group_6_4__06315 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__Tactic__Group_6_4__0__Impl6343 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6_4__1__Impl_in_rule__Tactic__Group_6_4__16374 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__InputParamsAssignment_6_4_1_in_rule__Tactic__Group_6_4__1__Impl6401 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_7__0__Impl_in_rule__Tactic__Group_7__06435 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_7__1_in_rule__Tactic__Group_7__06438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_53_in_rule__Tactic__Group_7__0__Impl6466 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_7__1__Impl_in_rule__Tactic__Group_7__16497 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_7__2_in_rule__Tactic__Group_7__16500 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Tactic__Group_7__1__Impl6528 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_7__2__Impl_in_rule__Tactic__Group_7__26559 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__OutputParamAssignment_7_2_in_rule__Tactic__Group_7__2__Impl6586 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__0__Impl_in_rule__Action__Group__06622 = new BitSet(new long[]{0x0040000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group__1_in_rule__Action__Group__06625 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_54_in_rule__Action__Group__0__Impl6654 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__1__Impl_in_rule__Action__Group__16687 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__2_in_rule__Action__Group__16690 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__NameAssignment_1_in_rule__Action__Group__1__Impl6717 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__2__Impl_in_rule__Action__Group__26747 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__3_in_rule__Action__Group__26750 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_2__0_in_rule__Action__Group__2__Impl6777 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__3__Impl_in_rule__Action__Group__36808 = new BitSet(new long[]{0x0080000000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__4_in_rule__Action__Group__36811 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__Action__Group__3__Impl6839 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__4__Impl_in_rule__Action__Group__46870 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__5_in_rule__Action__Group__46873 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_55_in_rule__Action__Group__4__Impl6901 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__5__Impl_in_rule__Action__Group__56932 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__6_in_rule__Action__Group__56935 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Action__Group__5__Impl6963 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__6__Impl_in_rule__Action__Group__66994 = new BitSet(new long[]{0x0100000000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__7_in_rule__Action__Group__66997 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__AdaptationActionOperationAssignment_6_in_rule__Action__Group__6__Impl7024 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__7__Impl_in_rule__Action__Group__77054 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__8_in_rule__Action__Group__77057 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_56_in_rule__Action__Group__7__Impl7085 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__8__Impl_in_rule__Action__Group__87116 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group__9_in_rule__Action__Group__87119 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Action__Group__8__Impl7147 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__9__Impl_in_rule__Action__Group__97178 = new BitSet(new long[]{0x0022040000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__10_in_rule__Action__Group__97181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__ReferredAdaptationPointAssignment_9_in_rule__Action__Group__9__Impl7208 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__10__Impl_in_rule__Action__Group__107238 = new BitSet(new long[]{0x0022040000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__11_in_rule__Action__Group__107241 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__0_in_rule__Action__Group__10__Impl7268 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__11__Impl_in_rule__Action__Group__117299 = new BitSet(new long[]{0x0022040000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__12_in_rule__Action__Group__117302 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_11__0_in_rule__Action__Group__11__Impl7329 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__12__Impl_in_rule__Action__Group__127360 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__Action__Group__12__Impl7388 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_2__0__Impl_in_rule__Action__Group_2__07445 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group_2__1_in_rule__Action__Group_2__07448 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__Action__Group_2__0__Impl7476 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_2__1__Impl_in_rule__Action__Group_2__17507 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group_2__2_in_rule__Action__Group_2__17510 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__IdAssignment_2_1_in_rule__Action__Group_2__1__Impl7537 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_2__2__Impl_in_rule__Action__Group_2__27567 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__Action__Group_2__2__Impl7595 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__0__Impl_in_rule__Action__Group_10__07632 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__1_in_rule__Action__Group_10__07635 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_49_in_rule__Action__Group_10__0__Impl7663 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__1__Impl_in_rule__Action__Group_10__17694 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__2_in_rule__Action__Group_10__17697 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Action__Group_10__1__Impl7725 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__2__Impl_in_rule__Action__Group_10__27756 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__3_in_rule__Action__Group_10__27759 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__Action__Group_10__2__Impl7787 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__3__Impl_in_rule__Action__Group_10__37818 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__4_in_rule__Action__Group_10__37821 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__InputParamsAssignment_10_3_in_rule__Action__Group_10__3__Impl7848 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__4__Impl_in_rule__Action__Group_10__47878 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__5_in_rule__Action__Group_10__47881 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10_4__0_in_rule__Action__Group_10__4__Impl7908 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10__5__Impl_in_rule__Action__Group_10__57939 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__Action__Group_10__5__Impl7967 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10_4__0__Impl_in_rule__Action__Group_10_4__08010 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group_10_4__1_in_rule__Action__Group_10_4__08013 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__Action__Group_10_4__0__Impl8041 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_10_4__1__Impl_in_rule__Action__Group_10_4__18072 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__InputParamsAssignment_10_4_1_in_rule__Action__Group_10_4__1__Impl8099 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_11__0__Impl_in_rule__Action__Group_11__08133 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Action__Group_11__1_in_rule__Action__Group_11__08136 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_53_in_rule__Action__Group_11__0__Impl8164 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_11__1__Impl_in_rule__Action__Group_11__18195 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group_11__2_in_rule__Action__Group_11__18198 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Action__Group_11__1__Impl8226 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_11__2__Impl_in_rule__Action__Group_11__28257 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__OutputParamAssignment_11_2_in_rule__Action__Group_11__2__Impl8284 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__0__Impl_in_rule__Strategy__Group__08320 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__1_in_rule__Strategy__Group__08323 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__NameAssignment_0_in_rule__Strategy__Group__0__Impl8350 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__1__Impl_in_rule__Strategy__Group__18380 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__2_in_rule__Strategy__Group__18383 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_1__0_in_rule__Strategy__Group__1__Impl8410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__2__Impl_in_rule__Strategy__Group__28441 = new BitSet(new long[]{0x0200000000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__3_in_rule__Strategy__Group__28444 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__Strategy__Group__2__Impl8472 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__3__Impl_in_rule__Strategy__Group__38503 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__4_in_rule__Strategy__Group__38506 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_57_in_rule__Strategy__Group__3__Impl8534 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__4__Impl_in_rule__Strategy__Group__48565 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__5_in_rule__Strategy__Group__48568 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Strategy__Group__4__Impl8596 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__5__Impl_in_rule__Strategy__Group__58627 = new BitSet(new long[]{0x0400000000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__6_in_rule__Strategy__Group__58630 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__ObjectiveAssignment_5_in_rule__Strategy__Group__5__Impl8657 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__6__Impl_in_rule__Strategy__Group__68687 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__7_in_rule__Strategy__Group__68690 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_58_in_rule__Strategy__Group__6__Impl8718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__7__Impl_in_rule__Strategy__Group__78749 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__8_in_rule__Strategy__Group__78752 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Strategy__Group__7__Impl8780 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__8__Impl_in_rule__Strategy__Group__88811 = new BitSet(new long[]{0x0000010000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__9_in_rule__Strategy__Group__88814 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__TriggeringEventsAssignment_8_in_rule__Strategy__Group__8__Impl8841 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__9__Impl_in_rule__Strategy__Group__98871 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__10_in_rule__Strategy__Group__98874 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_rule__Strategy__Group__9__Impl8902 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__10__Impl_in_rule__Strategy__Group__108933 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__11_in_rule__Strategy__Group__108936 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Strategy__Group__10__Impl8964 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__11__Impl_in_rule__Strategy__Group__118995 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__12_in_rule__Strategy__Group__118998 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__Strategy__Group__11__Impl9026 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__12__Impl_in_rule__Strategy__Group__129057 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__13_in_rule__Strategy__Group__129060 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__TacticsAssignment_12_in_rule__Strategy__Group__12__Impl9087 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__13__Impl_in_rule__Strategy__Group__139117 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__14_in_rule__Strategy__Group__139120 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_13__0_in_rule__Strategy__Group__13__Impl9147 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__14__Impl_in_rule__Strategy__Group__149178 = new BitSet(new long[]{0x0800000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__15_in_rule__Strategy__Group__149181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__Strategy__Group__14__Impl9209 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__15__Impl_in_rule__Strategy__Group__159240 = new BitSet(new long[]{0x0800000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__16_in_rule__Strategy__Group__159243 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_59_in_rule__Strategy__Group__15__Impl9272 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__16__Impl_in_rule__Strategy__Group__169305 = new BitSet(new long[]{0x0000040000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__17_in_rule__Strategy__Group__169308 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__WeightingFunctionAssignment_16_in_rule__Strategy__Group__16__Impl9335 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__17__Impl_in_rule__Strategy__Group__179365 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__Strategy__Group__17__Impl9393 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_1__0__Impl_in_rule__Strategy__Group_1__09460 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_1__1_in_rule__Strategy__Group_1__09463 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__Strategy__Group_1__0__Impl9491 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_1__1__Impl_in_rule__Strategy__Group_1__19522 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_1__2_in_rule__Strategy__Group_1__19525 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__IdAssignment_1_1_in_rule__Strategy__Group_1__1__Impl9552 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_1__2__Impl_in_rule__Strategy__Group_1__29582 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__Strategy__Group_1__2__Impl9610 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_13__0__Impl_in_rule__Strategy__Group_13__09647 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_13__1_in_rule__Strategy__Group_13__09650 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__Strategy__Group_13__0__Impl9678 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_13__1__Impl_in_rule__Strategy__Group_13__19709 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__TacticsAssignment_13_1_in_rule__Strategy__Group_13__1__Impl9736 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__0__Impl_in_rule__Parameter__Group__09770 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__1_in_rule__Parameter__Group__09773 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__NameAssignment_0_in_rule__Parameter__Group__0__Impl9800 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__1__Impl_in_rule__Parameter__Group__19830 = new BitSet(new long[]{0x1000000000000030L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__2_in_rule__Parameter__Group__19833 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__Parameter__Group__1__Impl9861 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__2__Impl_in_rule__Parameter__Group__29892 = new BitSet(new long[]{0x1000000000000030L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__3_in_rule__Parameter__Group__29895 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_2__0_in_rule__Parameter__Group__2__Impl9922 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__3__Impl_in_rule__Parameter__Group__39953 = new BitSet(new long[]{0x0000440000000000L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__4_in_rule__Parameter__Group__39956 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__TypeAssignment_3_in_rule__Parameter__Group__3__Impl9983 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__4__Impl_in_rule__Parameter__Group__410013 = new BitSet(new long[]{0x0000440000000000L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__5_in_rule__Parameter__Group__410016 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4__0_in_rule__Parameter__Group__4__Impl10043 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__5__Impl_in_rule__Parameter__Group__510074 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__Parameter__Group__5__Impl10102 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_2__0__Impl_in_rule__Parameter__Group_2__010145 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_2__1_in_rule__Parameter__Group_2__010148 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_60_in_rule__Parameter__Group_2__0__Impl10176 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_2__1__Impl_in_rule__Parameter__Group_2__110207 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Parameter__Group_2__1__Impl10235 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4__0__Impl_in_rule__Parameter__Group_4__010270 = new BitSet(new long[]{0x2000000000000030L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4__1_in_rule__Parameter__Group_4__010273 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__Parameter__Group_4__0__Impl10301 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4__1__Impl_in_rule__Parameter__Group_4__110332 = new BitSet(new long[]{0x2000000000000030L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4__2_in_rule__Parameter__Group_4__110335 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4_1__0_in_rule__Parameter__Group_4__1__Impl10362 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4__2__Impl_in_rule__Parameter__Group_4__210393 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__ValueAssignment_4_2_in_rule__Parameter__Group_4__2__Impl10420 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4_1__0__Impl_in_rule__Parameter__Group_4_1__010456 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4_1__1_in_rule__Parameter__Group_4_1__010459 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_61_in_rule__Parameter__Group_4_1__0__Impl10487 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group_4_1__1__Impl_in_rule__Parameter__Group_4_1__110518 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Parameter__Group_4_1__1__Impl10546 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__0__Impl_in_rule__OverallGoal__Group__010581 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__1_in_rule__OverallGoal__Group__010584 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_62_in_rule__OverallGoal__Group__0__Impl10612 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__1__Impl_in_rule__OverallGoal__Group__110643 = new BitSet(new long[]{0x8000000000000000L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__2_in_rule__OverallGoal__Group__110646 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__DescriptionAssignment_1_in_rule__OverallGoal__Group__1__Impl10673 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__2__Impl_in_rule__OverallGoal__Group__210703 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__3_in_rule__OverallGoal__Group__210706 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_63_in_rule__OverallGoal__Group__2__Impl10734 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__3__Impl_in_rule__OverallGoal__Group__310765 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__4_in_rule__OverallGoal__Group__310768 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__OverallGoal__Group__3__Impl10796 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__4__Impl_in_rule__OverallGoal__Group__410827 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__5_in_rule__OverallGoal__Group__410830 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__OverallGoal__Group__4__Impl10858 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__5__Impl_in_rule__OverallGoal__Group__510889 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__6_in_rule__OverallGoal__Group__510892 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__ObjectivesAssignment_5_in_rule__OverallGoal__Group__5__Impl10919 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__6__Impl_in_rule__OverallGoal__Group__610949 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__7_in_rule__OverallGoal__Group__610952 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group_6__0_in_rule__OverallGoal__Group__6__Impl10979 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group__7__Impl_in_rule__OverallGoal__Group__711010 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__OverallGoal__Group__7__Impl11038 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group_6__0__Impl_in_rule__OverallGoal__Group_6__011085 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group_6__1_in_rule__OverallGoal__Group_6__011088 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__OverallGoal__Group_6__0__Impl11116 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__Group_6__1__Impl_in_rule__OverallGoal__Group_6__111147 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OverallGoal__ObjectivesAssignment_6_1_in_rule__OverallGoal__Group_6__1__Impl11174 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ImportDeclaration__Group__0__Impl_in_rule__ImportDeclaration__Group__011208 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ImportDeclaration__Group__1_in_rule__ImportDeclaration__Group__011211 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_64_in_rule__ImportDeclaration__Group__0__Impl11239 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ImportDeclaration__Group__1__Impl_in_rule__ImportDeclaration__Group__111270 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ImportDeclaration__ImportURIAssignment_1_in_rule__ImportDeclaration__Group__1__Impl11297 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__0__Impl_in_rule__AdaptationPlan__Group__011331 = new BitSet(new long[]{0x0004080000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__1_in_rule__AdaptationPlan__Group__011334 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__NameAssignment_0_in_rule__AdaptationPlan__Group__0__Impl11361 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__1__Impl_in_rule__AdaptationPlan__Group__111391 = new BitSet(new long[]{0x0004080000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__2_in_rule__AdaptationPlan__Group__111394 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_1__0_in_rule__AdaptationPlan__Group__1__Impl11421 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__2__Impl_in_rule__AdaptationPlan__Group__211452 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__3_in_rule__AdaptationPlan__Group__211455 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__AdaptationPlan__Group__2__Impl11483 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__3__Impl_in_rule__AdaptationPlan__Group__311514 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3__0_in_rule__AdaptationPlan__Group__3__Impl11541 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_1__0__Impl_in_rule__AdaptationPlan__Group_1__011580 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_1__1_in_rule__AdaptationPlan__Group_1__011583 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__AdaptationPlan__Group_1__0__Impl11611 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_1__1__Impl_in_rule__AdaptationPlan__Group_1__111642 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_1__2_in_rule__AdaptationPlan__Group_1__111645 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__IdAssignment_1_1_in_rule__AdaptationPlan__Group_1__1__Impl11672 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_1__2__Impl_in_rule__AdaptationPlan__Group_1__211702 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__AdaptationPlan__Group_1__2__Impl11730 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3__0__Impl_in_rule__AdaptationPlan__Group_3__011767 = new BitSet(new long[]{0x0000080000000000L,0x00000000000010DEL});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3__1_in_rule__AdaptationPlan__Group_3__011770 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__AdaptationPlan__Group_3__0__Impl11798 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3__1__Impl_in_rule__AdaptationPlan__Group_3__111829 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3__2_in_rule__AdaptationPlan__Group_3__111832 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__StepsAssignment_3_1_in_rule__AdaptationPlan__Group_3__1__Impl11859 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3__2__Impl_in_rule__AdaptationPlan__Group_3__211889 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3__3_in_rule__AdaptationPlan__Group_3__211892 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3_2__0_in_rule__AdaptationPlan__Group_3__2__Impl11919 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3__3__Impl_in_rule__AdaptationPlan__Group_3__311950 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__AdaptationPlan__Group_3__3__Impl11978 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3_2__0__Impl_in_rule__AdaptationPlan__Group_3_2__012017 = new BitSet(new long[]{0x0000080000000000L,0x00000000000010DEL});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3_2__1_in_rule__AdaptationPlan__Group_3_2__012020 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__AdaptationPlan__Group_3_2__0__Impl12048 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_3_2__1__Impl_in_rule__AdaptationPlan__Group_3_2__112079 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__StepsAssignment_3_2_1_in_rule__AdaptationPlan__Group_3_2__1__Impl12106 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__0__Impl_in_rule__StartAction__Group__012140 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__1_in_rule__StartAction__Group__012143 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__1__Impl_in_rule__StartAction__Group__112201 = new BitSet(new long[]{0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__2_in_rule__StartAction__Group__112204 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__StartAction__Group__1__Impl12232 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__2__Impl_in_rule__StartAction__Group__212263 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group_2__0_in_rule__StartAction__Group__2__Impl12290 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group_2__0__Impl_in_rule__StartAction__Group_2__012327 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__StartAction__Group_2__1_in_rule__StartAction__Group_2__012330 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__StartAction__Group_2__0__Impl12358 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group_2__1__Impl_in_rule__StartAction__Group_2__112389 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__StartAction__Group_2__2_in_rule__StartAction__Group_2__112392 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__IdAssignment_2_1_in_rule__StartAction__Group_2__1__Impl12419 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group_2__2__Impl_in_rule__StartAction__Group_2__212449 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__StartAction__Group_2__2__Impl12477 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__0__Impl_in_rule__StopAction__Group__012514 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__1_in_rule__StopAction__Group__012517 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__1__Impl_in_rule__StopAction__Group__112575 = new BitSet(new long[]{0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__2_in_rule__StopAction__Group__112578 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_66_in_rule__StopAction__Group__1__Impl12606 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__2__Impl_in_rule__StopAction__Group__212637 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group_2__0_in_rule__StopAction__Group__2__Impl12664 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group_2__0__Impl_in_rule__StopAction__Group_2__012701 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__StopAction__Group_2__1_in_rule__StopAction__Group_2__012704 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__StopAction__Group_2__0__Impl12732 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group_2__1__Impl_in_rule__StopAction__Group_2__112763 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__StopAction__Group_2__2_in_rule__StopAction__Group_2__112766 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__IdAssignment_2_1_in_rule__StopAction__Group_2__1__Impl12793 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group_2__2__Impl_in_rule__StopAction__Group_2__212823 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__StopAction__Group_2__2__Impl12851 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__0__Impl_in_rule__LoopAction__Group__012888 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000018L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__1_in_rule__LoopAction__Group__012891 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__LoopAction__Group__0__Impl12920 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__1__Impl_in_rule__LoopAction__Group__112953 = new BitSet(new long[]{0x0000080000000000L,0x0000000000000018L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__2_in_rule__LoopAction__Group__112956 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group_1__0_in_rule__LoopAction__Group__1__Impl12983 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__2__Impl_in_rule__LoopAction__Group__213014 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__3_in_rule__LoopAction__Group__213017 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_68_in_rule__LoopAction__Group__2__Impl13045 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__3__Impl_in_rule__LoopAction__Group__313076 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__4_in_rule__LoopAction__Group__313079 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_69_in_rule__LoopAction__Group__3__Impl13107 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__4__Impl_in_rule__LoopAction__Group__413138 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__5_in_rule__LoopAction__Group__413141 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__LoopAction__Group__4__Impl13169 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__5__Impl_in_rule__LoopAction__Group__513200 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__6_in_rule__LoopAction__Group__513203 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__CounterAssignment_5_in_rule__LoopAction__Group__5__Impl13230 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__6__Impl_in_rule__LoopAction__Group__613260 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__7_in_rule__LoopAction__Group__613263 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__LoopAction__Group__6__Impl13291 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__7__Impl_in_rule__LoopAction__Group__713322 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__8_in_rule__LoopAction__Group__713325 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__BodyAssignment_7_in_rule__LoopAction__Group__7__Impl13352 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__8__Impl_in_rule__LoopAction__Group__813382 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__LoopAction__Group__8__Impl13410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group_1__0__Impl_in_rule__LoopAction__Group_1__013459 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group_1__1_in_rule__LoopAction__Group_1__013462 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__LoopAction__Group_1__0__Impl13490 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group_1__1__Impl_in_rule__LoopAction__Group_1__113521 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group_1__2_in_rule__LoopAction__Group_1__113524 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__IdAssignment_1_1_in_rule__LoopAction__Group_1__1__Impl13551 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group_1__2__Impl_in_rule__LoopAction__Group_1__213581 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__LoopAction__Group_1__2__Impl13609 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__0__Impl_in_rule__BranchAction__Group__013646 = new BitSet(new long[]{0x0000080000000000L,0x00000000000000C0L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__1_in_rule__BranchAction__Group__013649 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_70_in_rule__BranchAction__Group__0__Impl13678 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__1__Impl_in_rule__BranchAction__Group__113711 = new BitSet(new long[]{0x0000080000000000L,0x00000000000000C0L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__2_in_rule__BranchAction__Group__113714 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_1__0_in_rule__BranchAction__Group__1__Impl13741 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__2__Impl_in_rule__BranchAction__Group__213772 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__3_in_rule__BranchAction__Group__213775 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_71_in_rule__BranchAction__Group__2__Impl13803 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__3__Impl_in_rule__BranchAction__Group__313834 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__4_in_rule__BranchAction__Group__313837 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__BranchAction__Group__3__Impl13865 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__4__Impl_in_rule__BranchAction__Group__413896 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__5_in_rule__BranchAction__Group__413899 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_72_in_rule__BranchAction__Group__4__Impl13927 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__5__Impl_in_rule__BranchAction__Group__513958 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__6_in_rule__BranchAction__Group__513961 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__BranchAction__Group__5__Impl13989 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__6__Impl_in_rule__BranchAction__Group__614020 = new BitSet(new long[]{0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__7_in_rule__BranchAction__Group__614023 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__ContextAssignment_6_in_rule__BranchAction__Group__6__Impl14050 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__7__Impl_in_rule__BranchAction__Group__714080 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__8_in_rule__BranchAction__Group__714083 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__BranchAction__Group__7__Impl14111 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__8__Impl_in_rule__BranchAction__Group__814142 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__9_in_rule__BranchAction__Group__814145 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_73_in_rule__BranchAction__Group__8__Impl14173 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__9__Impl_in_rule__BranchAction__Group__914204 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__10_in_rule__BranchAction__Group__914207 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__BranchAction__Group__9__Impl14235 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__10__Impl_in_rule__BranchAction__Group__1014266 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__11_in_rule__BranchAction__Group__1014269 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__ConditionAssignment_10_in_rule__BranchAction__Group__10__Impl14296 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__11__Impl_in_rule__BranchAction__Group__1114326 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__12_in_rule__BranchAction__Group__1114329 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__BranchAction__Group__11__Impl14357 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__12__Impl_in_rule__BranchAction__Group__1214388 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__13_in_rule__BranchAction__Group__1214391 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_74_in_rule__BranchAction__Group__12__Impl14419 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__13__Impl_in_rule__BranchAction__Group__1314450 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__14_in_rule__BranchAction__Group__1314453 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__BranchAction__Group__13__Impl14481 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__14__Impl_in_rule__BranchAction__Group__1414512 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__15_in_rule__BranchAction__Group__1414515 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__ConditionTrueBranchAssignment_14_in_rule__BranchAction__Group__14__Impl14542 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__15__Impl_in_rule__BranchAction__Group__1514572 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__16_in_rule__BranchAction__Group__1514575 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__BranchAction__Group__15__Impl14603 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__16__Impl_in_rule__BranchAction__Group__1614634 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__17_in_rule__BranchAction__Group__1614637 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_75_in_rule__BranchAction__Group__16__Impl14665 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__17__Impl_in_rule__BranchAction__Group__1714696 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__18_in_rule__BranchAction__Group__1714699 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__BranchAction__Group__17__Impl14727 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__18__Impl_in_rule__BranchAction__Group__1814758 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__19_in_rule__BranchAction__Group__1814761 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__ConditionFalseBranchAssignment_18_in_rule__BranchAction__Group__18__Impl14788 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__19__Impl_in_rule__BranchAction__Group__1914818 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__BranchAction__Group__19__Impl14846 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_1__0__Impl_in_rule__BranchAction__Group_1__014917 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_1__1_in_rule__BranchAction__Group_1__014920 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__BranchAction__Group_1__0__Impl14948 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_1__1__Impl_in_rule__BranchAction__Group_1__114979 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_1__2_in_rule__BranchAction__Group_1__114982 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__IdAssignment_1_1_in_rule__BranchAction__Group_1__1__Impl15009 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_1__2__Impl_in_rule__BranchAction__Group_1__215039 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__BranchAction__Group_1__2__Impl15067 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__0__Impl_in_rule__ActionReference__Group__015104 = new BitSet(new long[]{0x0008080000000000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__1_in_rule__ActionReference__Group__015107 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_76_in_rule__ActionReference__Group__0__Impl15135 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__1__Impl_in_rule__ActionReference__Group__115166 = new BitSet(new long[]{0x0008080000000000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__2_in_rule__ActionReference__Group__115169 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_1__0_in_rule__ActionReference__Group__1__Impl15196 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__2__Impl_in_rule__ActionReference__Group__215227 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__3_in_rule__ActionReference__Group__215230 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__ActionReference__Group__2__Impl15258 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__3__Impl_in_rule__ActionReference__Group__315289 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__4_in_rule__ActionReference__Group__315292 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_77_in_rule__ActionReference__Group__3__Impl15320 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__4__Impl_in_rule__ActionReference__Group__415351 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__5_in_rule__ActionReference__Group__415354 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__RefersToAssignment_4_in_rule__ActionReference__Group__4__Impl15381 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__5__Impl_in_rule__ActionReference__Group__515411 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__ActionReference__Group__5__Impl15439 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_1__0__Impl_in_rule__ActionReference__Group_1__015482 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_1__1_in_rule__ActionReference__Group_1__015485 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__ActionReference__Group_1__0__Impl15513 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_1__1__Impl_in_rule__ActionReference__Group_1__115544 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_1__2_in_rule__ActionReference__Group_1__115547 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__IdAssignment_1_1_in_rule__ActionReference__Group_1__1__Impl15574 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_1__2__Impl_in_rule__ActionReference__Group_1__215604 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__ActionReference__Group_1__2__Impl15632 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__0__Impl_in_rule__AdaptationActionOperation__Group__015669 = new BitSet(new long[]{0x0000000000704000L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__1_in_rule__AdaptationActionOperation__Group__015672 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__AdaptationActionOperation__Group__0__Impl15700 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__1__Impl_in_rule__AdaptationActionOperation__Group__115731 = new BitSet(new long[]{0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__2_in_rule__AdaptationActionOperation__Group__115734 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_1_in_rule__AdaptationActionOperation__Group__1__Impl15761 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__2__Impl_in_rule__AdaptationActionOperation__Group__215791 = new BitSet(new long[]{0x00000000000FC000L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__3_in_rule__AdaptationActionOperation__Group__215794 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__AdaptationActionOperation__Group__2__Impl15822 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__3__Impl_in_rule__AdaptationActionOperation__Group__315853 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__4_in_rule__AdaptationActionOperation__Group__315856 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_3_in_rule__AdaptationActionOperation__Group__3__Impl15883 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationActionOperation__Group__4__Impl_in_rule__AdaptationActionOperation__Group__415913 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__AdaptationActionOperation__Group__4__Impl15941 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__0__Impl_in_rule__ModelVariableConfigurationRange__Group__015982 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__1_in_rule__ModelVariableConfigurationRange__Group__015985 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_78_in_rule__ModelVariableConfigurationRange__Group__0__Impl16013 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__1__Impl_in_rule__ModelVariableConfigurationRange__Group__116044 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__2_in_rule__ModelVariableConfigurationRange__Group__116047 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group_1__0_in_rule__ModelVariableConfigurationRange__Group__1__Impl16074 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__2__Impl_in_rule__ModelVariableConfigurationRange__Group__216105 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__3_in_rule__ModelVariableConfigurationRange__Group__216108 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__ModelVariableConfigurationRange__Group__2__Impl16136 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__3__Impl_in_rule__ModelVariableConfigurationRange__Group__316167 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__4_in_rule__ModelVariableConfigurationRange__Group__316170 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_79_in_rule__ModelVariableConfigurationRange__Group__3__Impl16198 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__4__Impl_in_rule__ModelVariableConfigurationRange__Group__416229 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__5_in_rule__ModelVariableConfigurationRange__Group__416232 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__NameAssignment_4_in_rule__ModelVariableConfigurationRange__Group__4__Impl16259 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__5__Impl_in_rule__ModelVariableConfigurationRange__Group__516289 = new BitSet(new long[]{0x0000000000000040L,0x0000000000600000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__6_in_rule__ModelVariableConfigurationRange__Group__516292 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_80_in_rule__ModelVariableConfigurationRange__Group__5__Impl16320 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__6__Impl_in_rule__ModelVariableConfigurationRange__Group__616351 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__7_in_rule__ModelVariableConfigurationRange__Group__616354 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__MinValueAssignment_6_in_rule__ModelVariableConfigurationRange__Group__6__Impl16381 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__7__Impl_in_rule__ModelVariableConfigurationRange__Group__716411 = new BitSet(new long[]{0x0000000000000040L,0x0000000000600000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__8_in_rule__ModelVariableConfigurationRange__Group__716414 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_81_in_rule__ModelVariableConfigurationRange__Group__7__Impl16442 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__8__Impl_in_rule__ModelVariableConfigurationRange__Group__816473 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__9_in_rule__ModelVariableConfigurationRange__Group__816476 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__MaxValueAssignment_8_in_rule__ModelVariableConfigurationRange__Group__8__Impl16503 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__9__Impl_in_rule__ModelVariableConfigurationRange__Group__916533 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__10_in_rule__ModelVariableConfigurationRange__Group__916536 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_82_in_rule__ModelVariableConfigurationRange__Group__9__Impl16564 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__10__Impl_in_rule__ModelVariableConfigurationRange__Group__1016595 = new BitSet(new long[]{0x0000040000000000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__11_in_rule__ModelVariableConfigurationRange__Group__1016598 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_10_in_rule__ModelVariableConfigurationRange__Group__10__Impl16625 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__11__Impl_in_rule__ModelVariableConfigurationRange__Group__1116655 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__ModelVariableConfigurationRange__Group__11__Impl16683 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group_1__0__Impl_in_rule__ModelVariableConfigurationRange__Group_1__016738 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group_1__1_in_rule__ModelVariableConfigurationRange__Group_1__016741 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__ModelVariableConfigurationRange__Group_1__0__Impl16769 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group_1__1__Impl_in_rule__ModelVariableConfigurationRange__Group_1__116800 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group_1__2_in_rule__ModelVariableConfigurationRange__Group_1__116803 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__IdAssignment_1_1_in_rule__ModelVariableConfigurationRange__Group_1__1__Impl16830 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group_1__2__Impl_in_rule__ModelVariableConfigurationRange__Group_1__216860 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__ModelVariableConfigurationRange__Group_1__2__Impl16888 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__0__Impl_in_rule__ModelEntityConfigurationRange__Group__016925 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__1_in_rule__ModelEntityConfigurationRange__Group__016928 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_83_in_rule__ModelEntityConfigurationRange__Group__0__Impl16956 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__1__Impl_in_rule__ModelEntityConfigurationRange__Group__116987 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__2_in_rule__ModelEntityConfigurationRange__Group__116990 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_1__0_in_rule__ModelEntityConfigurationRange__Group__1__Impl17017 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__2__Impl_in_rule__ModelEntityConfigurationRange__Group__217048 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__3_in_rule__ModelEntityConfigurationRange__Group__217051 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__ModelEntityConfigurationRange__Group__2__Impl17079 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__3__Impl_in_rule__ModelEntityConfigurationRange__Group__317110 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__4_in_rule__ModelEntityConfigurationRange__Group__317113 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_79_in_rule__ModelEntityConfigurationRange__Group__3__Impl17141 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__4__Impl_in_rule__ModelEntityConfigurationRange__Group__417172 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__5_in_rule__ModelEntityConfigurationRange__Group__417175 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__NameAssignment_4_in_rule__ModelEntityConfigurationRange__Group__4__Impl17202 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__5__Impl_in_rule__ModelEntityConfigurationRange__Group__517232 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__6_in_rule__ModelEntityConfigurationRange__Group__517235 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_82_in_rule__ModelEntityConfigurationRange__Group__5__Impl17263 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__6__Impl_in_rule__ModelEntityConfigurationRange__Group__617294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__7_in_rule__ModelEntityConfigurationRange__Group__617297 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_6_in_rule__ModelEntityConfigurationRange__Group__6__Impl17324 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__7__Impl_in_rule__ModelEntityConfigurationRange__Group__717354 = new BitSet(new long[]{0x0000000000000000L,0x0000000004800000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__8_in_rule__ModelEntityConfigurationRange__Group__717357 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_84_in_rule__ModelEntityConfigurationRange__Group__7__Impl17385 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__8__Impl_in_rule__ModelEntityConfigurationRange__Group__817416 = new BitSet(new long[]{0x0000040000000000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__9_in_rule__ModelEntityConfigurationRange__Group__817419 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_8_in_rule__ModelEntityConfigurationRange__Group__8__Impl17446 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__9__Impl_in_rule__ModelEntityConfigurationRange__Group__917476 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__ModelEntityConfigurationRange__Group__9__Impl17504 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_1__0__Impl_in_rule__ModelEntityConfigurationRange__Group_1__017555 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_1__1_in_rule__ModelEntityConfigurationRange__Group_1__017558 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__ModelEntityConfigurationRange__Group_1__0__Impl17586 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_1__1__Impl_in_rule__ModelEntityConfigurationRange__Group_1__117617 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_1__2_in_rule__ModelEntityConfigurationRange__Group_1__117620 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__IdAssignment_1_1_in_rule__ModelEntityConfigurationRange__Group_1__1__Impl17647 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_1__2__Impl_in_rule__ModelEntityConfigurationRange__Group_1__217677 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__ModelEntityConfigurationRange__Group_1__2__Impl17705 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__0__Impl_in_rule__EDouble__Group__017742 = new BitSet(new long[]{0x0000000000000040L,0x0000000000600000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__1_in_rule__EDouble__Group__017745 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_85_in_rule__EDouble__Group__0__Impl17774 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__1__Impl_in_rule__EDouble__Group__117807 = new BitSet(new long[]{0x0000000000000040L,0x0000000000600000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__2_in_rule__EDouble__Group__117810 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EDouble__Group__1__Impl17838 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__2__Impl_in_rule__EDouble__Group__217869 = new BitSet(new long[]{0x0000000000000040L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__3_in_rule__EDouble__Group__217872 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_86_in_rule__EDouble__Group__2__Impl17900 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__3__Impl_in_rule__EDouble__Group__317931 = new BitSet(new long[]{0x0000000000003000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__4_in_rule__EDouble__Group__317934 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EDouble__Group__3__Impl17961 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__4__Impl_in_rule__EDouble__Group__417990 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__0_in_rule__EDouble__Group__4__Impl18017 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__0__Impl_in_rule__EDouble__Group_4__018058 = new BitSet(new long[]{0x0000000000000040L,0x0000000000200000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__1_in_rule__EDouble__Group_4__018061 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Alternatives_4_0_in_rule__EDouble__Group_4__0__Impl18088 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__1__Impl_in_rule__EDouble__Group_4__118118 = new BitSet(new long[]{0x0000000000000040L,0x0000000000200000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__2_in_rule__EDouble__Group_4__118121 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_85_in_rule__EDouble__Group_4__1__Impl18150 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__2__Impl_in_rule__EDouble__Group_4__218183 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EDouble__Group_4__2__Impl18210 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__0__Impl_in_rule__PropertyRange__Group__018245 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__1_in_rule__PropertyRange__Group__018248 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_87_in_rule__PropertyRange__Group__0__Impl18276 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__1__Impl_in_rule__PropertyRange__Group__118307 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__2_in_rule__PropertyRange__Group__118310 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__PropertyRange__Group__1__Impl18338 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__2__Impl_in_rule__PropertyRange__Group__218369 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__3_in_rule__PropertyRange__Group__218372 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_88_in_rule__PropertyRange__Group__2__Impl18400 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__3__Impl_in_rule__PropertyRange__Group__318431 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__4_in_rule__PropertyRange__Group__318434 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__MinValueConstraintAssignment_3_in_rule__PropertyRange__Group__3__Impl18461 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__4__Impl_in_rule__PropertyRange__Group__418491 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__5_in_rule__PropertyRange__Group__418494 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_89_in_rule__PropertyRange__Group__4__Impl18522 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__5__Impl_in_rule__PropertyRange__Group__518553 = new BitSet(new long[]{0x0000040000000000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__6_in_rule__PropertyRange__Group__518556 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__MaxValueConstraintAssignment_5_in_rule__PropertyRange__Group__5__Impl18583 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__6__Impl_in_rule__PropertyRange__Group__618613 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__PropertyRange__Group__6__Impl18641 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__0__Impl_in_rule__SetOfConfigurations__Group__018686 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__1_in_rule__SetOfConfigurations__Group__018689 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_90_in_rule__SetOfConfigurations__Group__0__Impl18717 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__1__Impl_in_rule__SetOfConfigurations__Group__118748 = new BitSet(new long[]{0x0000000000000000L,0x0000000018000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__2_in_rule__SetOfConfigurations__Group__118751 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__SetOfConfigurations__Group__1__Impl18779 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__2__Impl_in_rule__SetOfConfigurations__Group__218810 = new BitSet(new long[]{0x0000000000000000L,0x0000000018000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__3_in_rule__SetOfConfigurations__Group__218813 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__0_in_rule__SetOfConfigurations__Group__2__Impl18840 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__3__Impl_in_rule__SetOfConfigurations__Group__318871 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__4_in_rule__SetOfConfigurations__Group__318874 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_91_in_rule__SetOfConfigurations__Group__3__Impl18902 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__4__Impl_in_rule__SetOfConfigurations__Group__418933 = new BitSet(new long[]{0x0000040000000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__5_in_rule__SetOfConfigurations__Group__418936 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__ValueConstraintAssignment_4_in_rule__SetOfConfigurations__Group__4__Impl18963 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__5__Impl_in_rule__SetOfConfigurations__Group__518993 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__SetOfConfigurations__Group__5__Impl19021 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__0__Impl_in_rule__SetOfConfigurations__Group_2__019064 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__1_in_rule__SetOfConfigurations__Group_2__019067 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_92_in_rule__SetOfConfigurations__Group_2__0__Impl19095 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__1__Impl_in_rule__SetOfConfigurations__Group_2__119126 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__2_in_rule__SetOfConfigurations__Group_2__119129 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__SetOfConfigurations__Group_2__1__Impl19157 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__2__Impl_in_rule__SetOfConfigurations__Group_2__219188 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__3_in_rule__SetOfConfigurations__Group_2__219191 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__VariantsAssignment_2_2_in_rule__SetOfConfigurations__Group_2__2__Impl19218 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__3__Impl_in_rule__SetOfConfigurations__Group_2__319248 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__4_in_rule__SetOfConfigurations__Group_2__319251 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2_3__0_in_rule__SetOfConfigurations__Group_2__3__Impl19278 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2__4__Impl_in_rule__SetOfConfigurations__Group_2__419309 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__SetOfConfigurations__Group_2__4__Impl19337 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2_3__0__Impl_in_rule__SetOfConfigurations__Group_2_3__019378 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2_3__1_in_rule__SetOfConfigurations__Group_2_3__019381 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__SetOfConfigurations__Group_2_3__0__Impl19409 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_2_3__1__Impl_in_rule__SetOfConfigurations__Group_2_3__119440 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__VariantsAssignment_2_3_1_in_rule__SetOfConfigurations__Group_2_3__1__Impl19467 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__0__Impl_in_rule__OclConstraint__Group__019501 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__1_in_rule__OclConstraint__Group__019504 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_93_in_rule__OclConstraint__Group__0__Impl19532 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__1__Impl_in_rule__OclConstraint__Group__119563 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__2_in_rule__OclConstraint__Group__119566 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OclConstraint__NameAssignment_1_in_rule__OclConstraint__Group__1__Impl19593 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__2__Impl_in_rule__OclConstraint__Group__219623 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__3_in_rule__OclConstraint__Group__219626 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__OclConstraint__Group__2__Impl19654 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__3__Impl_in_rule__OclConstraint__Group__319685 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__4_in_rule__OclConstraint__Group__319688 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_94_in_rule__OclConstraint__Group__3__Impl19716 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__4__Impl_in_rule__OclConstraint__Group__419747 = new BitSet(new long[]{0x0000040000000000L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__5_in_rule__OclConstraint__Group__419750 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OclConstraint__OclStringAssignment_4_in_rule__OclConstraint__Group__4__Impl19777 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__OclConstraint__Group__5__Impl_in_rule__OclConstraint__Group__519807 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__OclConstraint__Group__5__Impl19835 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group__0__Impl_in_rule__Objective__Group__019878 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group__1_in_rule__Objective__Group__019881 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__NameAssignment_0_in_rule__Objective__Group__0__Impl19908 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group__1__Impl_in_rule__Objective__Group__119938 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group__2_in_rule__Objective__Group__119941 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_1__0_in_rule__Objective__Group__1__Impl19968 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group__2__Impl_in_rule__Objective__Group__219999 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group__3_in_rule__Objective__Group__220002 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__Objective__Group__2__Impl20030 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group__3__Impl_in_rule__Objective__Group__320061 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group__4_in_rule__Objective__Group__320064 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_95_in_rule__Objective__Group__3__Impl20092 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group__4__Impl_in_rule__Objective__Group__420123 = new BitSet(new long[]{0x0008000000000000L,0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group__5_in_rule__Objective__Group__420126 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__Objective__Group__4__Impl20154 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group__5__Impl_in_rule__Objective__Group__520185 = new BitSet(new long[]{0x0000040000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group__6_in_rule__Objective__Group__520188 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Alternatives_5_in_rule__Objective__Group__5__Impl20215 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group__6__Impl_in_rule__Objective__Group__620245 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__Objective__Group__6__Impl20273 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_1__0__Impl_in_rule__Objective__Group_1__020318 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Objective__Group_1__1_in_rule__Objective__Group_1__020321 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__Objective__Group_1__0__Impl20349 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_1__1__Impl_in_rule__Objective__Group_1__120380 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group_1__2_in_rule__Objective__Group_1__120383 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__IdAssignment_1_1_in_rule__Objective__Group_1__1__Impl20410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_1__2__Impl_in_rule__Objective__Group_1__220440 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__Objective__Group_1__2__Impl20468 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1__0__Impl_in_rule__Objective__Group_5_1__020505 = new BitSet(new long[]{0x0008000000000000L,0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1__1_in_rule__Objective__Group_5_1__020508 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__Objective__Group_5_1__0__Impl20536 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1__1__Impl_in_rule__Objective__Group_5_1__120567 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1__2_in_rule__Objective__Group_5_1__120570 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__SpecificationsAssignment_5_1_1_in_rule__Objective__Group_5_1__1__Impl20597 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1__2__Impl_in_rule__Objective__Group_5_1__220627 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1__3_in_rule__Objective__Group_5_1__220630 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1_2__0_in_rule__Objective__Group_5_1__2__Impl20657 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1__3__Impl_in_rule__Objective__Group_5_1__320688 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__Objective__Group_5_1__3__Impl20716 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1_2__0__Impl_in_rule__Objective__Group_5_1_2__020755 = new BitSet(new long[]{0x0008000000000000L,0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1_2__1_in_rule__Objective__Group_5_1_2__020758 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__Objective__Group_5_1_2__0__Impl20786 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__Group_5_1_2__1__Impl_in_rule__Objective__Group_5_1_2__120817 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Objective__SpecificationsAssignment_5_1_2_1_in_rule__Objective__Group_5_1_2__1__Impl20844 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group__0__Impl_in_rule__Event__Group__020878 = new BitSet(new long[]{0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__Event__Group__1_in_rule__Event__Group__020881 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__NameAssignment_0_in_rule__Event__Group__0__Impl20908 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group__1__Impl_in_rule__Event__Group__120938 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group_1__0_in_rule__Event__Group__1__Impl20965 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group_1__0__Impl_in_rule__Event__Group_1__021000 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Event__Group_1__1_in_rule__Event__Group_1__021003 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__Event__Group_1__0__Impl21031 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group_1__1__Impl_in_rule__Event__Group_1__121062 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__Event__Group_1__2_in_rule__Event__Group_1__121065 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__IdAssignment_1_1_in_rule__Event__Group_1__1__Impl21092 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group_1__2__Impl_in_rule__Event__Group_1__221122 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__Event__Group_1__2__Impl21150 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__0__Impl_in_rule__WeightedTactic__Group__021187 = new BitSet(new long[]{0x0004080000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__1_in_rule__WeightedTactic__Group__021190 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__NameAssignment_0_in_rule__WeightedTactic__Group__0__Impl21217 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__1__Impl_in_rule__WeightedTactic__Group__121247 = new BitSet(new long[]{0x0004080000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__2_in_rule__WeightedTactic__Group__121250 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_1__0_in_rule__WeightedTactic__Group__1__Impl21277 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__2__Impl_in_rule__WeightedTactic__Group__221308 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__3_in_rule__WeightedTactic__Group__221311 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightedTactic__Group__2__Impl21339 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__3__Impl_in_rule__WeightedTactic__Group__321370 = new BitSet(new long[]{0x0000000000000030L,0x0000000100000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__4_in_rule__WeightedTactic__Group__321373 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__WeightedTactic__Group__3__Impl21401 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__4__Impl_in_rule__WeightedTactic__Group__421432 = new BitSet(new long[]{0x0000000000000030L,0x0000000100000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__5_in_rule__WeightedTactic__Group__421435 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_4__0_in_rule__WeightedTactic__Group__4__Impl21462 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__5__Impl_in_rule__WeightedTactic__Group__521493 = new BitSet(new long[]{0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__6_in_rule__WeightedTactic__Group__521496 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__UsedTacticAssignment_5_in_rule__WeightedTactic__Group__5__Impl21523 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__6__Impl_in_rule__WeightedTactic__Group__621553 = new BitSet(new long[]{0x0000000000000040L,0x0000000200600000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__7_in_rule__WeightedTactic__Group__621556 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__WeightedTactic__Group__6__Impl21584 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__7__Impl_in_rule__WeightedTactic__Group__721615 = new BitSet(new long[]{0x0000000000000040L,0x0000000200600000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__8_in_rule__WeightedTactic__Group__721618 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_7__0_in_rule__WeightedTactic__Group__7__Impl21645 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__8__Impl_in_rule__WeightedTactic__Group__821676 = new BitSet(new long[]{0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__9_in_rule__WeightedTactic__Group__821679 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__DefaultWeightAssignment_8_in_rule__WeightedTactic__Group__8__Impl21706 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__9__Impl_in_rule__WeightedTactic__Group__921736 = new BitSet(new long[]{0x0000000000000040L,0x0000000400600000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__10_in_rule__WeightedTactic__Group__921739 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__WeightedTactic__Group__9__Impl21767 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__10__Impl_in_rule__WeightedTactic__Group__1021798 = new BitSet(new long[]{0x0000000000000040L,0x0000000400600000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__11_in_rule__WeightedTactic__Group__1021801 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_10__0_in_rule__WeightedTactic__Group__10__Impl21828 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__11__Impl_in_rule__WeightedTactic__Group__1121859 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__12_in_rule__WeightedTactic__Group__1121862 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__CurrentWeightAssignment_11_in_rule__WeightedTactic__Group__11__Impl21889 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__12__Impl_in_rule__WeightedTactic__Group__1221919 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__13_in_rule__WeightedTactic__Group__1221922 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12__0_in_rule__WeightedTactic__Group__12__Impl21949 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__13__Impl_in_rule__WeightedTactic__Group__1321980 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__WeightedTactic__Group__13__Impl22008 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_1__0__Impl_in_rule__WeightedTactic__Group_1__022067 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_1__1_in_rule__WeightedTactic__Group_1__022070 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__WeightedTactic__Group_1__0__Impl22098 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_1__1__Impl_in_rule__WeightedTactic__Group_1__122129 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_1__2_in_rule__WeightedTactic__Group_1__122132 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__IdAssignment_1_1_in_rule__WeightedTactic__Group_1__1__Impl22159 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_1__2__Impl_in_rule__WeightedTactic__Group_1__222189 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__WeightedTactic__Group_1__2__Impl22217 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_4__0__Impl_in_rule__WeightedTactic__Group_4__022254 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_4__1_in_rule__WeightedTactic__Group_4__022257 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_96_in_rule__WeightedTactic__Group_4__0__Impl22285 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_4__1__Impl_in_rule__WeightedTactic__Group_4__122316 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightedTactic__Group_4__1__Impl22344 = new BitSet(new long[]{0x0000000000000002L});
+    }
+
+    private static class FollowSets001 {
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_7__0__Impl_in_rule__WeightedTactic__Group_7__022379 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_7__1_in_rule__WeightedTactic__Group_7__022382 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_97_in_rule__WeightedTactic__Group_7__0__Impl22410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_7__1__Impl_in_rule__WeightedTactic__Group_7__122441 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightedTactic__Group_7__1__Impl22469 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_10__0__Impl_in_rule__WeightedTactic__Group_10__022504 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_10__1_in_rule__WeightedTactic__Group_10__022507 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_98_in_rule__WeightedTactic__Group_10__0__Impl22535 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_10__1__Impl_in_rule__WeightedTactic__Group_10__122566 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightedTactic__Group_10__1__Impl22594 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12__0__Impl_in_rule__WeightedTactic__Group_12__022629 = new BitSet(new long[]{0x0000000000000030L,0x0000000800000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12__1_in_rule__WeightedTactic__Group_12__022632 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__WeightedTactic__Group_12__0__Impl22660 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12__1__Impl_in_rule__WeightedTactic__Group_12__122691 = new BitSet(new long[]{0x0000000000000030L,0x0000000800000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12__2_in_rule__WeightedTactic__Group_12__122694 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12_1__0_in_rule__WeightedTactic__Group_12__1__Impl22721 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12__2__Impl_in_rule__WeightedTactic__Group_12__222752 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__LastImpactAssignment_12_2_in_rule__WeightedTactic__Group_12__2__Impl22779 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12_1__0__Impl_in_rule__WeightedTactic__Group_12_1__022815 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12_1__1_in_rule__WeightedTactic__Group_12_1__022818 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_99_in_rule__WeightedTactic__Group_12_1__0__Impl22846 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group_12_1__1__Impl_in_rule__WeightedTactic__Group_12_1__122877 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightedTactic__Group_12_1__1__Impl22905 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__0__Impl_in_rule__WeightingFunction__Group__022940 = new BitSet(new long[]{0x0004080000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__1_in_rule__WeightingFunction__Group__022943 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__NameAssignment_0_in_rule__WeightingFunction__Group__0__Impl22970 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__1__Impl_in_rule__WeightingFunction__Group__123000 = new BitSet(new long[]{0x0004080000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__2_in_rule__WeightingFunction__Group__123003 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_1__0_in_rule__WeightingFunction__Group__1__Impl23030 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__2__Impl_in_rule__WeightingFunction__Group__223061 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__3_in_rule__WeightingFunction__Group__223064 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightingFunction__Group__2__Impl23092 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__3__Impl_in_rule__WeightingFunction__Group__323123 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__4_in_rule__WeightingFunction__Group__323126 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__WeightingFunction__Group__3__Impl23154 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__4__Impl_in_rule__WeightingFunction__Group__423185 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__5_in_rule__WeightingFunction__Group__423188 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_100_in_rule__WeightingFunction__Group__4__Impl23216 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__5__Impl_in_rule__WeightingFunction__Group__523247 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__6_in_rule__WeightingFunction__Group__523250 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightingFunction__Group__5__Impl23278 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__6__Impl_in_rule__WeightingFunction__Group__623309 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__7_in_rule__WeightingFunction__Group__623312 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__WeightingFunctionImplementationAssignment_6_in_rule__WeightingFunction__Group__6__Impl23339 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__7__Impl_in_rule__WeightingFunction__Group__723369 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__8_in_rule__WeightingFunction__Group__723372 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_101_in_rule__WeightingFunction__Group__7__Impl23400 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__8__Impl_in_rule__WeightingFunction__Group__823431 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__9_in_rule__WeightingFunction__Group__823434 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightingFunction__Group__8__Impl23462 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__9__Impl_in_rule__WeightingFunction__Group__923493 = new BitSet(new long[]{0x0000000000000030L,0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__10_in_rule__WeightingFunction__Group__923496 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__WeightingFunction__Group__9__Impl23524 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__10__Impl_in_rule__WeightingFunction__Group__1023555 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__11_in_rule__WeightingFunction__Group__1023558 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__WeightedMetricsAssignment_10_in_rule__WeightingFunction__Group__10__Impl23585 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__11__Impl_in_rule__WeightingFunction__Group__1123615 = new BitSet(new long[]{0x0010400000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__12_in_rule__WeightingFunction__Group__1123618 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_11__0_in_rule__WeightingFunction__Group__11__Impl23645 = new BitSet(new long[]{0x0000400000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__12__Impl_in_rule__WeightingFunction__Group__1223676 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__13_in_rule__WeightingFunction__Group__1223679 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__WeightingFunction__Group__12__Impl23707 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__13__Impl_in_rule__WeightingFunction__Group__1323738 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__WeightingFunction__Group__13__Impl23766 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_1__0__Impl_in_rule__WeightingFunction__Group_1__023825 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_1__1_in_rule__WeightingFunction__Group_1__023828 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__WeightingFunction__Group_1__0__Impl23856 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_1__1__Impl_in_rule__WeightingFunction__Group_1__123887 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_1__2_in_rule__WeightingFunction__Group_1__123890 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__IdAssignment_1_1_in_rule__WeightingFunction__Group_1__1__Impl23917 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_1__2__Impl_in_rule__WeightingFunction__Group_1__223947 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__WeightingFunction__Group_1__2__Impl23975 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_11__0__Impl_in_rule__WeightingFunction__Group_11__024012 = new BitSet(new long[]{0x0000000000000030L,0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_11__1_in_rule__WeightingFunction__Group_11__024015 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__WeightingFunction__Group_11__0__Impl24043 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group_11__1__Impl_in_rule__WeightingFunction__Group_11__124074 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__WeightedMetricsAssignment_11_1_in_rule__WeightingFunction__Group_11__1__Impl24101 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__0__Impl_in_rule__Specification__Group__024135 = new BitSet(new long[]{0x0008000000000000L,0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__1_in_rule__Specification__Group__024138 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_102_in_rule__Specification__Group__0__Impl24167 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__1__Impl_in_rule__Specification__Group__124200 = new BitSet(new long[]{0x0000000000000030L,0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__2_in_rule__Specification__Group__124203 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__Specification__Group__1__Impl24231 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__2__Impl_in_rule__Specification__Group__224262 = new BitSet(new long[]{0x0000000000000030L,0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__3_in_rule__Specification__Group__224265 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_103_in_rule__Specification__Group__2__Impl24294 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__3__Impl_in_rule__Specification__Group__324327 = new BitSet(new long[]{0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__4_in_rule__Specification__Group__324330 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__MetricTypeAssignment_3_in_rule__Specification__Group__3__Impl24357 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__4__Impl_in_rule__Specification__Group__424387 = new BitSet(new long[]{0x00000007FF800000L,0x0000010000000000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__5_in_rule__Specification__Group__424390 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__Specification__Group__4__Impl24418 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__5__Impl_in_rule__Specification__Group__524449 = new BitSet(new long[]{0x00000007FF800000L,0x0000010000000000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__6_in_rule__Specification__Group__524452 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_104_in_rule__Specification__Group__5__Impl24481 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__6__Impl_in_rule__Specification__Group__624514 = new BitSet(new long[]{0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__7_in_rule__Specification__Group__624517 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__RelationalOperatorAssignment_6_in_rule__Specification__Group__6__Impl24544 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__7__Impl_in_rule__Specification__Group__724574 = new BitSet(new long[]{0x2000000000000040L,0x0000000000600000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__8_in_rule__Specification__Group__724577 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__Specification__Group__7__Impl24605 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__8__Impl_in_rule__Specification__Group__824636 = new BitSet(new long[]{0x2000000000000040L,0x0000000000600000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__9_in_rule__Specification__Group__824639 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_61_in_rule__Specification__Group__8__Impl24668 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__9__Impl_in_rule__Specification__Group__924701 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__Specification__Group__10_in_rule__Specification__Group__924704 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__ValueAssignment_9_in_rule__Specification__Group__9__Impl24731 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Specification__Group__10__Impl_in_rule__Specification__Group__1024761 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__Specification__Group__10__Impl24789 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__0__Impl_in_rule__MetricValue__Group__024849 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__1_in_rule__MetricValue__Group__024852 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_105_in_rule__MetricValue__Group__0__Impl24880 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__1__Impl_in_rule__MetricValue__Group__124911 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__2_in_rule__MetricValue__Group__124914 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__NameAssignment_1_in_rule__MetricValue__Group__1__Impl24941 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__2__Impl_in_rule__MetricValue__Group__224971 = new BitSet(new long[]{0x0000081000000000L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__3_in_rule__MetricValue__Group__224974 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group_2__0_in_rule__MetricValue__Group__2__Impl25001 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__3__Impl_in_rule__MetricValue__Group__325032 = new BitSet(new long[]{0x2000000000000000L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__4_in_rule__MetricValue__Group__325035 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__MetricValue__Group__3__Impl25063 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__4__Impl_in_rule__MetricValue__Group__425094 = new BitSet(new long[]{0x0000000000000040L,0x0000000000600000L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__5_in_rule__MetricValue__Group__425097 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_61_in_rule__MetricValue__Group__4__Impl25125 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__5__Impl_in_rule__MetricValue__Group__525156 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__6_in_rule__MetricValue__Group__525159 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__ValueAssignment_5_in_rule__MetricValue__Group__5__Impl25186 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__6__Impl_in_rule__MetricValue__Group__625216 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__7_in_rule__MetricValue__Group__625219 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_106_in_rule__MetricValue__Group__6__Impl25247 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__7__Impl_in_rule__MetricValue__Group__725278 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__8_in_rule__MetricValue__Group__725281 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__MeasuredEntityAssignment_7_in_rule__MetricValue__Group__7__Impl25308 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__8__Impl_in_rule__MetricValue__Group__825338 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__9_in_rule__MetricValue__Group__825341 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_103_in_rule__MetricValue__Group__8__Impl25369 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__9__Impl_in_rule__MetricValue__Group__925400 = new BitSet(new long[]{0x0000040000000000L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__10_in_rule__MetricValue__Group__925403 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__MetricTypeAssignment_9_in_rule__MetricValue__Group__9__Impl25430 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group__10__Impl_in_rule__MetricValue__Group__1025460 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__MetricValue__Group__10__Impl25488 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group_2__0__Impl_in_rule__MetricValue__Group_2__025541 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group_2__1_in_rule__MetricValue__Group_2__025544 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__MetricValue__Group_2__0__Impl25572 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group_2__1__Impl_in_rule__MetricValue__Group_2__125603 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group_2__2_in_rule__MetricValue__Group_2__125606 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__IdAssignment_2_1_in_rule__MetricValue__Group_2__1__Impl25633 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__MetricValue__Group_2__2__Impl_in_rule__MetricValue__Group_2__225663 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__MetricValue__Group_2__2__Impl25691 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__0__Impl_in_rule__WeightedMetric__Group__025731 = new BitSet(new long[]{0x0000000000000030L,0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__1_in_rule__WeightedMetric__Group__025734 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_107_in_rule__WeightedMetric__Group__0__Impl25763 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__1__Impl_in_rule__WeightedMetric__Group__125796 = new BitSet(new long[]{0x0004080000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__2_in_rule__WeightedMetric__Group__125799 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__NameAssignment_1_in_rule__WeightedMetric__Group__1__Impl25826 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__2__Impl_in_rule__WeightedMetric__Group__225856 = new BitSet(new long[]{0x0004080000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__3_in_rule__WeightedMetric__Group__225859 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_2__0_in_rule__WeightedMetric__Group__2__Impl25886 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__3__Impl_in_rule__WeightedMetric__Group__325917 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__4_in_rule__WeightedMetric__Group__325920 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightedMetric__Group__3__Impl25948 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__4__Impl_in_rule__WeightedMetric__Group__425979 = new BitSet(new long[]{0x0000000000000030L,0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__5_in_rule__WeightedMetric__Group__425982 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__WeightedMetric__Group__4__Impl26010 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__5__Impl_in_rule__WeightedMetric__Group__526041 = new BitSet(new long[]{0x0000000000000030L,0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__6_in_rule__WeightedMetric__Group__526044 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_5__0_in_rule__WeightedMetric__Group__5__Impl26071 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__6__Impl_in_rule__WeightedMetric__Group__626102 = new BitSet(new long[]{0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__7_in_rule__WeightedMetric__Group__626105 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__MetricTypeAssignment_6_in_rule__WeightedMetric__Group__6__Impl26132 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__7__Impl_in_rule__WeightedMetric__Group__726162 = new BitSet(new long[]{0x0000000000000040L,0x0000100000600000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__8_in_rule__WeightedMetric__Group__726165 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__WeightedMetric__Group__7__Impl26193 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__8__Impl_in_rule__WeightedMetric__Group__826224 = new BitSet(new long[]{0x0000000000000040L,0x0000100000600000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__9_in_rule__WeightedMetric__Group__826227 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_8__0_in_rule__WeightedMetric__Group__8__Impl26254 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__9__Impl_in_rule__WeightedMetric__Group__926285 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__10_in_rule__WeightedMetric__Group__926288 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__WeightAssignment_9_in_rule__WeightedMetric__Group__9__Impl26315 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group__10__Impl_in_rule__WeightedMetric__Group__1026345 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__WeightedMetric__Group__10__Impl26373 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_2__0__Impl_in_rule__WeightedMetric__Group_2__026426 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_2__1_in_rule__WeightedMetric__Group_2__026429 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__WeightedMetric__Group_2__0__Impl26457 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_2__1__Impl_in_rule__WeightedMetric__Group_2__126488 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_2__2_in_rule__WeightedMetric__Group_2__126491 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__IdAssignment_2_1_in_rule__WeightedMetric__Group_2__1__Impl26518 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_2__2__Impl_in_rule__WeightedMetric__Group_2__226548 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__WeightedMetric__Group_2__2__Impl26576 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_5__0__Impl_in_rule__WeightedMetric__Group_5__026613 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_5__1_in_rule__WeightedMetric__Group_5__026616 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_103_in_rule__WeightedMetric__Group_5__0__Impl26644 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_5__1__Impl_in_rule__WeightedMetric__Group_5__126675 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightedMetric__Group_5__1__Impl26703 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_8__0__Impl_in_rule__WeightedMetric__Group_8__026738 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_8__1_in_rule__WeightedMetric__Group_8__026741 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_108_in_rule__WeightedMetric__Group_8__0__Impl26769 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedMetric__Group_8__1__Impl_in_rule__WeightedMetric__Group_8__126800 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__WeightedMetric__Group_8__1__Impl26828 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleImportDeclaration_in_rule__AdaptationProcess__ImportDeclarationAssignment_026868 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__AdaptationProcess__NameAssignment_226899 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__AdaptationProcess__IdAssignment_3_126930 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleParameter_in_rule__AdaptationProcess__ParametersAssignment_5_226961 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleParameter_in_rule__AdaptationProcess__ParametersAssignment_5_3_126992 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleOverallGoal_in_rule__AdaptationProcess__GoalAssignment_827023 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAction_in_rule__AdaptationProcess__ActionsAssignment_1127054 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAction_in_rule__AdaptationProcess__ActionsAssignment_12_127085 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTactic_in_rule__AdaptationProcess__TacticsAssignment_1527116 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTactic_in_rule__AdaptationProcess__TacticsAssignment_16_127147 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStrategy_in_rule__AdaptationProcess__StrategiesAssignment_1927178 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStrategy_in_rule__AdaptationProcess__StrategiesAssignment_20_127209 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__NameAssignment_127240 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__IdAssignment_2_127271 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_rule__Tactic__ImplementedPlanAssignment_527302 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__InputParamsAssignment_6_327337 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__InputParamsAssignment_6_4_127376 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__OutputParamAssignment_7_227415 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__NameAssignment_127450 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__IdAssignment_2_127481 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationActionOperation_in_rule__Action__AdaptationActionOperationAssignment_627512 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__ReferredAdaptationPointAssignment_927547 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__InputParamsAssignment_10_327586 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__InputParamsAssignment_10_4_127625 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__OutputParamAssignment_11_227664 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Strategy__NameAssignment_027699 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Strategy__IdAssignment_1_127730 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Strategy__ObjectiveAssignment_527765 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEvent_in_rule__Strategy__TriggeringEventsAssignment_827800 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_rule__Strategy__TacticsAssignment_1227831 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_rule__Strategy__TacticsAssignment_13_127862 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightingFunction_in_rule__Strategy__WeightingFunctionAssignment_1627893 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Parameter__NameAssignment_027924 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Parameter__TypeAssignment_327955 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Parameter__ValueAssignment_4_227986 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__OverallGoal__DescriptionAssignment_128017 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleObjective_in_rule__OverallGoal__ObjectivesAssignment_528048 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleObjective_in_rule__OverallGoal__ObjectivesAssignment_6_128079 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ImportDeclaration__ImportURIAssignment_128110 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__AdaptationPlan__NameAssignment_028141 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__AdaptationPlan__IdAssignment_1_128172 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_rule__AdaptationPlan__StepsAssignment_3_128203 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_rule__AdaptationPlan__StepsAssignment_3_2_128234 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__StartAction__IdAssignment_2_128265 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__StopAction__IdAssignment_2_128296 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__LoopAction__IdAssignment_1_128327 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__LoopAction__CounterAssignment_528362 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_rule__LoopAction__BodyAssignment_728397 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__BranchAction__IdAssignment_1_128428 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__BranchAction__ContextAssignment_628463 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__BranchAction__ConditionAssignment_1028498 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_rule__BranchAction__ConditionTrueBranchAssignment_1428529 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_rule__BranchAction__ConditionFalseBranchAssignment_1828560 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ActionReference__IdAssignment_1_128591 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ActionReference__RefersToAssignment_428626 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationDirection_in_rule__AdaptationActionOperation__AdaptationOperationDirectionAssignment_128661 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationScope_in_rule__AdaptationActionOperation__AdaptationOperationScopeAssignment_328692 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__IdAssignment_1_128723 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__NameAssignment_428754 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__ModelVariableConfigurationRange__MinValueAssignment_628785 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__ModelVariableConfigurationRange__MaxValueAssignment_828816 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_1028851 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__IdAssignment_1_128886 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__NameAssignment_428917 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__AdaptableEntityAssignment_628952 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVariationType_in_rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_828987 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleOclConstraint_in_rule__PropertyRange__MinValueConstraintAssignment_329018 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleOclConstraint_in_rule__PropertyRange__MaxValueConstraintAssignment_529049 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__SetOfConfigurations__VariantsAssignment_2_229084 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__SetOfConfigurations__VariantsAssignment_2_3_129123 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleOclConstraint_in_rule__SetOfConfigurations__ValueConstraintAssignment_429158 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__OclConstraint__NameAssignment_129189 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__OclConstraint__OclStringAssignment_429220 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Objective__NameAssignment_029251 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Objective__IdAssignment_1_129282 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpecification_in_rule__Objective__SpecificationsAssignment_5_029313 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpecification_in_rule__Objective__SpecificationsAssignment_5_1_129344 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpecification_in_rule__Objective__SpecificationsAssignment_5_1_2_129375 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Event__NameAssignment_029406 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Event__IdAssignment_1_129437 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightedTactic__NameAssignment_029468 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightedTactic__IdAssignment_1_129499 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightedTactic__UsedTacticAssignment_529534 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__WeightedTactic__DefaultWeightAssignment_829569 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__WeightedTactic__CurrentWeightAssignment_1129600 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightedTactic__LastImpactAssignment_12_229635 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightingFunction__NameAssignment_029670 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightingFunction__IdAssignment_1_129701 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightingFunction__WeightingFunctionImplementationAssignment_629732 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedMetric_in_rule__WeightingFunction__WeightedMetricsAssignment_1029763 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedMetric_in_rule__WeightingFunction__WeightedMetricsAssignment_11_129794 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Specification__MetricTypeAssignment_329829 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleRelationalOperator_in_rule__Specification__RelationalOperatorAssignment_629864 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__Specification__ValueAssignment_929895 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__MetricValue__NameAssignment_129937 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__MetricValue__IdAssignment_2_129968 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__MetricValue__ValueAssignment_529999 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__MetricValue__MeasuredEntityAssignment_730034 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__MetricValue__MetricTypeAssignment_930073 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightedMetric__NameAssignment_130112 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightedMetric__IdAssignment_2_130143 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightedMetric__MetricTypeAssignment_630178 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__WeightedMetric__WeightAssignment_930213 = new BitSet(new long[]{0x0000000000000002L});
+    }
+
+
+}
\ No newline at end of file
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/internal/StaLangActivator.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/internal/StaLangActivator.java
new file mode 100644
index 0000000000000000000000000000000000000000..4c3522c77f64c5a2e8c137dd76b209332edeb572
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/internal/StaLangActivator.java
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.internal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class StaLangActivator extends AbstractUIPlugin {
+	
+	public static final String EDU_KIT_IPD_DESCARTES_MM_ADAPTATION_STA_STALANG = "edu.kit.ipd.descartes.mm.adaptation.sta.StaLang";
+	
+	private static final Logger logger = Logger.getLogger(StaLangActivator.class);
+	
+	private static StaLangActivator INSTANCE;
+	
+	private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+	
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		INSTANCE = this;
+	}
+	
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		injectors.clear();
+		INSTANCE = null;
+		super.stop(context);
+	}
+	
+	public static StaLangActivator getInstance() {
+		return INSTANCE;
+	}
+	
+	public Injector getInjector(String language) {
+		synchronized (injectors) {
+			Injector injector = injectors.get(language);
+			if (injector == null) {
+				injectors.put(language, injector = createInjector(language));
+			}
+			return injector;
+		}
+	}
+	
+	protected Injector createInjector(String language) {
+		try {
+			Module runtimeModule = getRuntimeModule(language);
+			Module sharedStateModule = getSharedStateModule();
+			Module uiModule = getUiModule(language);
+			Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+			return Guice.createInjector(mergedModule);
+		} catch (Exception e) {
+			logger.error("Failed to create injector for " + language);
+			logger.error(e.getMessage(), e);
+			throw new RuntimeException("Failed to create injector for " + language, e);
+		}
+	}
+
+	protected Module getRuntimeModule(String grammar) {
+		if (EDU_KIT_IPD_DESCARTES_MM_ADAPTATION_STA_STALANG.equals(grammar)) {
+			return new edu.kit.ipd.descartes.mm.adaptation.sta.StaLangRuntimeModule();
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getUiModule(String grammar) {
+		if (EDU_KIT_IPD_DESCARTES_MM_ADAPTATION_STA_STALANG.equals(grammar)) {
+			return new edu.kit.ipd.descartes.mm.adaptation.sta.ui.StaLangUiModule(this);
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getSharedStateModule() {
+		return new SharedStateModule();
+	}
+	
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangUiModule.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangUiModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e87ce3c3c959ed9ddf3fac986b7480ce2592bb8
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/StaLangUiModule.java
@@ -0,0 +1,28 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator;
+
+import edu.kit.ipd.descartes.mm.adaptation.sta.ui.highlighting.MyHighlightingConfiguration;
+import edu.kit.ipd.descartes.mm.adaptation.sta.ui.highlighting.MySemanticHighlightingCalculator;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class StaLangUiModule extends edu.kit.ipd.descartes.mm.adaptation.sta.ui.AbstractStaLangUiModule {
+	public StaLangUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+	}
+
+	public Class<? extends ISemanticHighlightingCalculator> bindSemanticHighlightingCalculator() {
+		return MySemanticHighlightingCalculator.class;
+	}
+
+	public Class<? extends IHighlightingConfiguration> bindIHighlightingConfiguration() {
+		return MyHighlightingConfiguration.class;
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..f6e662ab82f91404649b87846b3a63416a77e3f2
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.xtend
@@ -0,0 +1,12 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist
+
+import edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.AbstractStaLangProposalProvider
+
+/**
+ * see http://www.eclipse.org/Xtext/documentation.html#contentAssist on how to customize content assistant
+ */
+class StaLangProposalProvider extends AbstractStaLangProposalProvider {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MyHighlightingConfiguration.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MyHighlightingConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..b0c77a0c2c438fe058e07aca49c6f0cf350019d4
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MyHighlightingConfiguration.java
@@ -0,0 +1,26 @@
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.highlighting;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultHighlightingConfiguration;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfigurationAcceptor;
+import org.eclipse.xtext.ui.editor.utils.TextStyle;
+
+public class MyHighlightingConfiguration extends DefaultHighlightingConfiguration {
+
+	public final static String ID = "ID";
+
+	@Override
+	public void configure(IHighlightingConfigurationAcceptor acceptor) {
+		acceptor.acceptDefaultHighlighting(ID,
+				"IDs", idTextStyle());
+		super.configure(acceptor);
+	}
+	public TextStyle idTextStyle() {
+		TextStyle textStyle = new TextStyle();
+		textStyle.setStyle(SWT.ITALIC);
+		textStyle.setColor(new RGB(200,200,200));
+		return textStyle;
+	}
+
+}
\ No newline at end of file
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MySemanticHighlightingCalculator.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MySemanticHighlightingCalculator.java
new file mode 100644
index 0000000000000000000000000000000000000000..29d44bab0badbd61f12a3a96fd8f530c86e2b3bb
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/highlighting/MySemanticHighlightingCalculator.java
@@ -0,0 +1,53 @@
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.highlighting;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
+import org.eclipse.xtext.resource.XtextResource;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightedPositionAcceptor;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator;
+
+import edu.kit.ipd.descartes.core.Entity;
+
+
+public class MySemanticHighlightingCalculator implements ISemanticHighlightingCalculator {
+
+	@Override
+	public void provideHighlightingFor(XtextResource resource,
+			IHighlightedPositionAcceptor acceptor) {
+		if (resource == null || resource.getParseResult() == null)
+			return;
+		
+		EObject root = resource.getParseResult().getRootASTElement();
+		if (root == null) {
+			return;
+		}
+		
+		provideHighlightingFor(root, acceptor);
+		for (TreeIterator<EObject> it = root.eAllContents(); it.hasNext();) {
+			EObject next = it.next();
+			provideHighlightingFor(next, acceptor);
+		}
+	}
+	
+	protected void provideHighlightingFor(EObject eObject, IHighlightedPositionAcceptor acceptor) {
+		if (eObject instanceof Entity) {
+			Entity ent = (Entity) eObject;
+			List<INode> idNodes = NodeModelUtils.findNodesForFeature(eObject, ent.eClass().getEStructuralFeature("id"));
+			/* there should be only one id node */
+			/* [id:<idnode>] */
+			if (idNodes.size() == 1) {
+				INode idnode = idNodes.get(0);
+				INode openBracket = idnode.getPreviousSibling();
+				INode closeBracket = idnode.getNextSibling();
+				acceptor.addPosition(openBracket.getOffset(), 
+									 openBracket.getLength() + idnode.getLength() + closeBracket.getLength(),
+									 MyHighlightingConfiguration.ID);
+			}
+		}
+	}
+	
+}
\ No newline at end of file
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..92f2ff7c5a114d6f920a0dbe74090e57e7390356
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.xtend
@@ -0,0 +1,24 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.labeling
+
+//import org.eclipse.xtext.resource.IEObjectDescription
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+class StaLangDescriptionLabelProvider extends org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider {
+
+	// Labels and icons can be computed like this:
+	
+//	override text(IEObjectDescription ele) {
+//		ele.name.toString
+//	}
+//	 
+//	override image(IEObjectDescription ele) {
+//		ele.EClass.name + '.gif'
+//	}	 
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..65f9fcdc168a307ca6244e2d65fcce78db61439f
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.xtend
@@ -0,0 +1,29 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.labeling
+
+import com.google.inject.Inject
+
+/**
+ * Provides labels for a EObjects.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+class StaLangLabelProvider extends org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider {
+
+	@Inject
+	new(org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider delegate) {
+		super(delegate);
+	}
+
+	// Labels and icons can be computed like this:
+	
+//	def text(Greeting ele) {
+//		'A greeting to ' + ele.name
+//	}
+//
+//	def image(Greeting ele) {
+//		'Greeting.gif'
+//	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..1fe4b61d16df2e0d417e469e218447885a9a0a74
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.xtend
@@ -0,0 +1,13 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.outline
+
+/**
+ * Customization of the default outline structure.
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#outline
+ */
+class StaLangOutlineTreeProvider extends org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider {
+	
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..5c97daffc8376fc73f133acd94d2a1ca9a80ccdb
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.xtend
@@ -0,0 +1,26 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.quickfix
+
+//import org.eclipse.xtext.ui.editor.quickfix.Fix
+//import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor
+//import org.eclipse.xtext.validation.Issue
+
+/**
+ * Custom quickfixes.
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#quickfixes
+ */
+class StaLangQuickfixProvider extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider {
+
+//	@Fix(MyDslValidator::INVALID_NAME)
+//	def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
+//		acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
+//			context |
+//			val xtextDocument = context.xtextDocument
+//			val firstLetter = xtextDocument.get(issue.offset, 1)
+//			xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
+//		]
+//	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/.StaLangProposalProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/.StaLangProposalProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..9250432a0333e80f81d2b1e5133ad024772a28b7
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/.StaLangProposalProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..34160352cb9708fdfa467312eafc4a4d99215f37
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/contentassist/StaLangProposalProvider.java
@@ -0,0 +1,13 @@
+/**
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist;
+
+import edu.kit.ipd.descartes.mm.adaptation.sta.ui.contentassist.AbstractStaLangProposalProvider;
+
+/**
+ * see http://www.eclipse.org/Xtext/documentation.html#contentAssist on how to customize content assistant
+ */
+@SuppressWarnings("all")
+public class StaLangProposalProvider extends AbstractStaLangProposalProvider {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangDescriptionLabelProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangDescriptionLabelProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..a15f35eb8907e0fe483c48be96bc5aecaffe6f38
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangDescriptionLabelProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangLabelProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangLabelProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..e2a4fd29eb8bfda04a311cf23e8281140d6c8d03
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/.StaLangLabelProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb2fb75f97a2042b5f285a2aeaa98b88408cd0d4
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangDescriptionLabelProvider.java
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.labeling;
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider;
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+@SuppressWarnings("all")
+public class StaLangDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..54d03901a1495b01ab5d6abe139efe7bd4118296
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/labeling/StaLangLabelProvider.java
@@ -0,0 +1,21 @@
+/**
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.labeling;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider;
+
+/**
+ * Provides labels for a EObjects.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+@SuppressWarnings("all")
+public class StaLangLabelProvider extends DefaultEObjectLabelProvider {
+  @Inject
+  public StaLangLabelProvider(final AdapterFactoryLabelProvider delegate) {
+    super(delegate);
+  }
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/.StaLangOutlineTreeProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/.StaLangOutlineTreeProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..ff7740717477462b70fd68cf2bf7650d2532f55f
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/.StaLangOutlineTreeProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..39781b485b228927a8aa77b2b44b9a270dab401c
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/outline/StaLangOutlineTreeProvider.java
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * Customization of the default outline structure.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#outline
+ */
+@SuppressWarnings("all")
+public class StaLangOutlineTreeProvider extends DefaultOutlineTreeProvider {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/.StaLangQuickfixProvider.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/.StaLangQuickfixProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..5fafd430c88977df08f0f2b29445adc0ce1b04b3
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/.StaLangQuickfixProvider.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..3d20de0acfe31e40e228424c47cf99451baebf36
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/ui/quickfix/StaLangQuickfixProvider.java
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.ui.quickfix;
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+
+/**
+ * Custom quickfixes.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#quickfixes
+ */
+@SuppressWarnings("all")
+public class StaLangQuickfixProvider extends DefaultQuickfixProvider {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/.antlr-generator-3.2.0.jar b/edu.kit.ipd.descartes.mm.adaptation.sta/.antlr-generator-3.2.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..56240aea90aff9710817345828e8e8c8afea909b
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/.antlr-generator-3.2.0.jar differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/.classpath b/edu.kit.ipd.descartes.mm.adaptation.sta/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..406ca4abdc68e88484ba4d3c6294fa9bc391cdb3
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/.project b/edu.kit.ipd.descartes.mm.adaptation.sta/.project
new file mode 100644
index 0000000000000000000000000000000000000000..ebc66ec08f65f7dd46b4e991ede30bd6d2572c8b
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>edu.kit.ipd.descartes.mm.adaptation.sta</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/.settings/org.eclipse.core.resources.prefs b/edu.kit.ipd.descartes.mm.adaptation.sta/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.mm.adaptation.sta/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..510d72c6210c50641ca86d593516ea0bee1cba7c
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/META-INF/MANIFEST.MF
@@ -0,0 +1,30 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: edu.kit.ipd.descartes.mm.adaptation.sta
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: edu.kit.ipd.descartes.mm.adaptation.sta; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;visibility:=reexport,
+ org.eclipse.xtext.xbase;resolution:=optional;visibility:=reexport,
+ org.eclipse.xtext.generator;resolution:=optional,
+ org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional,
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.emf.mwe2.launch;resolution:=optional,
+ edu.kit.ipd.descartes.mm.adaptation,
+ org.eclipse.xtext.util,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types
+Import-Package: org.apache.log4j,
+ org.eclipse.xtext.xbase.lib
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: edu.kit.ipd.descartes.mm.adaptation.sta,
+ edu.kit.ipd.descartes.mm.adaptation.sta.services,
+ edu.kit.ipd.descartes.mm.adaptation.sta.serializer,
+ edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr,
+ edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal,
+ edu.kit.ipd.descartes.mm.adaptation.sta.validation,
+ edu.kit.ipd.descartes.mm.adaptation.sta.scoping,
+ edu.kit.ipd.descartes.mm.adaptation.sta.generator,
+ edu.kit.ipd.descartes.mm.adaptation.sta.formatting
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/AbstractStaLangRuntimeModule.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/AbstractStaLangRuntimeModule.class
new file mode 100644
index 0000000000000000000000000000000000000000..8efe39a4c1da4105711ff69350f9f23b6becd9b4
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/AbstractStaLangRuntimeModule.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/GenerateStaLang.mwe2 b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/GenerateStaLang.mwe2
new file mode 100644
index 0000000000000000000000000000000000000000..049f8022dd02dfc649b3c29a9589428c65805585
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/GenerateStaLang.mwe2
@@ -0,0 +1,140 @@
+module edu.kit.ipd.descartes.mm.adaptation.sta.StaLang
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtext"
+var fileExtensions = "staLang"
+var projectName = "edu.kit.ipd.descartes.mm.adaptation.sta"
+var runtimeProject = "../${projectName}"
+var generateXtendStub = true
+
+Workflow {
+	bean = StandaloneSetup {
+		scanClassPath  = true
+		platformUri = "${runtimeProject}/.."
+		registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.adaptation.AdaptationPackage"
+		registerGenModelFile = "platform:/resource/edu.kit.ipd.descartes.mm.adaptation/model/adaptation.genmodel"
+	}
+
+	component = DirectoryCleaner {
+		directory = "${runtimeProject}/src-gen"
+	}
+
+	component = DirectoryCleaner {
+		directory = "${runtimeProject}.ui/src-gen"
+	}
+
+	component = Generator {
+		pathRtProject = runtimeProject
+		pathUiProject = "${runtimeProject}.ui"
+		pathTestProject = "${runtimeProject}.tests"
+		projectNameRt = projectName
+		projectNameUi = "${projectName}.ui"
+		language = auto-inject {
+			uri = grammarURI
+
+			// Java API to access grammar elements (required by several other fragments)
+			fragment = grammarAccess.GrammarAccessFragment auto-inject {}
+
+			// generates Java API for the generated EPackages
+			// fragment = ecore.EcoreGeneratorFragment auto-inject {}
+
+			// the Ecore2Xtext specific terminal converter
+			fragment = ecore2xtext.Ecore2XtextValueConverterServiceFragment auto-inject {}
+
+			// serializer 2.0
+			fragment = serializer.SerializerFragment auto-inject {
+				//generateStub = false
+			}
+
+			// the old serialization component
+			// fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}
+
+			// a custom ResourceFactory for use with EMF 
+			fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
+
+			// the Antlr parser
+			fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
+				options = {
+					classSplitting = true
+				}
+			}
+
+//			// Xtend-based API for validation 
+//			fragment = validation.ValidatorFragment auto-inject {
+//			// composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+//			// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+//			}
+
+			// java���based API for validation
+			fragment = validation.JavaValidatorFragment {
+				composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" 
+			}
+			
+			// scoping and exporting API
+			fragment = scoping.ImportURIScopingFragment {} 
+			fragment = exporting.SimpleNamesFragment {}
+
+//			// old scoping and exporting API 
+//			// fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
+//			// fragment = exporting.QualifiedNamesFragment auto-inject {}
+//
+//			// scoping and exporting API
+//			fragment = scoping.ImportURIScopingFragment auto-inject {}
+//			fragment = exporting.SimpleNamesFragment auto-inject {}
+//			fragment = builder.BuilderIntegrationFragment auto-inject {}		
+
+			// generator API
+			fragment = generator.GeneratorFragment auto-inject {}
+
+			// formatter API 
+			// fragment = formatting.FormatterFragment auto-inject {}
+			fragment = ecore2xtext.FormatterFragment auto-inject {}
+
+			// labeling API 
+			fragment = labeling.LabelProviderFragment auto-inject {}
+
+			// outline API 
+            fragment = outline.OutlineTreeProviderFragment auto-inject {}
+            fragment = outline.QuickOutlineFragment auto-inject {}
+
+			// quickfix API
+			fragment = quickfix.QuickfixProviderFragment auto-inject {}
+
+			//content assist API 
+			fragment = contentAssist.ContentAssistFragment auto-inject {}
+
+			// antlr parser generator tailored for content assist 
+			fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {
+				options = {
+					classSplitting = true
+				}
+			}
+			
+			// generates junit test support classes into Generator#pathTestProject
+			fragment = junit.Junit4Fragment auto-inject {}
+
+			// project wizard (optional) 
+			// fragment = projectWizard.SimpleProjectWizardFragment auto-inject {
+			//		generatorProjectName = "${projectName}.generator" 
+			// }
+
+			// rename refactoring
+			fragment = refactoring.RefactorElementNameFragment auto-inject {}
+
+			// provides the necessary bindings for java types integration
+			fragment = types.TypesGeneratorFragment auto-inject {}
+			
+			// generates the required bindings only if the grammar inherits from Xbase
+			fragment = xbase.XbaseGeneratorFragment auto-inject {}
+
+			// provides a preference page for template proposals
+			fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
+
+			// provides a compare view
+            fragment = compare.CompareFragment auto-inject {}
+		}
+	}
+}
\ No newline at end of file
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtext b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtext
new file mode 100644
index 0000000000000000000000000000000000000000..dfc14ff4a2eb0320bc07c562da1b3061b6a0a7e1
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtext
@@ -0,0 +1,305 @@
+// automatically generated by Xtext
+grammar edu.kit.ipd.descartes.mm.adaptation.sta.StaLang with org.eclipse.xtext.common.Terminals
+
+import "platform:/resource/edu.kit.ipd.descartes.mm.adaptation/model/adaptation.ecore" 
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+import "platform:/resource/edu.kit.ipd.descartes.perfdatarepo/model/perfdatarepo.ecore" as perfdatarepo
+import "platform:/resource/edu.kit.ipd.descartes.core/model/core.ecore" as core
+import "platform:/resource/edu.kit.ipd.descartes.mm.adaptationpoints/model/adaptationpoints.ecore" as adaptationpoints
+
+AdaptationProcess returns AdaptationProcess:
+	(importDeclaration+=ImportDeclaration)*
+	'AdaptationProcess' name=EString ('[id:'id=EString']')?
+	'{'
+		('parameters' ':' parameters+=Parameter ( "," parameters+=Parameter)* )?
+		'goal' ':' goal=OverallGoal
+		'actions' ':' actions+=Action ( "," actions+=Action)* 
+		'tactics' ':' tactics+=Tactic ( "," tactics+=Tactic)*
+		'strategies' ':' strategies+=Strategy ( "," strategies+=Strategy)* 
+	'}';
+
+
+AdaptationPoint returns adaptationpoints::AdaptationPoint:
+	ModelVariableConfigurationRange | ModelEntityConfigurationRange;
+
+
+
+
+
+
+AbstractControlFlowElement returns AbstractControlFlowElement:
+	StartAction | StopAction | LoopAction | BranchAction | ActionReference;
+
+
+
+VariationType returns adaptationpoints::VariationType:
+	PropertyRange | SetOfConfigurations;
+
+
+EString returns ecore::EString:
+	STRING | ID;
+
+Tactic returns Tactic:
+	('Tactic')? name=EString ('[id:'id=EString']')?
+	'{'
+		'implementedPlan' implementedPlan=AdaptationPlan
+		('input' '=' '(' inputParams+=[Parameter|EString] ( "," inputParams+=[Parameter|EString])* ')' )?
+		('output' '=' outputParam=[Parameter|EString])?
+	'}';
+
+Action returns Action:
+	('Action')? name=EString ('[id:'id=EString']')?
+	'{'
+		'operation' '=' adaptationActionOperation=AdaptationActionOperation
+		'referredAdaptationPoint' '=' referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString]
+		('input' '=' '(' inputParams+=[Parameter|EString] ( "," inputParams+=[Parameter|EString])* ')' )?
+		('output' '=' outputParam=[Parameter|EString])?
+	'}';
+
+Strategy returns Strategy:
+	name=EString ('[id:'id=EString']')?
+	'{'
+		'objective' '=' objective=[Objective|EString]
+		'triggeringEvent' '=' triggeringEvents=Event
+		'tactics' '=' '(' tactics+=WeightedTactic ( "," tactics+=WeightedTactic)* ')' 
+		('weightingFunction')? weightingFunction=WeightingFunction
+	'}';
+
+Parameter returns Parameter:
+	name=EString '{' ('type' '=')? type=EString (',' ('value' '=')? value=EString)?'}'
+	;
+
+OverallGoal returns OverallGoal:
+		'description' description=EString
+		'objectives' '=' '(' objectives+=Objective ( "," objectives+=Objective)* ')'
+	;
+
+ImportDeclaration returns ImportDeclaration:
+	'ImportDeclaration' importURI=EString
+	;
+
+AdaptationPlan returns AdaptationPlan:
+	name=EString ('[id:'id=EString']')? '='
+		('(' steps+=AbstractControlFlowElement ( "," steps+=AbstractControlFlowElement)* ')' )?
+	;
+
+StartAction returns StartAction:
+	{StartAction}
+	'StartAction'('[id:'id=EString']')?
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//	('('
+//		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+//		('successor' successor=[AbstractControlFlowElement|EString])?
+//	')')?
+;
+
+StopAction returns StopAction:
+	{StopAction}
+	'StopAction'('[id:'id=EString']')?
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//	('('
+//		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+//		('successor' successor=[AbstractControlFlowElement|EString])?
+//	')')?
+;
+
+LoopAction returns LoopAction:
+	('LoopAction')? ('[id:'id=EString']')?
+	'repeat' 'counter' '=' counter=[Parameter|EString]
+	'('
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//		(predecessor=[AbstractControlFlowElement|EString] ',')?
+		body=AdaptationPlan
+//		(',' successor=[AbstractControlFlowElement|EString])?
+	')';
+
+BranchAction returns BranchAction:
+	('BranchAction')? ('[id:'id=EString']')?
+	'if' '(''context' '=' context=[core::Entity|EString] ',' 'condition' '=' condition=EString')'
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//		(predecessor=[AbstractControlFlowElement|EString])?
+		'then' '('conditionTrueBranch=AdaptationPlan')'
+		'else' '('conditionFalseBranch=AdaptationPlan')'
+//	no comma to avoid multiple interpretations of the comma (e.g. AdaptationPlan)
+//		(successor=[AbstractControlFlowElement|EString])?
+	;
+
+ActionReference returns ActionReference:
+	'ActionReference'('[id:'id=EString']')?
+	'('
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+//		('successor' successor=[AbstractControlFlowElement|EString])?
+		'refersTo' refersTo=[Action|EString]
+	')';
+
+AdaptationActionOperation returns AdaptationActionOperation:
+	'('
+		adaptationOperationDirection=AdaptationDirection
+		','
+		adaptationOperationScope=AdaptationScope
+		
+	')';
+
+ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange:
+	'ModelVariableConfigurationRange'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+		'minValue' minValue=EDouble
+		'maxValue' maxValue=EDouble
+		'adaptableEntity' adaptableEntity=[core::AdaptableEntity|EString]
+	'}';
+
+ModelEntityConfigurationRange returns adaptationpoints::ModelEntityConfigurationRange:
+	'ModelEntityConfigurationRange'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+		'adaptableEntity' adaptableEntity=[core::Entity|EString]
+		'variationPossibility' variationPossibility=VariationType
+	'}';
+
+EDouble returns ecore::EDouble:
+	'-'? INT? '.' INT (('E'|'e') '-'? INT)?;
+
+PropertyRange returns adaptationpoints::PropertyRange:
+	'PropertyRange'
+	'{'
+		'minValueConstraint' minValueConstraint=OclConstraint
+		'maxValueConstraint' maxValueConstraint=OclConstraint
+	'}';
+
+SetOfConfigurations returns adaptationpoints::SetOfConfigurations:
+	'SetOfConfigurations'
+	'{'
+		('variants' '(' variants+=[core::Entity|EString] ( "," variants+=[core::Entity|EString])* ')' )?
+		'valueConstraint' valueConstraint=OclConstraint
+	'}';
+
+OclConstraint returns adaptationpoints::OclConstraint:
+	'OclConstraint'
+	name=EString
+	'{'
+		'oclString' oclString=EString
+	'}';
+
+enum AdaptationScope returns AdaptationScope:
+	NOT_SET = 'NOT_SET' |
+	THIS = 'THIS' |
+	LEAST_UTILIZED_FIRST = 'LEAST_UTILIZED_FIRST' |
+	MOST_UTILIZED_FIRST = 'MOST_UTILIZED_FIRST' |
+	RANDOM = 'RANDOM' |
+	ALL = 'ALL'
+;
+
+enum AdaptationDirection returns AdaptationDirection:
+	NOT_SET = 'NOT_SET' |
+	INCREASE = 'INCREASE' |
+	DECREASE = 'DECREASE' |
+	MIGRATE = 'MIGRATE'
+;
+
+Objective returns Objective:
+	name=EString ('[id:'id=EString']')?
+	'{'
+		'specification' '=' ((specifications+=Specification)|('(' specifications+=Specification ( "," specifications+=Specification)* ')'))
+	'}'
+	;
+
+Event returns Event:
+	name=EString ('[id:'id=EString']')?
+	;
+
+WeightedTactic returns WeightedTactic:
+	name=EString ('[id:'id=EString']')? '='
+	'('
+		('tactic' '=')? usedTactic=[Tactic|EString]
+		','
+		('default' '=')? defaultWeight=EDouble
+		','
+		('current' '=')? currentWeight=EDouble
+		(',' ('lastImpact' '=')? lastImpact=[perfdatarepo::Impact|EString])?
+	')';
+
+WeightingFunction returns WeightingFunction:
+	name=EString ('[id:'id=EString']')? '='
+	'('
+		'weightingFunctionImplementation' '=' weightingFunctionImplementation=EString
+		'weightedMetrics' '=' '(' weightedMetrics+=WeightedMetric ( "," weightedMetrics+=WeightedMetric)* ')' 
+	')';
+
+Specification returns Specification:
+	('Specification')?
+	'('
+		('metricType')? metricType=[perfdatarepo::MetricType|EString]
+		','
+		('relationalOperator')? relationalOperator=RelationalOperator
+		','
+		('value')? value=EDouble
+	')';
+
+MetricType returns perfdatarepo::MetricType:
+	'MetricType'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+	'}';
+
+enum RelationalOperator returns RelationalOperator:
+	EQUAL = '==' |
+	NOT_EQUAL = '!=' |
+	GREATER = '>' |
+	GREATER_EQUAL = '>=' |
+	LESS = '<' |
+	LESS_EQUAL = '<=' |
+	EQUAL = 'EQUAL' |
+	NOT_EQUAL = 'NOT_EQUAL' |
+	GREATER = 'GREATER' |
+	GREATER_EQUAL = 'GREATER_EQUAL' |
+	LESS = 'LESS' |
+	LESS_EQUAL = 'LESS_EQUAL'
+;
+
+Impact returns perfdatarepo::Impact:
+	'Impact'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+		'before' before=[perfdatarepo::Result|EString]
+		'after' after=[perfdatarepo::Result|EString]
+	'}';
+
+Result returns perfdatarepo::Result:
+	'Result'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+		'timestamp' timestamp=EDate
+		'metricValues' '{' metricValues+=MetricValue ( "," metricValues+=MetricValue)* '}' 
+	'}';
+
+EDate returns ecore::EDate:
+	'EDate' /* TODO: implement this rule and an appropriate IValueConverter */;
+
+MetricValue returns perfdatarepo::MetricValue:
+	'MetricValue' name=EString ('[id:'id=EString']')?
+	'{'
+		'value' value=EDouble
+		'measuredEntity' measuredEntity=[perfdatarepo::MeasuredEntity|EString]
+		'metricType' metricType=[perfdatarepo::MetricType|EString]
+	'}';
+
+MeasuredEntity returns perfdatarepo::MeasuredEntity:
+	'MeasuredEntity' name=EString ('[id:'id=EString']')?
+	'{'
+		'metricTypes' '(' metricTypes+=[perfdatarepo::MetricType|EString] ( "," metricTypes+=[perfdatarepo::MetricType|EString])* ')' 
+	'}';
+
+WeightedMetric returns WeightedMetric:
+	('WeightedMetric')? name=EString('[id:'id=EString']')? '=' '('
+		('metricType' '=')? metricType=[perfdatarepo::MetricType|EString]
+		','
+		('weight' '=')? weight=EDouble
+	')';
+
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtextbin b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtextbin
new file mode 100644
index 0000000000000000000000000000000000000000..48846ffc1c6d7856158d76890101381bc966bf99
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtextbin differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangRuntimeModule.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangRuntimeModule.class
new file mode 100644
index 0000000000000000000000000000000000000000..91cae00437a9e0463f834845e1922eda8bc8f601
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangRuntimeModule.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetup.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetup.class
new file mode 100644
index 0000000000000000000000000000000000000000..728822aca8d1bc3cc27c1c2e4e596ab124d7bfbe
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetup.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetupGenerated.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetupGenerated.class
new file mode 100644
index 0000000000000000000000000000000000000000..b9013619d52ce01f61104dd44818ed2df377c099
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetupGenerated.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/.StaLangFormatter.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/.StaLangFormatter.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..7ce4654a80c38276741777e3cb8cbfaed9199582
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/.StaLangFormatter.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.class
new file mode 100644
index 0000000000000000000000000000000000000000..1c51c26e40aa8e0f885d12778fa0fd98be561118
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..5a8f3a1d4a4427a3baa15e360a2f8b1582578584
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.xtend
@@ -0,0 +1,39 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.formatting
+
+import com.google.inject.Inject
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter
+import org.eclipse.xtext.formatting.impl.FormattingConfig
+import edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess
+
+/**
+ * This class contains custom formatting description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#formatting
+ * on how and when to use it 
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class StaLangFormatter extends AbstractDeclarativeFormatter {
+	
+	@Inject extension StaLangGrammarAccess
+	
+	override protected configureFormatting(FormattingConfig c) {
+		for(pair: findKeywordPairs('{', '}')) {
+			c.setIndentation(pair.first, pair.second)
+			c.setLinewrap(1).after(pair.first)
+			c.setLinewrap(1).before(pair.second)
+			c.setLinewrap(1).after(pair.second)
+		}
+		for(comma: findKeywords(',')) {
+			c.setNoLinewrap().before(comma)
+			c.setNoSpace().before(comma)
+			c.setLinewrap().after(comma)
+		}
+		c.setLinewrap(0, 1, 2).before(SL_COMMENTRule)
+		c.setLinewrap(0, 1, 2).before(ML_COMMENTRule)
+		c.setLinewrap(0, 1, 1).after(ML_COMMENTRule)
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/generator/.StaLangGenerator.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/generator/.StaLangGenerator.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..7eeed27a2560a9421d58561665ce97c600d09e52
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/generator/.StaLangGenerator.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.class
new file mode 100644
index 0000000000000000000000000000000000000000..929469c7f5b8ddc5f25a2059b249536188d4f0ee
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..cf4a2f7df25d6fbe2582c4f7bd7b81c6b802b20d
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess
+
+/**
+ * Generates code from your model files on save.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#TutorialCodeGeneration
+ */
+class StaLangGenerator implements IGenerator {
+	
+	override void doGenerate(Resource resource, IFileSystemAccess fsa) {
+//		fsa.generateFile('greetings.txt', 'People to greet: ' + 
+//			resource.allContents
+//				.filter(typeof(Greeting))
+//				.map[name]
+//				.join(', '))
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangAntlrTokenFileProvider.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangAntlrTokenFileProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..54bfbc54da14a1bc59fa29fcef7e9df4f63b0a50
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangAntlrTokenFileProvider.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangParser.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangParser.class
new file mode 100644
index 0000000000000000000000000000000000000000..4455c7f6056eea035c8a56a0e57d0b0351a59c55
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangParser.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g
new file mode 100644
index 0000000000000000000000000000000000000000..c7bf6df770d38d870de6c183f88ae1fad06cfdc0
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g
@@ -0,0 +1,3728 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStaLang;
+
+options {
+	superClass=AbstractInternalAntlrParser;
+	
+}
+
+@lexer::header {
+package edu.kit.ipd.descartes.mm.adaptation.sta.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 edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal; 
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+
+}
+
+@parser::members {
+
+ 	private StaLangGrammarAccess grammarAccess;
+ 	
+    public InternalStaLangParser(TokenStream input, StaLangGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+    
+    @Override
+    protected String getFirstRuleName() {
+    	return "AdaptationProcess";	
+   	}
+   	
+   	@Override
+   	protected StaLangGrammarAccess getGrammarAccess() {
+   		return grammarAccess;
+   	}
+}
+
+@rulecatch { 
+    catch (RecognitionException re) { 
+        recover(input,re); 
+        appendSkippedTokens();
+    } 
+}
+
+
+
+
+// Entry rule entryRuleAdaptationProcess
+entryRuleAdaptationProcess returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getAdaptationProcessRule()); }
+	 iv_ruleAdaptationProcess=ruleAdaptationProcess 
+	 { $current=$iv_ruleAdaptationProcess.current; } 
+	 EOF 
+;
+
+// Rule AdaptationProcess
+ruleAdaptationProcess returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getImportDeclarationImportDeclarationParserRuleCall_0_0()); 
+	    }
+		lv_importDeclaration_0_0=ruleImportDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"importDeclaration",
+        		lv_importDeclaration_0_0, 
+        		"ImportDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_1='AdaptationProcess' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getAdaptationProcessAccess().getAdaptationProcessKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getNameEStringParserRuleCall_2_0()); 
+	    }
+		lv_name_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3='[id:' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getAdaptationProcessAccess().getIdKeyword_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getIdEStringParserRuleCall_3_1_0()); 
+	    }
+		lv_id_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5=']' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getAdaptationProcessAccess().getRightSquareBracketKeyword_3_2());
+    }
+)?	otherlv_6='{' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getAdaptationProcessAccess().getLeftCurlyBracketKeyword_4());
+    }
+(	otherlv_7='parameters' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getAdaptationProcessAccess().getParametersKeyword_5_0());
+    }
+	otherlv_8=':' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getAdaptationProcessAccess().getColonKeyword_5_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_2_0()); 
+	    }
+		lv_parameters_9_0=ruleParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"parameters",
+        		lv_parameters_9_0, 
+        		"Parameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_5_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_3_1_0()); 
+	    }
+		lv_parameters_11_0=ruleParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"parameters",
+        		lv_parameters_11_0, 
+        		"Parameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_12='goal' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getAdaptationProcessAccess().getGoalKeyword_6());
+    }
+	otherlv_13=':' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getAdaptationProcessAccess().getColonKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getGoalOverallGoalParserRuleCall_8_0()); 
+	    }
+		lv_goal_14_0=ruleOverallGoal		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		set(
+       			$current, 
+       			"goal",
+        		lv_goal_14_0, 
+        		"OverallGoal");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_15='actions' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getAdaptationProcessAccess().getActionsKeyword_9());
+    }
+	otherlv_16=':' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getAdaptationProcessAccess().getColonKeyword_10());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_11_0()); 
+	    }
+		lv_actions_17_0=ruleAction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"actions",
+        		lv_actions_17_0, 
+        		"Action");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_18=',' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_12_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_12_1_0()); 
+	    }
+		lv_actions_19_0=ruleAction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"actions",
+        		lv_actions_19_0, 
+        		"Action");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_20='tactics' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getAdaptationProcessAccess().getTacticsKeyword_13());
+    }
+	otherlv_21=':' 
+    {
+    	newLeafNode(otherlv_21, grammarAccess.getAdaptationProcessAccess().getColonKeyword_14());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_15_0()); 
+	    }
+		lv_tactics_22_0=ruleTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_22_0, 
+        		"Tactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_23=',' 
+    {
+    	newLeafNode(otherlv_23, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_16_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_16_1_0()); 
+	    }
+		lv_tactics_24_0=ruleTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_24_0, 
+        		"Tactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_25='strategies' 
+    {
+    	newLeafNode(otherlv_25, grammarAccess.getAdaptationProcessAccess().getStrategiesKeyword_17());
+    }
+	otherlv_26=':' 
+    {
+    	newLeafNode(otherlv_26, grammarAccess.getAdaptationProcessAccess().getColonKeyword_18());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_19_0()); 
+	    }
+		lv_strategies_27_0=ruleStrategy		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"strategies",
+        		lv_strategies_27_0, 
+        		"Strategy");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_28=',' 
+    {
+    	newLeafNode(otherlv_28, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_20_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_20_1_0()); 
+	    }
+		lv_strategies_29_0=ruleStrategy		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"strategies",
+        		lv_strategies_29_0, 
+        		"Strategy");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_30='}' 
+    {
+    	newLeafNode(otherlv_30, grammarAccess.getAdaptationProcessAccess().getRightCurlyBracketKeyword_21());
+    }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleAbstractControlFlowElement
+entryRuleAbstractControlFlowElement returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getAbstractControlFlowElementRule()); }
+	 iv_ruleAbstractControlFlowElement=ruleAbstractControlFlowElement 
+	 { $current=$iv_ruleAbstractControlFlowElement.current; } 
+	 EOF 
+;
+
+// Rule AbstractControlFlowElement
+ruleAbstractControlFlowElement returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getStartActionParserRuleCall_0()); 
+    }
+    this_StartAction_0=ruleStartAction
+    { 
+        $current = $this_StartAction_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getStopActionParserRuleCall_1()); 
+    }
+    this_StopAction_1=ruleStopAction
+    { 
+        $current = $this_StopAction_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getLoopActionParserRuleCall_2()); 
+    }
+    this_LoopAction_2=ruleLoopAction
+    { 
+        $current = $this_LoopAction_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getBranchActionParserRuleCall_3()); 
+    }
+    this_BranchAction_3=ruleBranchAction
+    { 
+        $current = $this_BranchAction_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); 
+    }
+    this_ActionReference_4=ruleActionReference
+    { 
+        $current = $this_ActionReference_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleVariationType
+entryRuleVariationType returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getVariationTypeRule()); }
+	 iv_ruleVariationType=ruleVariationType 
+	 { $current=$iv_ruleVariationType.current; } 
+	 EOF 
+;
+
+// Rule VariationType
+ruleVariationType returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); 
+    }
+    this_PropertyRange_0=rulePropertyRange
+    { 
+        $current = $this_PropertyRange_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); 
+    }
+    this_SetOfConfigurations_1=ruleSetOfConfigurations
+    { 
+        $current = $this_SetOfConfigurations_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleEString
+entryRuleEString returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getEStringRule()); } 
+	 iv_ruleEString=ruleEString 
+	 { $current=$iv_ruleEString.current.getText(); }  
+	 EOF 
+;
+
+// Rule EString
+ruleEString returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(    this_STRING_0=RULE_STRING    {
+		$current.merge(this_STRING_0);
+    }
+
+    { 
+    newLeafNode(this_STRING_0, grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); 
+    }
+
+    |    this_ID_1=RULE_ID    {
+		$current.merge(this_ID_1);
+    }
+
+    { 
+    newLeafNode(this_ID_1, grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleTactic
+entryRuleTactic returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTacticRule()); }
+	 iv_ruleTactic=ruleTactic 
+	 { $current=$iv_ruleTactic.current; } 
+	 EOF 
+;
+
+// Rule Tactic
+ruleTactic returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='Tactic' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getTacticAccess().getTacticKeyword_0());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getTacticAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getTacticAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?	otherlv_5='{' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_3());
+    }
+	otherlv_6='implementedPlan' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getTacticAccess().getImplementedPlanKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_5_0()); 
+	    }
+		lv_implementedPlan_7_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"implementedPlan",
+        		lv_implementedPlan_7_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_8='input' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getTacticAccess().getInputKeyword_6_0());
+    }
+	otherlv_9='=' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getTacticAccess().getEqualsSignKeyword_6_1());
+    }
+	otherlv_10='(' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getTacticAccess().getLeftParenthesisKeyword_6_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_3_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_12=',' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getTacticAccess().getCommaKeyword_6_4_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_4_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_14=')' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getTacticAccess().getRightParenthesisKeyword_6_5());
+    }
+)?(	otherlv_15='output' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getTacticAccess().getOutputKeyword_7_0());
+    }
+	otherlv_16='=' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getTacticAccess().getEqualsSignKeyword_7_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_7_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_18='}' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_8());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAction
+entryRuleAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionRule()); }
+	 iv_ruleAction=ruleAction 
+	 { $current=$iv_ruleAction.current; } 
+	 EOF 
+;
+
+// Rule Action
+ruleAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='Action' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionAccess().getActionKeyword_0());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getActionAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getActionAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?	otherlv_5='{' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_3());
+    }
+	otherlv_6='operation' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getActionAccess().getOperationKeyword_4());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getActionAccess().getEqualsSignKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0()); 
+	    }
+		lv_adaptationActionOperation_8_0=ruleAdaptationActionOperation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionRule());
+	        }
+       		set(
+       			$current, 
+       			"adaptationActionOperation",
+        		lv_adaptationActionOperation_8_0, 
+        		"AdaptationActionOperation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='referredAdaptationPoint' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7());
+    }
+	otherlv_10='=' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getActionAccess().getEqualsSignKeyword_8());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_9_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_12='input' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getActionAccess().getInputKeyword_10_0());
+    }
+	otherlv_13='=' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getActionAccess().getEqualsSignKeyword_10_1());
+    }
+	otherlv_14='(' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getActionAccess().getLeftParenthesisKeyword_10_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_3_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_16=',' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getActionAccess().getCommaKeyword_10_4_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_4_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_18=')' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getActionAccess().getRightParenthesisKeyword_10_5());
+    }
+)?(	otherlv_19='output' 
+    {
+    	newLeafNode(otherlv_19, grammarAccess.getActionAccess().getOutputKeyword_11_0());
+    }
+	otherlv_20='=' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getActionAccess().getEqualsSignKeyword_11_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_11_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_22='}' 
+    {
+    	newLeafNode(otherlv_22, grammarAccess.getActionAccess().getRightCurlyBracketKeyword_12());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStrategy
+entryRuleStrategy returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStrategyRule()); }
+	 iv_ruleStrategy=ruleStrategy 
+	 { $current=$iv_ruleStrategy.current; } 
+	 EOF 
+;
+
+// Rule Strategy
+ruleStrategy returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getStrategyAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getStrategyAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_5='objective' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getStrategyAccess().getObjectiveKeyword_3());
+    }
+	otherlv_6='=' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getStrategyAccess().getEqualsSignKeyword_4());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStrategyRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_5_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='triggeringEvent' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getStrategyAccess().getTriggeringEventKeyword_6());
+    }
+	otherlv_9='=' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getStrategyAccess().getEqualsSignKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_8_0()); 
+	    }
+		lv_triggeringEvents_10_0=ruleEvent		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"triggeringEvents",
+        		lv_triggeringEvents_10_0, 
+        		"Event");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_11='tactics' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getStrategyAccess().getTacticsKeyword_9());
+    }
+	otherlv_12='=' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getStrategyAccess().getEqualsSignKeyword_10());
+    }
+	otherlv_13='(' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getStrategyAccess().getLeftParenthesisKeyword_11());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_12_0()); 
+	    }
+		lv_tactics_14_0=ruleWeightedTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_14_0, 
+        		"WeightedTactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_15=',' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getStrategyAccess().getCommaKeyword_13_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_13_1_0()); 
+	    }
+		lv_tactics_16_0=ruleWeightedTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_16_0, 
+        		"WeightedTactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_17=')' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getStrategyAccess().getRightParenthesisKeyword_14());
+    }
+(	otherlv_18='weightingFunction' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_16_0()); 
+	    }
+		lv_weightingFunction_19_0=ruleWeightingFunction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"weightingFunction",
+        		lv_weightingFunction_19_0, 
+        		"WeightingFunction");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_20='}' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_17());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleParameter
+entryRuleParameter returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getParameterRule()); }
+	 iv_ruleParameter=ruleParameter 
+	 { $current=$iv_ruleParameter.current; } 
+	 EOF 
+;
+
+// Rule Parameter
+ruleParameter returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_1());
+    }
+(	otherlv_2='type' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getParameterAccess().getTypeKeyword_2_0());
+    }
+	otherlv_3='=' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_3_0()); 
+	    }
+		lv_type_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"type",
+        		lv_type_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5=',' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getParameterAccess().getCommaKeyword_4_0());
+    }
+(	otherlv_6='value' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getParameterAccess().getValueKeyword_4_1_0());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getParameterAccess().getValueEStringParserRuleCall_4_2_0()); 
+	    }
+		lv_value_8_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_8_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_9='}' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleOverallGoal
+entryRuleOverallGoal returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOverallGoalRule()); }
+	 iv_ruleOverallGoal=ruleOverallGoal 
+	 { $current=$iv_ruleOverallGoal.current; } 
+	 EOF 
+;
+
+// Rule OverallGoal
+ruleOverallGoal returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='description' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getOverallGoalAccess().getDescriptionKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOverallGoalAccess().getDescriptionEStringParserRuleCall_1_0()); 
+	    }
+		lv_description_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOverallGoalRule());
+	        }
+       		set(
+       			$current, 
+       			"description",
+        		lv_description_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='objectives' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getOverallGoalAccess().getObjectivesKeyword_2());
+    }
+	otherlv_3='=' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getOverallGoalAccess().getEqualsSignKeyword_3());
+    }
+	otherlv_4='(' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getOverallGoalAccess().getLeftParenthesisKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_5_0()); 
+	    }
+		lv_objectives_5_0=ruleObjective		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOverallGoalRule());
+	        }
+       		add(
+       			$current, 
+       			"objectives",
+        		lv_objectives_5_0, 
+        		"Objective");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_6=',' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getOverallGoalAccess().getCommaKeyword_6_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_6_1_0()); 
+	    }
+		lv_objectives_7_0=ruleObjective		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOverallGoalRule());
+	        }
+       		add(
+       			$current, 
+       			"objectives",
+        		lv_objectives_7_0, 
+        		"Objective");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_8=')' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getOverallGoalAccess().getRightParenthesisKeyword_7());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleImportDeclaration
+entryRuleImportDeclaration returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getImportDeclarationRule()); }
+	 iv_ruleImportDeclaration=ruleImportDeclaration 
+	 { $current=$iv_ruleImportDeclaration.current; } 
+	 EOF 
+;
+
+// Rule ImportDeclaration
+ruleImportDeclaration returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='ImportDeclaration' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getImportDeclarationAccess().getImportDeclarationKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0()); 
+	    }
+		lv_importURI_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getImportDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"importURI",
+        		lv_importURI_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleAdaptationPlan
+entryRuleAdaptationPlan returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getAdaptationPlanRule()); }
+	 iv_ruleAdaptationPlan=ruleAdaptationPlan 
+	 { $current=$iv_ruleAdaptationPlan.current; } 
+	 EOF 
+;
+
+// Rule AdaptationPlan
+ruleAdaptationPlan returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getAdaptationPlanAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getAdaptationPlanAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='=' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getAdaptationPlanAccess().getEqualsSignKeyword_2());
+    }
+(	otherlv_5='(' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getAdaptationPlanAccess().getLeftParenthesisKeyword_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_1_0()); 
+	    }
+		lv_steps_6_0=ruleAbstractControlFlowElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		add(
+       			$current, 
+       			"steps",
+        		lv_steps_6_0, 
+        		"AbstractControlFlowElement");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_7=',' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getAdaptationPlanAccess().getCommaKeyword_3_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0()); 
+	    }
+		lv_steps_8_0=ruleAbstractControlFlowElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		add(
+       			$current, 
+       			"steps",
+        		lv_steps_8_0, 
+        		"AbstractControlFlowElement");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_9=')' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getAdaptationPlanAccess().getRightParenthesisKeyword_3_3());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleStartAction
+entryRuleStartAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStartActionRule()); }
+	 iv_ruleStartAction=ruleStartAction 
+	 { $current=$iv_ruleStartAction.current; } 
+	 EOF 
+;
+
+// Rule StartAction
+ruleStartAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getStartActionAccess().getStartActionAction_0(),
+            $current);
+    }
+)	otherlv_1='StartAction' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getStartActionAccess().getStartActionKeyword_1());
+    }
+(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStartActionAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStartActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStartActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getStartActionAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleStopAction
+entryRuleStopAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStopActionRule()); }
+	 iv_ruleStopAction=ruleStopAction 
+	 { $current=$iv_ruleStopAction.current; } 
+	 EOF 
+;
+
+// Rule StopAction
+ruleStopAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getStopActionAccess().getStopActionAction_0(),
+            $current);
+    }
+)	otherlv_1='StopAction' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getStopActionAccess().getStopActionKeyword_1());
+    }
+(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStopActionAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStopActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStopActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getStopActionAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleLoopAction
+entryRuleLoopAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getLoopActionRule()); }
+	 iv_ruleLoopAction=ruleLoopAction 
+	 { $current=$iv_ruleLoopAction.current; } 
+	 EOF 
+;
+
+// Rule LoopAction
+ruleLoopAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='LoopAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getLoopActionAccess().getLoopActionKeyword_0());
+    }
+)?(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getLoopActionAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getLoopActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getLoopActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getLoopActionAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='repeat' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getLoopActionAccess().getRepeatKeyword_2());
+    }
+	otherlv_5='counter' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getLoopActionAccess().getCounterKeyword_3());
+    }
+	otherlv_6='=' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getLoopActionAccess().getEqualsSignKeyword_4());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getLoopActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getLoopActionAccess().getCounterParameterCrossReference_5_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='(' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getLoopActionAccess().getLeftParenthesisKeyword_6());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getLoopActionAccess().getBodyAdaptationPlanParserRuleCall_7_0()); 
+	    }
+		lv_body_9_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getLoopActionRule());
+	        }
+       		set(
+       			$current, 
+       			"body",
+        		lv_body_9_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10=')' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getLoopActionAccess().getRightParenthesisKeyword_8());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBranchAction
+entryRuleBranchAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getBranchActionRule()); }
+	 iv_ruleBranchAction=ruleBranchAction 
+	 { $current=$iv_ruleBranchAction.current; } 
+	 EOF 
+;
+
+// Rule BranchAction
+ruleBranchAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='BranchAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getBranchActionAccess().getBranchActionKeyword_0());
+    }
+)?(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getBranchActionAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getBranchActionAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='if' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getBranchActionAccess().getIfKeyword_2());
+    }
+	otherlv_5='(' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_3());
+    }
+	otherlv_6='context' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getBranchActionAccess().getContextKeyword_4());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getBranchActionAccess().getEqualsSignKeyword_5());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getBranchActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getContextEntityCrossReference_6_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9=',' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getBranchActionAccess().getCommaKeyword_7());
+    }
+	otherlv_10='condition' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getBranchActionAccess().getConditionKeyword_8());
+    }
+	otherlv_11='=' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getBranchActionAccess().getEqualsSignKeyword_9());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getConditionEStringParserRuleCall_10_0()); 
+	    }
+		lv_condition_12_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchActionRule());
+	        }
+       		set(
+       			$current, 
+       			"condition",
+        		lv_condition_12_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_13=')' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_11());
+    }
+	otherlv_14='then' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getBranchActionAccess().getThenKeyword_12());
+    }
+	otherlv_15='(' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_13());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getConditionTrueBranchAdaptationPlanParserRuleCall_14_0()); 
+	    }
+		lv_conditionTrueBranch_16_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchActionRule());
+	        }
+       		set(
+       			$current, 
+       			"conditionTrueBranch",
+        		lv_conditionTrueBranch_16_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_17=')' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_15());
+    }
+	otherlv_18='else' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getBranchActionAccess().getElseKeyword_16());
+    }
+	otherlv_19='(' 
+    {
+    	newLeafNode(otherlv_19, grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_17());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getConditionFalseBranchAdaptationPlanParserRuleCall_18_0()); 
+	    }
+		lv_conditionFalseBranch_20_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchActionRule());
+	        }
+       		set(
+       			$current, 
+       			"conditionFalseBranch",
+        		lv_conditionFalseBranch_20_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_21=')' 
+    {
+    	newLeafNode(otherlv_21, grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_19());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleActionReference
+entryRuleActionReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionReferenceRule()); }
+	 iv_ruleActionReference=ruleActionReference 
+	 { $current=$iv_ruleActionReference.current; } 
+	 EOF 
+;
+
+// Rule ActionReference
+ruleActionReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='ActionReference' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0());
+    }
+(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getActionReferenceAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionReferenceAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionReferenceRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getActionReferenceAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='(' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getActionReferenceAccess().getLeftParenthesisKeyword_2());
+    }
+	otherlv_5='refersTo' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getActionReferenceAccess().getRefersToKeyword_3());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionReferenceRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_4_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7=')' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getActionReferenceAccess().getRightParenthesisKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAdaptationActionOperation
+entryRuleAdaptationActionOperation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getAdaptationActionOperationRule()); }
+	 iv_ruleAdaptationActionOperation=ruleAdaptationActionOperation 
+	 { $current=$iv_ruleAdaptationActionOperation.current; } 
+	 EOF 
+;
+
+// Rule AdaptationActionOperation
+ruleAdaptationActionOperation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='(' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getAdaptationActionOperationAccess().getLeftParenthesisKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0()); 
+	    }
+		lv_adaptationOperationDirection_1_0=ruleAdaptationDirection		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationActionOperationRule());
+	        }
+       		set(
+       			$current, 
+       			"adaptationOperationDirection",
+        		lv_adaptationOperationDirection_1_0, 
+        		"AdaptationDirection");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2=',' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getAdaptationActionOperationAccess().getCommaKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0()); 
+	    }
+		lv_adaptationOperationScope_3_0=ruleAdaptationScope		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationActionOperationRule());
+	        }
+       		set(
+       			$current, 
+       			"adaptationOperationScope",
+        		lv_adaptationOperationScope_3_0, 
+        		"AdaptationScope");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getAdaptationActionOperationAccess().getRightParenthesisKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleModelVariableConfigurationRange
+entryRuleModelVariableConfigurationRange returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getModelVariableConfigurationRangeRule()); }
+	 iv_ruleModelVariableConfigurationRange=ruleModelVariableConfigurationRange 
+	 { $current=$iv_ruleModelVariableConfigurationRange.current; } 
+	 EOF 
+;
+
+// Rule ModelVariableConfigurationRange
+ruleModelVariableConfigurationRange returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='ModelVariableConfigurationRange' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0());
+    }
+(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getModelVariableConfigurationRangeAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getModelVariableConfigurationRangeAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_5='name' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getModelVariableConfigurationRangeAccess().getNameKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+	    }
+		lv_name_6_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_6_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7='minValue' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_6_0()); 
+	    }
+		lv_minValue_8_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"minValue",
+        		lv_minValue_8_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='maxValue' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_8_0()); 
+	    }
+		lv_maxValue_10_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"maxValue",
+        		lv_maxValue_10_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_11='adaptableEntity' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_9());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_10_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_13='}' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_11());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleModelEntityConfigurationRange
+entryRuleModelEntityConfigurationRange returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getModelEntityConfigurationRangeRule()); }
+	 iv_ruleModelEntityConfigurationRange=ruleModelEntityConfigurationRange 
+	 { $current=$iv_ruleModelEntityConfigurationRange.current; } 
+	 EOF 
+;
+
+// Rule ModelEntityConfigurationRange
+ruleModelEntityConfigurationRange returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='ModelEntityConfigurationRange' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0());
+    }
+(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getModelEntityConfigurationRangeAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getModelEntityConfigurationRangeAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_5='name' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getModelEntityConfigurationRangeAccess().getNameKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+	    }
+		lv_name_6_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_6_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7='adaptableEntity' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityKeyword_5());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityCrossReference_6_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='variationPossibility' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_8_0()); 
+	    }
+		lv_variationPossibility_10_0=ruleVariationType		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"variationPossibility",
+        		lv_variationPossibility_10_0, 
+        		"VariationType");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_11='}' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_9());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleEDouble
+entryRuleEDouble returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getEDoubleRule()); } 
+	 iv_ruleEDouble=ruleEDouble 
+	 { $current=$iv_ruleEDouble.current.getText(); }  
+	 EOF 
+;
+
+// Rule EDouble
+ruleEDouble returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+	kw='-' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); 
+    }
+)?(    this_INT_1=RULE_INT    {
+		$current.merge(this_INT_1);
+    }
+
+    { 
+    newLeafNode(this_INT_1, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); 
+    }
+)?
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); 
+    }
+    this_INT_3=RULE_INT    {
+		$current.merge(this_INT_3);
+    }
+
+    { 
+    newLeafNode(this_INT_3, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); 
+    }
+((
+	kw='E' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); 
+    }
+
+    |
+	kw='e' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); 
+    }
+)(
+	kw='-' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); 
+    }
+)?    this_INT_7=RULE_INT    {
+		$current.merge(this_INT_7);
+    }
+
+    { 
+    newLeafNode(this_INT_7, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); 
+    }
+)?)
+    ;
+
+
+
+
+
+// Entry rule entryRulePropertyRange
+entryRulePropertyRange returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getPropertyRangeRule()); }
+	 iv_rulePropertyRange=rulePropertyRange 
+	 { $current=$iv_rulePropertyRange.current; } 
+	 EOF 
+;
+
+// Rule PropertyRange
+rulePropertyRange returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='PropertyRange' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0());
+    }
+	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1());
+    }
+	otherlv_2='minValueConstraint' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0()); 
+	    }
+		lv_minValueConstraint_3_0=ruleOclConstraint		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPropertyRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"minValueConstraint",
+        		lv_minValueConstraint_3_0, 
+        		"OclConstraint");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4='maxValueConstraint' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0()); 
+	    }
+		lv_maxValueConstraint_5_0=ruleOclConstraint		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPropertyRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"maxValueConstraint",
+        		lv_maxValueConstraint_5_0, 
+        		"OclConstraint");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_6='}' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSetOfConfigurations
+entryRuleSetOfConfigurations returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getSetOfConfigurationsRule()); }
+	 iv_ruleSetOfConfigurations=ruleSetOfConfigurations 
+	 { $current=$iv_ruleSetOfConfigurations.current; } 
+	 EOF 
+;
+
+// Rule SetOfConfigurations
+ruleSetOfConfigurations returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='SetOfConfigurations' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0());
+    }
+	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1());
+    }
+(	otherlv_2='variants' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_2_0());
+    }
+	otherlv_3='(' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_2_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5=',' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_2_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_7=')' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_2_4());
+    }
+)?	otherlv_8='valueConstraint' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintParserRuleCall_4_0()); 
+	    }
+		lv_valueConstraint_9_0=ruleOclConstraint		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getSetOfConfigurationsRule());
+	        }
+       		set(
+       			$current, 
+       			"valueConstraint",
+        		lv_valueConstraint_9_0, 
+        		"OclConstraint");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleOclConstraint
+entryRuleOclConstraint returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOclConstraintRule()); }
+	 iv_ruleOclConstraint=ruleOclConstraint 
+	 { $current=$iv_ruleOclConstraint.current; } 
+	 EOF 
+;
+
+// Rule OclConstraint
+ruleOclConstraint returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='OclConstraint' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOclConstraintRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='oclString' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getOclConstraintAccess().getOclStringKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0()); 
+	    }
+		lv_oclString_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOclConstraintRule());
+	        }
+       		set(
+       			$current, 
+       			"oclString",
+        		lv_oclString_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='}' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleObjective
+entryRuleObjective returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getObjectiveRule()); }
+	 iv_ruleObjective=ruleObjective 
+	 { $current=$iv_ruleObjective.current; } 
+	 EOF 
+;
+
+// Rule Objective
+ruleObjective returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getObjectiveAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getObjectiveAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_5='specification' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getObjectiveAccess().getSpecificationKeyword_3());
+    }
+	otherlv_6='=' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getObjectiveAccess().getEqualsSignKeyword_4());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_0_0()); 
+	    }
+		lv_specifications_7_0=ruleSpecification		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		add(
+       			$current, 
+       			"specifications",
+        		lv_specifications_7_0, 
+        		"Specification");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(	otherlv_8='(' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getObjectiveAccess().getLeftParenthesisKeyword_5_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_1_0()); 
+	    }
+		lv_specifications_9_0=ruleSpecification		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		add(
+       			$current, 
+       			"specifications",
+        		lv_specifications_9_0, 
+        		"Specification");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getObjectiveAccess().getCommaKeyword_5_1_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_2_1_0()); 
+	    }
+		lv_specifications_11_0=ruleSpecification		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		add(
+       			$current, 
+       			"specifications",
+        		lv_specifications_11_0, 
+        		"Specification");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_12=')' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getObjectiveAccess().getRightParenthesisKeyword_5_1_3());
+    }
+))	otherlv_13='}' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getEventRule()); }
+	 iv_ruleEvent=ruleEvent 
+	 { $current=$iv_ruleEvent.current; } 
+	 EOF 
+;
+
+// Rule Event
+ruleEvent returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getEventAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getEventRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getEventAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getEventAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getEventRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getEventAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleWeightedTactic
+entryRuleWeightedTactic returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getWeightedTacticRule()); }
+	 iv_ruleWeightedTactic=ruleWeightedTactic 
+	 { $current=$iv_ruleWeightedTactic.current; } 
+	 EOF 
+;
+
+// Rule WeightedTactic
+ruleWeightedTactic returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getWeightedTacticAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getWeightedTacticAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='=' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_2());
+    }
+	otherlv_5='(' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getWeightedTacticAccess().getLeftParenthesisKeyword_3());
+    }
+(	otherlv_6='tactic' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getWeightedTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticCrossReference_5_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9=',' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getWeightedTacticAccess().getCommaKeyword_6());
+    }
+(	otherlv_10='default' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0());
+    }
+	otherlv_11='=' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_8_0()); 
+	    }
+		lv_defaultWeight_12_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"defaultWeight",
+        		lv_defaultWeight_12_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_13=',' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getWeightedTacticAccess().getCommaKeyword_9());
+    }
+(	otherlv_14='current' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0());
+    }
+	otherlv_15='=' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_11_0()); 
+	    }
+		lv_currentWeight_16_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"currentWeight",
+        		lv_currentWeight_16_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_17=',' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getWeightedTacticAccess().getCommaKeyword_12_0());
+    }
+(	otherlv_18='lastImpact' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0());
+    }
+	otherlv_19='=' 
+    {
+    	newLeafNode(otherlv_19, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getWeightedTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getLastImpactImpactCrossReference_12_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_21=')' 
+    {
+    	newLeafNode(otherlv_21, grammarAccess.getWeightedTacticAccess().getRightParenthesisKeyword_13());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleWeightingFunction
+entryRuleWeightingFunction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getWeightingFunctionRule()); }
+	 iv_ruleWeightingFunction=ruleWeightingFunction 
+	 { $current=$iv_ruleWeightingFunction.current; } 
+	 EOF 
+;
+
+// Rule WeightingFunction
+ruleWeightingFunction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getWeightingFunctionAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getWeightingFunctionAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='=' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_2());
+    }
+	otherlv_5='(' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_3());
+    }
+	otherlv_6='weightingFunctionImplementation' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationKeyword_4());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationEStringParserRuleCall_6_0()); 
+	    }
+		lv_weightingFunctionImplementation_8_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		set(
+       			$current, 
+       			"weightingFunctionImplementation",
+        		lv_weightingFunctionImplementation_8_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='weightedMetrics' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getWeightingFunctionAccess().getWeightedMetricsKeyword_7());
+    }
+	otherlv_10='=' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_8());
+    }
+	otherlv_11='(' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_9());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_10_0()); 
+	    }
+		lv_weightedMetrics_12_0=ruleWeightedMetric		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		add(
+       			$current, 
+       			"weightedMetrics",
+        		lv_weightedMetrics_12_0, 
+        		"WeightedMetric");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_13=',' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getWeightingFunctionAccess().getCommaKeyword_11_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_11_1_0()); 
+	    }
+		lv_weightedMetrics_14_0=ruleWeightedMetric		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		add(
+       			$current, 
+       			"weightedMetrics",
+        		lv_weightedMetrics_14_0, 
+        		"WeightedMetric");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_15=')' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_12());
+    }
+	otherlv_16=')' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_13());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSpecification
+entryRuleSpecification returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getSpecificationRule()); }
+	 iv_ruleSpecification=ruleSpecification 
+	 { $current=$iv_ruleSpecification.current; } 
+	 EOF 
+;
+
+// Rule Specification
+ruleSpecification returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='Specification' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getSpecificationAccess().getSpecificationKeyword_0());
+    }
+)?	otherlv_1='(' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_1());
+    }
+(	otherlv_2='metricType' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSpecificationRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeCrossReference_3_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getSpecificationAccess().getCommaKeyword_4());
+    }
+(	otherlv_5='relationalOperator' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0()); 
+	    }
+		lv_relationalOperator_6_0=ruleRelationalOperator		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getSpecificationRule());
+	        }
+       		set(
+       			$current, 
+       			"relationalOperator",
+        		lv_relationalOperator_6_0, 
+        		"RelationalOperator");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7=',' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getSpecificationAccess().getCommaKeyword_7());
+    }
+(	otherlv_8='value' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getSpecificationAccess().getValueKeyword_8());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0()); 
+	    }
+		lv_value_9_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getSpecificationRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_9_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10=')' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_10());
+    }
+)
+;
+
+
+
+
+
+
+
+
+
+
+
+// Entry rule entryRuleEDate
+entryRuleEDate returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getEDateRule()); } 
+	 iv_ruleEDate=ruleEDate 
+	 { $current=$iv_ruleEDate.current.getText(); }  
+	 EOF 
+;
+
+// Rule EDate
+ruleEDate returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+
+	kw='EDate' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDateAccess().getEDateKeyword()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleMetricValue
+entryRuleMetricValue returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getMetricValueRule()); }
+	 iv_ruleMetricValue=ruleMetricValue 
+	 { $current=$iv_ruleMetricValue.current; } 
+	 EOF 
+;
+
+// Rule MetricValue
+ruleMetricValue returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='MetricValue' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getMetricValueAccess().getMetricValueKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMetricValueRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getMetricValueAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMetricValueRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getMetricValueAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?	otherlv_5='{' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getMetricValueAccess().getLeftCurlyBracketKeyword_3());
+    }
+	otherlv_6='value' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getMetricValueAccess().getValueKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getValueEDoubleParserRuleCall_5_0()); 
+	    }
+		lv_value_7_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMetricValueRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_7_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='measuredEntity' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getMetricValueAccess().getMeasuredEntityKeyword_6());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMetricValueRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityCrossReference_7_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='metricType' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getMetricValueAccess().getMetricTypeKeyword_8());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMetricValueRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeCrossReference_9_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_12='}' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getMetricValueAccess().getRightCurlyBracketKeyword_10());
+    }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleWeightedMetric
+entryRuleWeightedMetric returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getWeightedMetricRule()); }
+	 iv_ruleWeightedMetric=ruleWeightedMetric 
+	 { $current=$iv_ruleWeightedMetric.current; } 
+	 EOF 
+;
+
+// Rule WeightedMetric
+ruleWeightedMetric returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='WeightedMetric' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedMetricRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getWeightedMetricAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedMetricRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getWeightedMetricAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?	otherlv_5='=' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_3());
+    }
+	otherlv_6='(' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getWeightedMetricAccess().getLeftParenthesisKeyword_4());
+    }
+(	otherlv_7='metricType' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0());
+    }
+	otherlv_8='=' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getWeightedMetricRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeCrossReference_6_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getWeightedMetricAccess().getCommaKeyword_7());
+    }
+(	otherlv_11='weight' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0());
+    }
+	otherlv_12='=' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getWeightEDoubleParserRuleCall_9_0()); 
+	    }
+		lv_weight_13_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedMetricRule());
+	        }
+       		set(
+       			$current, 
+       			"weight",
+        		lv_weight_13_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_14=')' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getWeightedMetricAccess().getRightParenthesisKeyword_10());
+    }
+)
+;
+
+
+
+
+
+// Rule AdaptationScope
+ruleAdaptationScope returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='NOT_SET' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='THIS' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='LEAST_UTILIZED_FIRST' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='MOST_UTILIZED_FIRST' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3()); 
+    }
+)
+    |(	enumLiteral_4='RANDOM' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_4, grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4()); 
+    }
+)
+    |(	enumLiteral_5='ALL' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_5, grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5()); 
+    }
+));
+
+
+
+// Rule AdaptationDirection
+ruleAdaptationDirection returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='NOT_SET' 
+	{
+        $current = grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='INCREASE' 
+	{
+        $current = grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='DECREASE' 
+	{
+        $current = grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='MIGRATE' 
+	{
+        $current = grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3()); 
+    }
+));
+
+
+
+// Rule RelationalOperator
+ruleRelationalOperator returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='==' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='!=' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='>' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='>=' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3()); 
+    }
+)
+    |(	enumLiteral_4='<' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_4, grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4()); 
+    }
+)
+    |(	enumLiteral_5='<=' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_5, grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5()); 
+    }
+)
+    |(	enumLiteral_6='EQUAL' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_6, grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6()); 
+    }
+)
+    |(	enumLiteral_7='NOT_EQUAL' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_7, grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7()); 
+    }
+)
+    |(	enumLiteral_8='GREATER' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_8, grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8()); 
+    }
+)
+    |(	enumLiteral_9='GREATER_EQUAL' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_9, grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9()); 
+    }
+)
+    |(	enumLiteral_10='LESS' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_10, grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10()); 
+    }
+)
+    |(	enumLiteral_11='LESS_EQUAL' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_11, grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11()); 
+    }
+));
+
+
+
+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/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.tokens b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.tokens
new file mode 100644
index 0000000000000000000000000000000000000000..0799b94e3fd85dfd9e1030f8981451dc65b2c405
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.tokens
@@ -0,0 +1,203 @@
+RULE_ID=5
+T__29=29
+T__28=28
+T__27=27
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=10
+T__21=21
+T__20=20
+T__93=93
+T__19=19
+T__94=94
+T__91=91
+T__92=92
+T__16=16
+T__15=15
+T__90=90
+T__18=18
+T__17=17
+T__12=12
+T__11=11
+T__14=14
+T__13=13
+T__99=99
+T__98=98
+T__97=97
+T__96=96
+T__95=95
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__85=85
+T__84=84
+T__87=87
+T__86=86
+T__89=89
+T__88=88
+RULE_ML_COMMENT=7
+RULE_STRING=4
+T__71=71
+T__72=72
+T__70=70
+T__76=76
+T__75=75
+T__74=74
+T__73=73
+T__79=79
+T__78=78
+T__77=77
+T__68=68
+T__69=69
+T__66=66
+T__67=67
+T__64=64
+T__65=65
+T__62=62
+T__63=63
+T__61=61
+T__60=60
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__107=107
+T__108=108
+T__103=103
+T__59=59
+T__104=104
+T__105=105
+T__106=106
+RULE_INT=6
+T__50=50
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__47=47
+T__44=44
+T__45=45
+T__48=48
+T__49=49
+T__102=102
+T__101=101
+T__100=100
+RULE_SL_COMMENT=8
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+RULE_WS=9
+'EQUAL'=103
+'>='=100
+'counter'=45
+'=='=97
+'then'=50
+'type'=36
+'>'=99
+'NOT_EQUAL'=104
+'e'=64
+'weightingFunction'=35
+'value'=37
+'maxValue'=57
+'minValueConstraint'=66
+'LESS_EQUAL'=108
+'.'=62
+'tactic'=74
+'adaptableEntity'=58
+'LEAST_UTILIZED_FIRST'=90
+'OclConstraint'=71
+'objectives'=39
+'SetOfConfigurations'=68
+'else'=51
+'condition'=49
+'LESS'=107
+'weightingFunctionImplementation'=78
+'RANDOM'=92
+'referredAdaptationPoint'=32
+'{'=14
+'MIGRATE'=96
+'goal'=18
+'Specification'=80
+'THIS'=89
+'EDate'=83
+'if'=47
+'triggeringEvent'=34
+'('=27
+':'=16
+'-'=61
+','=17
+'tactics'=20
+'default'=75
+'input'=25
+']'=13
+'INCREASE'=94
+'ImportDeclaration'=40
+'context'=48
+'implementedPlan'=24
+'ActionReference'=52
+'refersTo'=53
+'GREATER'=105
+'output'=29
+'WeightedMetric'=86
+'variationPossibility'=60
+'oclString'=72
+'valueConstraint'=70
+'DECREASE'=95
+'MOST_UTILIZED_FIRST'=91
+'StopAction'=42
+'weightedMetrics'=79
+'repeat'=44
+'ModelVariableConfigurationRange'=54
+'metricType'=81
+'lastImpact'=77
+'BranchAction'=46
+'='=26
+'ModelEntityConfigurationRange'=59
+'Tactic'=23
+')'=28
+'strategies'=21
+'StartAction'=41
+'operation'=31
+'specification'=73
+'parameters'=15
+'}'=22
+'NOT_SET'=88
+'LoopAction'=43
+'minValue'=56
+'objective'=33
+'actions'=19
+'GREATER_EQUAL'=106
+'current'=76
+'weight'=87
+'maxValueConstraint'=67
+'description'=38
+'relationalOperator'=82
+'measuredEntity'=85
+'AdaptationProcess'=11
+'<='=102
+'Action'=30
+'PropertyRange'=65
+'!='=98
+'<'=101
+'name'=55
+'ALL'=93
+'E'=63
+'MetricValue'=84
+'[id:'=12
+'variants'=69
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangLexer$DFA12.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangLexer$DFA12.class
new file mode 100644
index 0000000000000000000000000000000000000000..5f68e7f30a21d7d86544f780cc15e30d35d56228
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangLexer$DFA12.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangLexer.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangLexer.class
new file mode 100644
index 0000000000000000000000000000000000000000..fccb3b3bba74a5a1a188410786f3baa649854757
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangLexer.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser$DFA8.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser$DFA8.class
new file mode 100644
index 0000000000000000000000000000000000000000..28ad1f98e8b366ad58cf87a9725221a57afb05cb
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser$DFA8.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser$FollowSets000.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser$FollowSets000.class
new file mode 100644
index 0000000000000000000000000000000000000000..745fc1a086802d5c200db93a5d6ef4ff5ad462e9
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser$FollowSets000.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser.class
new file mode 100644
index 0000000000000000000000000000000000000000..4d8a4b35c9743b89ef1e1e84ff078dcb18c3dbd5
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/scoping/StaLangScopeProvider.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/scoping/StaLangScopeProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..8c980c3f5004c125253447c3779fd20b373cf992
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/scoping/StaLangScopeProvider.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSemanticSequencer.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSemanticSequencer.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..8d5f81d2c6f5e54238d90508e5ea281ac09c7e83
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSemanticSequencer.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSyntacticSequencer.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSyntacticSequencer.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..d0917397107c8a09bbc41853500f0e2e16d74e48
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSyntacticSequencer.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSemanticSequencer.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSemanticSequencer.class
new file mode 100644
index 0000000000000000000000000000000000000000..841ebdb357f97489befa854d31d00f824d0753ff
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSemanticSequencer.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSyntacticSequencer.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSyntacticSequencer.class
new file mode 100644
index 0000000000000000000000000000000000000000..44adaaf72f1f1806de732bfe812ca813f55ea309
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSyntacticSequencer.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.class
new file mode 100644
index 0000000000000000000000000000000000000000..cff12e315c18a8efbddfaa7638fda8b2fb6775e6
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..102d535bef99439583dd39ab5b3c9da5dd2d3003
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.xtend
@@ -0,0 +1,7 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.serializer
+
+class StaLangSemanticSequencer extends AbstractStaLangSemanticSequencer {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.class
new file mode 100644
index 0000000000000000000000000000000000000000..e0d368f873f4f7c85d76daf4de815eac6d89a009
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..a1e030750ae223a1d186d20fab256359c7b2fe9f
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.xtend
@@ -0,0 +1,7 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.serializer
+
+class StaLangSyntacticSequencer extends AbstractStaLangSyntacticSequencer {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AbstractControlFlowElementElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AbstractControlFlowElementElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..89d240c20ec0cba8ebfdf2580fb0fd8eed6c2377
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AbstractControlFlowElementElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ActionElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ActionElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..9ac5c4004550e2507b50410dbecfe047767e66d9
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ActionElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ActionReferenceElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ActionReferenceElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..ec1f7d80c23756b7cfb45c57d21f8089d37dad47
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ActionReferenceElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationActionOperationElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationActionOperationElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..42b0a6159383ec02906f6f21f49f5933abb0d295
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationActionOperationElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationDirectionElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationDirectionElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..079df0529afa097b189f6ab8bdef6bbb9fcce087
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationDirectionElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationPlanElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationPlanElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..07169f4ac7f1b2f3d94fdafa8305e89a7ae6cb38
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationPlanElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationPointElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationPointElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..2e86d803c97e5c5cffe7b21fe9f12a60ddfd0089
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationPointElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationProcessElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationProcessElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..a9fcc115d4c3aa683e927da1b700e2224349df68
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationProcessElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationScopeElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationScopeElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..f9bc456ee453553b6a846e26b8bb767efd5ded7e
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$AdaptationScopeElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$BranchActionElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$BranchActionElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..9333ae66d6d9b2b6917eb8f602e06a491a99cb59
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$BranchActionElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EDateElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EDateElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..f67ab2c980ccf611d418041a8c37e37f073c10a2
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EDateElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EDoubleElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EDoubleElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..f932b86130c6edbb5c50d60741fdb9de5146a03a
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EDoubleElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EStringElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EStringElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..39e40fb187dfcc9cd857254c1190be7c06adabf1
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EStringElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EventElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EventElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..67faeb829de0f4cbfdf37f22e5a55769c400a854
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$EventElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ImpactElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ImpactElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..aaa6c1f7f467bfbd0b1366bec4307bd874b35526
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ImpactElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ImportDeclarationElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ImportDeclarationElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..b7df1b574ab92c3dd57d4751abff0535df6bf968
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ImportDeclarationElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$LoopActionElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$LoopActionElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..1ae485d2d326e3f6793c4ff65ee29d9f00a1d008
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$LoopActionElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$MeasuredEntityElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$MeasuredEntityElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..e8d6ba8e4246f96baf480c406cad8aa3d4e00fa9
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$MeasuredEntityElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$MetricTypeElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$MetricTypeElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..911288e8ee4a2bcd181ac29304c6735d8b7cfa30
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$MetricTypeElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$MetricValueElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$MetricValueElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..d2efb8c6706970e184abba2179e818fc057eb768
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$MetricValueElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ModelEntityConfigurationRangeElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ModelEntityConfigurationRangeElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..1f216f96e70c1c523e9b1844b1c04702a6461d82
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ModelEntityConfigurationRangeElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ModelVariableConfigurationRangeElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ModelVariableConfigurationRangeElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..0b8adeed7b6d94d159003962e5334409eea9bc09
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ModelVariableConfigurationRangeElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ObjectiveElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ObjectiveElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..06b141fe795bf03b1bc66f93936385e302e414ae
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ObjectiveElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$OclConstraintElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$OclConstraintElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..a36c4f2209581efc20c99aa9b9c5a75baaf42653
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$OclConstraintElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$OverallGoalElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$OverallGoalElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..fd3b7bc8084484a97b07cf33bd5ac304de79a71d
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$OverallGoalElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ParameterElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ParameterElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..ca0348ee2e1eb52d4d9a26763e7d897600b611cb
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ParameterElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$PropertyRangeElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$PropertyRangeElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..2dd7bacd80ccc155855118ff0eec26753b03bb11
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$PropertyRangeElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$RelationalOperatorElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$RelationalOperatorElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..a5a931b2a68540037c81019a8e7edb95c4cf19bf
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$RelationalOperatorElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ResultElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ResultElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..131d7224e9d8c781083690ef32d80c9221c633ae
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$ResultElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$SetOfConfigurationsElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$SetOfConfigurationsElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..4017893e91da0c3897acb7cc4b5ff2956fce21b6
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$SetOfConfigurationsElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$SpecificationElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$SpecificationElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..b7e324817fd0fd12c1aa2fbb065c77f5e76bd333
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$SpecificationElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$StartActionElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$StartActionElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..59a1c721bb17d13a0e96fa800504904ee32a0c75
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$StartActionElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$StopActionElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$StopActionElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..ca7ca7647e8458f84e68972efd9415dd0e574718
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$StopActionElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$StrategyElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$StrategyElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..8617ed8c805c28ef60309c336e883d9ac7e6bbc9
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$StrategyElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$TacticElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$TacticElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..7a6dab04aca3d21fd4a7d34544c237af1aeeb6fe
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$TacticElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$VariationTypeElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$VariationTypeElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..0d93094d2426da3c25636e38907af7c1c041b327
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$VariationTypeElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$WeightedMetricElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$WeightedMetricElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..785f1f230ad61efc780d9cf04ae9eb4ad73ff334
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$WeightedMetricElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$WeightedTacticElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$WeightedTacticElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..647e27942fc1a6829c198e514c014199020a9621
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$WeightedTacticElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$WeightingFunctionElements.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$WeightingFunctionElements.class
new file mode 100644
index 0000000000000000000000000000000000000000..c44d73db81427b5b88c9faa68b33faf6937b56d6
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess$WeightingFunctionElements.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess.class
new file mode 100644
index 0000000000000000000000000000000000000000..0613b06835d6f0789e191df138e5fbbf30b5485a
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/validation/AbstractStaLangJavaValidator.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/validation/AbstractStaLangJavaValidator.class
new file mode 100644
index 0000000000000000000000000000000000000000..e4599f4061f1656227ef9f18874333af3460322f
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/validation/AbstractStaLangJavaValidator.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/validation/StaLangJavaValidator.class b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/validation/StaLangJavaValidator.class
new file mode 100644
index 0000000000000000000000000000000000000000..885427beadce36c114725faaf9163ebaa0e4165d
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/bin/edu/kit/ipd/descartes/mm/adaptation/sta/validation/StaLangJavaValidator.class differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/build.properties b/edu.kit.ipd.descartes.mm.adaptation.sta/build.properties
new file mode 100644
index 0000000000000000000000000000000000000000..31255ed05bc1242430be9f3e44440c2e42921649
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
\ No newline at end of file
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/AbstractStaLangRuntimeModule.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/AbstractStaLangRuntimeModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..2d0902fbe4db24c4a42889748c4391b25202ea0b
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/AbstractStaLangRuntimeModule.java
@@ -0,0 +1,157 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta;
+
+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 {edu.kit.ipd.descartes.mm.adaptation.sta.StaLangRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractStaLangRuntimeModule extends DefaultRuntimeModule {
+
+	protected Properties properties = null;
+
+	@Override
+	public void configure(Binder binder) {
+		properties = tryBindProperties(binder, "edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.properties");
+		super.configure(binder);
+	}
+	
+	public void configureLanguageName(Binder binder) {
+		binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("edu.kit.ipd.descartes.mm.adaptation.sta.StaLang");
+	}
+	
+	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("staLang");
+	}
+	
+	// contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+	public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.ecore2xtext.Ecore2XtextValueConverterServiceFragment
+	public Class<? extends org.eclipse.xtext.conversion.IValueConverterService> bindIValueConverterService() {
+		return org.eclipse.xtext.common.services.Ecore2XtextTerminalConverters.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.serializer.StaLangSemanticSequencer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.serializer.StaLangSyntacticSequencer.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 edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.StaLangParser.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 edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.StaLangAntlrTokenFileProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal.InternalStaLangLexer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public com.google.inject.Provider<edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal.InternalStaLangLexer> provideInternalStaLangLexer() {
+		return org.eclipse.xtext.parser.antlr.LexerProvider.create(edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal.InternalStaLangLexer.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(edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal.InternalStaLangLexer.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 edu.kit.ipd.descartes.mm.adaptation.sta.validation.StaLangJavaValidator> bindStaLangJavaValidator() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.validation.StaLangJavaValidator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.scoping.StaLangScopeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.SimpleLocalScopeProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+		binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+	}
+
+	// contributed by org.eclipse.xtext.generator.exporting.SimpleNamesFragment
+	public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+		return org.eclipse.xtext.naming.SimpleNameProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.generator.StaLangGenerator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+	public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+		return edu.kit.ipd.descartes.mm.adaptation.sta.formatting.StaLangFormatter.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/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtextbin b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtextbin
new file mode 100644
index 0000000000000000000000000000000000000000..48846ffc1c6d7856158d76890101381bc966bf99
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtextbin differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetupGenerated.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetupGenerated.java
new file mode 100644
index 0000000000000000000000000000000000000000..c922a48f6e9308e2c5b7f0934af32c8b94222f87
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetupGenerated.java
@@ -0,0 +1,42 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta;
+
+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 StaLangStandaloneSetupGenerated 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 edu.kit.ipd.descartes.mm.adaptation.sta.StaLangRuntimeModule());
+	}
+	
+	public void register(Injector injector) {
+
+		org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+		org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
+		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("staLang", resourceFactory);
+		org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("staLang", serviceProvider);
+		
+
+
+
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangAntlrTokenFileProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangAntlrTokenFileProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..4d21b67c48c9d96837d27b70917dd7448a4564c1
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class StaLangAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+	
+	public InputStream getAntlrTokenFile() {
+		ClassLoader classLoader = getClass().getClassLoader();
+    	return classLoader.getResourceAsStream("edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.tokens");
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangParser.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..a5635444eab770af6ca1d622f93f77b4684f34b8
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/StaLangParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+
+public class StaLangParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+	
+	@Inject
+	private StaLangGrammarAccess grammarAccess;
+	
+	@Override
+	protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+		tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+	}
+	
+	@Override
+	protected edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal.InternalStaLangParser createParser(XtextTokenStream stream) {
+		return new edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal.InternalStaLangParser(stream, getGrammarAccess());
+	}
+	
+	@Override 
+	protected String getDefaultRuleName() {
+		return "AdaptationProcess";
+	}
+	
+	public StaLangGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(StaLangGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+	
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g
new file mode 100644
index 0000000000000000000000000000000000000000..c7bf6df770d38d870de6c183f88ae1fad06cfdc0
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g
@@ -0,0 +1,3728 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStaLang;
+
+options {
+	superClass=AbstractInternalAntlrParser;
+	
+}
+
+@lexer::header {
+package edu.kit.ipd.descartes.mm.adaptation.sta.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 edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal; 
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+
+}
+
+@parser::members {
+
+ 	private StaLangGrammarAccess grammarAccess;
+ 	
+    public InternalStaLangParser(TokenStream input, StaLangGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+    
+    @Override
+    protected String getFirstRuleName() {
+    	return "AdaptationProcess";	
+   	}
+   	
+   	@Override
+   	protected StaLangGrammarAccess getGrammarAccess() {
+   		return grammarAccess;
+   	}
+}
+
+@rulecatch { 
+    catch (RecognitionException re) { 
+        recover(input,re); 
+        appendSkippedTokens();
+    } 
+}
+
+
+
+
+// Entry rule entryRuleAdaptationProcess
+entryRuleAdaptationProcess returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getAdaptationProcessRule()); }
+	 iv_ruleAdaptationProcess=ruleAdaptationProcess 
+	 { $current=$iv_ruleAdaptationProcess.current; } 
+	 EOF 
+;
+
+// Rule AdaptationProcess
+ruleAdaptationProcess returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getImportDeclarationImportDeclarationParserRuleCall_0_0()); 
+	    }
+		lv_importDeclaration_0_0=ruleImportDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"importDeclaration",
+        		lv_importDeclaration_0_0, 
+        		"ImportDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_1='AdaptationProcess' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getAdaptationProcessAccess().getAdaptationProcessKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getNameEStringParserRuleCall_2_0()); 
+	    }
+		lv_name_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3='[id:' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getAdaptationProcessAccess().getIdKeyword_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getIdEStringParserRuleCall_3_1_0()); 
+	    }
+		lv_id_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5=']' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getAdaptationProcessAccess().getRightSquareBracketKeyword_3_2());
+    }
+)?	otherlv_6='{' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getAdaptationProcessAccess().getLeftCurlyBracketKeyword_4());
+    }
+(	otherlv_7='parameters' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getAdaptationProcessAccess().getParametersKeyword_5_0());
+    }
+	otherlv_8=':' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getAdaptationProcessAccess().getColonKeyword_5_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_2_0()); 
+	    }
+		lv_parameters_9_0=ruleParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"parameters",
+        		lv_parameters_9_0, 
+        		"Parameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_5_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_3_1_0()); 
+	    }
+		lv_parameters_11_0=ruleParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"parameters",
+        		lv_parameters_11_0, 
+        		"Parameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_12='goal' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getAdaptationProcessAccess().getGoalKeyword_6());
+    }
+	otherlv_13=':' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getAdaptationProcessAccess().getColonKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getGoalOverallGoalParserRuleCall_8_0()); 
+	    }
+		lv_goal_14_0=ruleOverallGoal		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		set(
+       			$current, 
+       			"goal",
+        		lv_goal_14_0, 
+        		"OverallGoal");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_15='actions' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getAdaptationProcessAccess().getActionsKeyword_9());
+    }
+	otherlv_16=':' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getAdaptationProcessAccess().getColonKeyword_10());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_11_0()); 
+	    }
+		lv_actions_17_0=ruleAction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"actions",
+        		lv_actions_17_0, 
+        		"Action");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_18=',' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_12_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_12_1_0()); 
+	    }
+		lv_actions_19_0=ruleAction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"actions",
+        		lv_actions_19_0, 
+        		"Action");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_20='tactics' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getAdaptationProcessAccess().getTacticsKeyword_13());
+    }
+	otherlv_21=':' 
+    {
+    	newLeafNode(otherlv_21, grammarAccess.getAdaptationProcessAccess().getColonKeyword_14());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_15_0()); 
+	    }
+		lv_tactics_22_0=ruleTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_22_0, 
+        		"Tactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_23=',' 
+    {
+    	newLeafNode(otherlv_23, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_16_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_16_1_0()); 
+	    }
+		lv_tactics_24_0=ruleTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_24_0, 
+        		"Tactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_25='strategies' 
+    {
+    	newLeafNode(otherlv_25, grammarAccess.getAdaptationProcessAccess().getStrategiesKeyword_17());
+    }
+	otherlv_26=':' 
+    {
+    	newLeafNode(otherlv_26, grammarAccess.getAdaptationProcessAccess().getColonKeyword_18());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_19_0()); 
+	    }
+		lv_strategies_27_0=ruleStrategy		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"strategies",
+        		lv_strategies_27_0, 
+        		"Strategy");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_28=',' 
+    {
+    	newLeafNode(otherlv_28, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_20_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_20_1_0()); 
+	    }
+		lv_strategies_29_0=ruleStrategy		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+	        }
+       		add(
+       			$current, 
+       			"strategies",
+        		lv_strategies_29_0, 
+        		"Strategy");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_30='}' 
+    {
+    	newLeafNode(otherlv_30, grammarAccess.getAdaptationProcessAccess().getRightCurlyBracketKeyword_21());
+    }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleAbstractControlFlowElement
+entryRuleAbstractControlFlowElement returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getAbstractControlFlowElementRule()); }
+	 iv_ruleAbstractControlFlowElement=ruleAbstractControlFlowElement 
+	 { $current=$iv_ruleAbstractControlFlowElement.current; } 
+	 EOF 
+;
+
+// Rule AbstractControlFlowElement
+ruleAbstractControlFlowElement returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getStartActionParserRuleCall_0()); 
+    }
+    this_StartAction_0=ruleStartAction
+    { 
+        $current = $this_StartAction_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getStopActionParserRuleCall_1()); 
+    }
+    this_StopAction_1=ruleStopAction
+    { 
+        $current = $this_StopAction_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getLoopActionParserRuleCall_2()); 
+    }
+    this_LoopAction_2=ruleLoopAction
+    { 
+        $current = $this_LoopAction_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getBranchActionParserRuleCall_3()); 
+    }
+    this_BranchAction_3=ruleBranchAction
+    { 
+        $current = $this_BranchAction_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); 
+    }
+    this_ActionReference_4=ruleActionReference
+    { 
+        $current = $this_ActionReference_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleVariationType
+entryRuleVariationType returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getVariationTypeRule()); }
+	 iv_ruleVariationType=ruleVariationType 
+	 { $current=$iv_ruleVariationType.current; } 
+	 EOF 
+;
+
+// Rule VariationType
+ruleVariationType returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); 
+    }
+    this_PropertyRange_0=rulePropertyRange
+    { 
+        $current = $this_PropertyRange_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); 
+    }
+    this_SetOfConfigurations_1=ruleSetOfConfigurations
+    { 
+        $current = $this_SetOfConfigurations_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleEString
+entryRuleEString returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getEStringRule()); } 
+	 iv_ruleEString=ruleEString 
+	 { $current=$iv_ruleEString.current.getText(); }  
+	 EOF 
+;
+
+// Rule EString
+ruleEString returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(    this_STRING_0=RULE_STRING    {
+		$current.merge(this_STRING_0);
+    }
+
+    { 
+    newLeafNode(this_STRING_0, grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); 
+    }
+
+    |    this_ID_1=RULE_ID    {
+		$current.merge(this_ID_1);
+    }
+
+    { 
+    newLeafNode(this_ID_1, grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleTactic
+entryRuleTactic returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTacticRule()); }
+	 iv_ruleTactic=ruleTactic 
+	 { $current=$iv_ruleTactic.current; } 
+	 EOF 
+;
+
+// Rule Tactic
+ruleTactic returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='Tactic' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getTacticAccess().getTacticKeyword_0());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getTacticAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getTacticAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?	otherlv_5='{' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_3());
+    }
+	otherlv_6='implementedPlan' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getTacticAccess().getImplementedPlanKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_5_0()); 
+	    }
+		lv_implementedPlan_7_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"implementedPlan",
+        		lv_implementedPlan_7_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_8='input' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getTacticAccess().getInputKeyword_6_0());
+    }
+	otherlv_9='=' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getTacticAccess().getEqualsSignKeyword_6_1());
+    }
+	otherlv_10='(' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getTacticAccess().getLeftParenthesisKeyword_6_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_3_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_12=',' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getTacticAccess().getCommaKeyword_6_4_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_4_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_14=')' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getTacticAccess().getRightParenthesisKeyword_6_5());
+    }
+)?(	otherlv_15='output' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getTacticAccess().getOutputKeyword_7_0());
+    }
+	otherlv_16='=' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getTacticAccess().getEqualsSignKeyword_7_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_7_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_18='}' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_8());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAction
+entryRuleAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionRule()); }
+	 iv_ruleAction=ruleAction 
+	 { $current=$iv_ruleAction.current; } 
+	 EOF 
+;
+
+// Rule Action
+ruleAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='Action' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionAccess().getActionKeyword_0());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getActionAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getActionAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?	otherlv_5='{' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_3());
+    }
+	otherlv_6='operation' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getActionAccess().getOperationKeyword_4());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getActionAccess().getEqualsSignKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0()); 
+	    }
+		lv_adaptationActionOperation_8_0=ruleAdaptationActionOperation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionRule());
+	        }
+       		set(
+       			$current, 
+       			"adaptationActionOperation",
+        		lv_adaptationActionOperation_8_0, 
+        		"AdaptationActionOperation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='referredAdaptationPoint' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7());
+    }
+	otherlv_10='=' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getActionAccess().getEqualsSignKeyword_8());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_9_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_12='input' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getActionAccess().getInputKeyword_10_0());
+    }
+	otherlv_13='=' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getActionAccess().getEqualsSignKeyword_10_1());
+    }
+	otherlv_14='(' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getActionAccess().getLeftParenthesisKeyword_10_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_3_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_16=',' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getActionAccess().getCommaKeyword_10_4_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_4_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_18=')' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getActionAccess().getRightParenthesisKeyword_10_5());
+    }
+)?(	otherlv_19='output' 
+    {
+    	newLeafNode(otherlv_19, grammarAccess.getActionAccess().getOutputKeyword_11_0());
+    }
+	otherlv_20='=' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getActionAccess().getEqualsSignKeyword_11_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_11_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_22='}' 
+    {
+    	newLeafNode(otherlv_22, grammarAccess.getActionAccess().getRightCurlyBracketKeyword_12());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStrategy
+entryRuleStrategy returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStrategyRule()); }
+	 iv_ruleStrategy=ruleStrategy 
+	 { $current=$iv_ruleStrategy.current; } 
+	 EOF 
+;
+
+// Rule Strategy
+ruleStrategy returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getStrategyAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getStrategyAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_5='objective' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getStrategyAccess().getObjectiveKeyword_3());
+    }
+	otherlv_6='=' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getStrategyAccess().getEqualsSignKeyword_4());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStrategyRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_5_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='triggeringEvent' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getStrategyAccess().getTriggeringEventKeyword_6());
+    }
+	otherlv_9='=' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getStrategyAccess().getEqualsSignKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_8_0()); 
+	    }
+		lv_triggeringEvents_10_0=ruleEvent		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"triggeringEvents",
+        		lv_triggeringEvents_10_0, 
+        		"Event");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_11='tactics' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getStrategyAccess().getTacticsKeyword_9());
+    }
+	otherlv_12='=' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getStrategyAccess().getEqualsSignKeyword_10());
+    }
+	otherlv_13='(' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getStrategyAccess().getLeftParenthesisKeyword_11());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_12_0()); 
+	    }
+		lv_tactics_14_0=ruleWeightedTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_14_0, 
+        		"WeightedTactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_15=',' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getStrategyAccess().getCommaKeyword_13_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_13_1_0()); 
+	    }
+		lv_tactics_16_0=ruleWeightedTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_16_0, 
+        		"WeightedTactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_17=')' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getStrategyAccess().getRightParenthesisKeyword_14());
+    }
+(	otherlv_18='weightingFunction' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_16_0()); 
+	    }
+		lv_weightingFunction_19_0=ruleWeightingFunction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"weightingFunction",
+        		lv_weightingFunction_19_0, 
+        		"WeightingFunction");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_20='}' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_17());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleParameter
+entryRuleParameter returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getParameterRule()); }
+	 iv_ruleParameter=ruleParameter 
+	 { $current=$iv_ruleParameter.current; } 
+	 EOF 
+;
+
+// Rule Parameter
+ruleParameter returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_1());
+    }
+(	otherlv_2='type' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getParameterAccess().getTypeKeyword_2_0());
+    }
+	otherlv_3='=' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_3_0()); 
+	    }
+		lv_type_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"type",
+        		lv_type_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5=',' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getParameterAccess().getCommaKeyword_4_0());
+    }
+(	otherlv_6='value' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getParameterAccess().getValueKeyword_4_1_0());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getParameterAccess().getValueEStringParserRuleCall_4_2_0()); 
+	    }
+		lv_value_8_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_8_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_9='}' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleOverallGoal
+entryRuleOverallGoal returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOverallGoalRule()); }
+	 iv_ruleOverallGoal=ruleOverallGoal 
+	 { $current=$iv_ruleOverallGoal.current; } 
+	 EOF 
+;
+
+// Rule OverallGoal
+ruleOverallGoal returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='description' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getOverallGoalAccess().getDescriptionKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOverallGoalAccess().getDescriptionEStringParserRuleCall_1_0()); 
+	    }
+		lv_description_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOverallGoalRule());
+	        }
+       		set(
+       			$current, 
+       			"description",
+        		lv_description_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='objectives' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getOverallGoalAccess().getObjectivesKeyword_2());
+    }
+	otherlv_3='=' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getOverallGoalAccess().getEqualsSignKeyword_3());
+    }
+	otherlv_4='(' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getOverallGoalAccess().getLeftParenthesisKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_5_0()); 
+	    }
+		lv_objectives_5_0=ruleObjective		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOverallGoalRule());
+	        }
+       		add(
+       			$current, 
+       			"objectives",
+        		lv_objectives_5_0, 
+        		"Objective");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_6=',' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getOverallGoalAccess().getCommaKeyword_6_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_6_1_0()); 
+	    }
+		lv_objectives_7_0=ruleObjective		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOverallGoalRule());
+	        }
+       		add(
+       			$current, 
+       			"objectives",
+        		lv_objectives_7_0, 
+        		"Objective");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_8=')' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getOverallGoalAccess().getRightParenthesisKeyword_7());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleImportDeclaration
+entryRuleImportDeclaration returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getImportDeclarationRule()); }
+	 iv_ruleImportDeclaration=ruleImportDeclaration 
+	 { $current=$iv_ruleImportDeclaration.current; } 
+	 EOF 
+;
+
+// Rule ImportDeclaration
+ruleImportDeclaration returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='ImportDeclaration' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getImportDeclarationAccess().getImportDeclarationKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0()); 
+	    }
+		lv_importURI_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getImportDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"importURI",
+        		lv_importURI_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleAdaptationPlan
+entryRuleAdaptationPlan returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getAdaptationPlanRule()); }
+	 iv_ruleAdaptationPlan=ruleAdaptationPlan 
+	 { $current=$iv_ruleAdaptationPlan.current; } 
+	 EOF 
+;
+
+// Rule AdaptationPlan
+ruleAdaptationPlan returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getAdaptationPlanAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getAdaptationPlanAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='=' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getAdaptationPlanAccess().getEqualsSignKeyword_2());
+    }
+(	otherlv_5='(' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getAdaptationPlanAccess().getLeftParenthesisKeyword_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_1_0()); 
+	    }
+		lv_steps_6_0=ruleAbstractControlFlowElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		add(
+       			$current, 
+       			"steps",
+        		lv_steps_6_0, 
+        		"AbstractControlFlowElement");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_7=',' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getAdaptationPlanAccess().getCommaKeyword_3_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0()); 
+	    }
+		lv_steps_8_0=ruleAbstractControlFlowElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		add(
+       			$current, 
+       			"steps",
+        		lv_steps_8_0, 
+        		"AbstractControlFlowElement");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_9=')' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getAdaptationPlanAccess().getRightParenthesisKeyword_3_3());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleStartAction
+entryRuleStartAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStartActionRule()); }
+	 iv_ruleStartAction=ruleStartAction 
+	 { $current=$iv_ruleStartAction.current; } 
+	 EOF 
+;
+
+// Rule StartAction
+ruleStartAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getStartActionAccess().getStartActionAction_0(),
+            $current);
+    }
+)	otherlv_1='StartAction' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getStartActionAccess().getStartActionKeyword_1());
+    }
+(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStartActionAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStartActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStartActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getStartActionAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleStopAction
+entryRuleStopAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStopActionRule()); }
+	 iv_ruleStopAction=ruleStopAction 
+	 { $current=$iv_ruleStopAction.current; } 
+	 EOF 
+;
+
+// Rule StopAction
+ruleStopAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getStopActionAccess().getStopActionAction_0(),
+            $current);
+    }
+)	otherlv_1='StopAction' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getStopActionAccess().getStopActionKeyword_1());
+    }
+(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStopActionAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStopActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStopActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getStopActionAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleLoopAction
+entryRuleLoopAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getLoopActionRule()); }
+	 iv_ruleLoopAction=ruleLoopAction 
+	 { $current=$iv_ruleLoopAction.current; } 
+	 EOF 
+;
+
+// Rule LoopAction
+ruleLoopAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='LoopAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getLoopActionAccess().getLoopActionKeyword_0());
+    }
+)?(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getLoopActionAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getLoopActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getLoopActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getLoopActionAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='repeat' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getLoopActionAccess().getRepeatKeyword_2());
+    }
+	otherlv_5='counter' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getLoopActionAccess().getCounterKeyword_3());
+    }
+	otherlv_6='=' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getLoopActionAccess().getEqualsSignKeyword_4());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getLoopActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getLoopActionAccess().getCounterParameterCrossReference_5_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='(' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getLoopActionAccess().getLeftParenthesisKeyword_6());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getLoopActionAccess().getBodyAdaptationPlanParserRuleCall_7_0()); 
+	    }
+		lv_body_9_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getLoopActionRule());
+	        }
+       		set(
+       			$current, 
+       			"body",
+        		lv_body_9_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10=')' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getLoopActionAccess().getRightParenthesisKeyword_8());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBranchAction
+entryRuleBranchAction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getBranchActionRule()); }
+	 iv_ruleBranchAction=ruleBranchAction 
+	 { $current=$iv_ruleBranchAction.current; } 
+	 EOF 
+;
+
+// Rule BranchAction
+ruleBranchAction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='BranchAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getBranchActionAccess().getBranchActionKeyword_0());
+    }
+)?(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getBranchActionAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getBranchActionAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='if' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getBranchActionAccess().getIfKeyword_2());
+    }
+	otherlv_5='(' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_3());
+    }
+	otherlv_6='context' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getBranchActionAccess().getContextKeyword_4());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getBranchActionAccess().getEqualsSignKeyword_5());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getBranchActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getContextEntityCrossReference_6_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9=',' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getBranchActionAccess().getCommaKeyword_7());
+    }
+	otherlv_10='condition' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getBranchActionAccess().getConditionKeyword_8());
+    }
+	otherlv_11='=' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getBranchActionAccess().getEqualsSignKeyword_9());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getConditionEStringParserRuleCall_10_0()); 
+	    }
+		lv_condition_12_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchActionRule());
+	        }
+       		set(
+       			$current, 
+       			"condition",
+        		lv_condition_12_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_13=')' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_11());
+    }
+	otherlv_14='then' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getBranchActionAccess().getThenKeyword_12());
+    }
+	otherlv_15='(' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_13());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getConditionTrueBranchAdaptationPlanParserRuleCall_14_0()); 
+	    }
+		lv_conditionTrueBranch_16_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchActionRule());
+	        }
+       		set(
+       			$current, 
+       			"conditionTrueBranch",
+        		lv_conditionTrueBranch_16_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_17=')' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_15());
+    }
+	otherlv_18='else' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getBranchActionAccess().getElseKeyword_16());
+    }
+	otherlv_19='(' 
+    {
+    	newLeafNode(otherlv_19, grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_17());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchActionAccess().getConditionFalseBranchAdaptationPlanParserRuleCall_18_0()); 
+	    }
+		lv_conditionFalseBranch_20_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchActionRule());
+	        }
+       		set(
+       			$current, 
+       			"conditionFalseBranch",
+        		lv_conditionFalseBranch_20_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_21=')' 
+    {
+    	newLeafNode(otherlv_21, grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_19());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleActionReference
+entryRuleActionReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionReferenceRule()); }
+	 iv_ruleActionReference=ruleActionReference 
+	 { $current=$iv_ruleActionReference.current; } 
+	 EOF 
+;
+
+// Rule ActionReference
+ruleActionReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='ActionReference' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0());
+    }
+(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getActionReferenceAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionReferenceAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionReferenceRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getActionReferenceAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='(' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getActionReferenceAccess().getLeftParenthesisKeyword_2());
+    }
+	otherlv_5='refersTo' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getActionReferenceAccess().getRefersToKeyword_3());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionReferenceRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_4_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7=')' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getActionReferenceAccess().getRightParenthesisKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleAdaptationActionOperation
+entryRuleAdaptationActionOperation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getAdaptationActionOperationRule()); }
+	 iv_ruleAdaptationActionOperation=ruleAdaptationActionOperation 
+	 { $current=$iv_ruleAdaptationActionOperation.current; } 
+	 EOF 
+;
+
+// Rule AdaptationActionOperation
+ruleAdaptationActionOperation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='(' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getAdaptationActionOperationAccess().getLeftParenthesisKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0()); 
+	    }
+		lv_adaptationOperationDirection_1_0=ruleAdaptationDirection		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationActionOperationRule());
+	        }
+       		set(
+       			$current, 
+       			"adaptationOperationDirection",
+        		lv_adaptationOperationDirection_1_0, 
+        		"AdaptationDirection");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2=',' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getAdaptationActionOperationAccess().getCommaKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0()); 
+	    }
+		lv_adaptationOperationScope_3_0=ruleAdaptationScope		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationActionOperationRule());
+	        }
+       		set(
+       			$current, 
+       			"adaptationOperationScope",
+        		lv_adaptationOperationScope_3_0, 
+        		"AdaptationScope");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getAdaptationActionOperationAccess().getRightParenthesisKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleModelVariableConfigurationRange
+entryRuleModelVariableConfigurationRange returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getModelVariableConfigurationRangeRule()); }
+	 iv_ruleModelVariableConfigurationRange=ruleModelVariableConfigurationRange 
+	 { $current=$iv_ruleModelVariableConfigurationRange.current; } 
+	 EOF 
+;
+
+// Rule ModelVariableConfigurationRange
+ruleModelVariableConfigurationRange returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='ModelVariableConfigurationRange' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0());
+    }
+(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getModelVariableConfigurationRangeAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getModelVariableConfigurationRangeAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_5='name' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getModelVariableConfigurationRangeAccess().getNameKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+	    }
+		lv_name_6_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_6_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7='minValue' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_6_0()); 
+	    }
+		lv_minValue_8_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"minValue",
+        		lv_minValue_8_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='maxValue' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_8_0()); 
+	    }
+		lv_maxValue_10_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"maxValue",
+        		lv_maxValue_10_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_11='adaptableEntity' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_9());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_10_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_13='}' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_11());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleModelEntityConfigurationRange
+entryRuleModelEntityConfigurationRange returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getModelEntityConfigurationRangeRule()); }
+	 iv_ruleModelEntityConfigurationRange=ruleModelEntityConfigurationRange 
+	 { $current=$iv_ruleModelEntityConfigurationRange.current; } 
+	 EOF 
+;
+
+// Rule ModelEntityConfigurationRange
+ruleModelEntityConfigurationRange returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='ModelEntityConfigurationRange' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0());
+    }
+(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getModelEntityConfigurationRangeAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getModelEntityConfigurationRangeAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_5='name' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getModelEntityConfigurationRangeAccess().getNameKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+	    }
+		lv_name_6_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_6_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7='adaptableEntity' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityKeyword_5());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityCrossReference_6_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='variationPossibility' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_8_0()); 
+	    }
+		lv_variationPossibility_10_0=ruleVariationType		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"variationPossibility",
+        		lv_variationPossibility_10_0, 
+        		"VariationType");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_11='}' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_9());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleEDouble
+entryRuleEDouble returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getEDoubleRule()); } 
+	 iv_ruleEDouble=ruleEDouble 
+	 { $current=$iv_ruleEDouble.current.getText(); }  
+	 EOF 
+;
+
+// Rule EDouble
+ruleEDouble returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+	kw='-' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); 
+    }
+)?(    this_INT_1=RULE_INT    {
+		$current.merge(this_INT_1);
+    }
+
+    { 
+    newLeafNode(this_INT_1, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); 
+    }
+)?
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); 
+    }
+    this_INT_3=RULE_INT    {
+		$current.merge(this_INT_3);
+    }
+
+    { 
+    newLeafNode(this_INT_3, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); 
+    }
+((
+	kw='E' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); 
+    }
+
+    |
+	kw='e' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); 
+    }
+)(
+	kw='-' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); 
+    }
+)?    this_INT_7=RULE_INT    {
+		$current.merge(this_INT_7);
+    }
+
+    { 
+    newLeafNode(this_INT_7, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); 
+    }
+)?)
+    ;
+
+
+
+
+
+// Entry rule entryRulePropertyRange
+entryRulePropertyRange returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getPropertyRangeRule()); }
+	 iv_rulePropertyRange=rulePropertyRange 
+	 { $current=$iv_rulePropertyRange.current; } 
+	 EOF 
+;
+
+// Rule PropertyRange
+rulePropertyRange returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='PropertyRange' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0());
+    }
+	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1());
+    }
+	otherlv_2='minValueConstraint' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0()); 
+	    }
+		lv_minValueConstraint_3_0=ruleOclConstraint		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPropertyRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"minValueConstraint",
+        		lv_minValueConstraint_3_0, 
+        		"OclConstraint");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4='maxValueConstraint' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0()); 
+	    }
+		lv_maxValueConstraint_5_0=ruleOclConstraint		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPropertyRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"maxValueConstraint",
+        		lv_maxValueConstraint_5_0, 
+        		"OclConstraint");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_6='}' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSetOfConfigurations
+entryRuleSetOfConfigurations returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getSetOfConfigurationsRule()); }
+	 iv_ruleSetOfConfigurations=ruleSetOfConfigurations 
+	 { $current=$iv_ruleSetOfConfigurations.current; } 
+	 EOF 
+;
+
+// Rule SetOfConfigurations
+ruleSetOfConfigurations returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='SetOfConfigurations' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0());
+    }
+	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1());
+    }
+(	otherlv_2='variants' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_2_0());
+    }
+	otherlv_3='(' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_2_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5=',' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_2_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_7=')' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_2_4());
+    }
+)?	otherlv_8='valueConstraint' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintParserRuleCall_4_0()); 
+	    }
+		lv_valueConstraint_9_0=ruleOclConstraint		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getSetOfConfigurationsRule());
+	        }
+       		set(
+       			$current, 
+       			"valueConstraint",
+        		lv_valueConstraint_9_0, 
+        		"OclConstraint");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleOclConstraint
+entryRuleOclConstraint returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOclConstraintRule()); }
+	 iv_ruleOclConstraint=ruleOclConstraint 
+	 { $current=$iv_ruleOclConstraint.current; } 
+	 EOF 
+;
+
+// Rule OclConstraint
+ruleOclConstraint returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='OclConstraint' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOclConstraintRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='oclString' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getOclConstraintAccess().getOclStringKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0()); 
+	    }
+		lv_oclString_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getOclConstraintRule());
+	        }
+       		set(
+       			$current, 
+       			"oclString",
+        		lv_oclString_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='}' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleObjective
+entryRuleObjective returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getObjectiveRule()); }
+	 iv_ruleObjective=ruleObjective 
+	 { $current=$iv_ruleObjective.current; } 
+	 EOF 
+;
+
+// Rule Objective
+ruleObjective returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getObjectiveAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getObjectiveAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_5='specification' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getObjectiveAccess().getSpecificationKeyword_3());
+    }
+	otherlv_6='=' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getObjectiveAccess().getEqualsSignKeyword_4());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_0_0()); 
+	    }
+		lv_specifications_7_0=ruleSpecification		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		add(
+       			$current, 
+       			"specifications",
+        		lv_specifications_7_0, 
+        		"Specification");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(	otherlv_8='(' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getObjectiveAccess().getLeftParenthesisKeyword_5_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_1_0()); 
+	    }
+		lv_specifications_9_0=ruleSpecification		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		add(
+       			$current, 
+       			"specifications",
+        		lv_specifications_9_0, 
+        		"Specification");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getObjectiveAccess().getCommaKeyword_5_1_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_2_1_0()); 
+	    }
+		lv_specifications_11_0=ruleSpecification		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getObjectiveRule());
+	        }
+       		add(
+       			$current, 
+       			"specifications",
+        		lv_specifications_11_0, 
+        		"Specification");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_12=')' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getObjectiveAccess().getRightParenthesisKeyword_5_1_3());
+    }
+))	otherlv_13='}' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getEventRule()); }
+	 iv_ruleEvent=ruleEvent 
+	 { $current=$iv_ruleEvent.current; } 
+	 EOF 
+;
+
+// Rule Event
+ruleEvent returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getEventAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getEventRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getEventAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getEventAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getEventRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getEventAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleWeightedTactic
+entryRuleWeightedTactic returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getWeightedTacticRule()); }
+	 iv_ruleWeightedTactic=ruleWeightedTactic 
+	 { $current=$iv_ruleWeightedTactic.current; } 
+	 EOF 
+;
+
+// Rule WeightedTactic
+ruleWeightedTactic returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getWeightedTacticAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getWeightedTacticAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='=' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_2());
+    }
+	otherlv_5='(' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getWeightedTacticAccess().getLeftParenthesisKeyword_3());
+    }
+(	otherlv_6='tactic' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getWeightedTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticCrossReference_5_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9=',' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getWeightedTacticAccess().getCommaKeyword_6());
+    }
+(	otherlv_10='default' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0());
+    }
+	otherlv_11='=' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_8_0()); 
+	    }
+		lv_defaultWeight_12_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"defaultWeight",
+        		lv_defaultWeight_12_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_13=',' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getWeightedTacticAccess().getCommaKeyword_9());
+    }
+(	otherlv_14='current' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0());
+    }
+	otherlv_15='=' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_11_0()); 
+	    }
+		lv_currentWeight_16_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"currentWeight",
+        		lv_currentWeight_16_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_17=',' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getWeightedTacticAccess().getCommaKeyword_12_0());
+    }
+(	otherlv_18='lastImpact' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0());
+    }
+	otherlv_19='=' 
+    {
+    	newLeafNode(otherlv_19, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getWeightedTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getLastImpactImpactCrossReference_12_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_21=')' 
+    {
+    	newLeafNode(otherlv_21, grammarAccess.getWeightedTacticAccess().getRightParenthesisKeyword_13());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleWeightingFunction
+entryRuleWeightingFunction returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getWeightingFunctionRule()); }
+	 iv_ruleWeightingFunction=ruleWeightingFunction 
+	 { $current=$iv_ruleWeightingFunction.current; } 
+	 EOF 
+;
+
+// Rule WeightingFunction
+ruleWeightingFunction returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getNameEStringParserRuleCall_0_0()); 
+	    }
+		lv_name_0_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_0_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_1='[id:' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getWeightingFunctionAccess().getIdKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getIdEStringParserRuleCall_1_1_0()); 
+	    }
+		lv_id_2_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_2_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=']' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getWeightingFunctionAccess().getRightSquareBracketKeyword_1_2());
+    }
+)?	otherlv_4='=' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_2());
+    }
+	otherlv_5='(' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_3());
+    }
+	otherlv_6='weightingFunctionImplementation' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationKeyword_4());
+    }
+	otherlv_7='=' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationEStringParserRuleCall_6_0()); 
+	    }
+		lv_weightingFunctionImplementation_8_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		set(
+       			$current, 
+       			"weightingFunctionImplementation",
+        		lv_weightingFunctionImplementation_8_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='weightedMetrics' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getWeightingFunctionAccess().getWeightedMetricsKeyword_7());
+    }
+	otherlv_10='=' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_8());
+    }
+	otherlv_11='(' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_9());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_10_0()); 
+	    }
+		lv_weightedMetrics_12_0=ruleWeightedMetric		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		add(
+       			$current, 
+       			"weightedMetrics",
+        		lv_weightedMetrics_12_0, 
+        		"WeightedMetric");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_13=',' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getWeightingFunctionAccess().getCommaKeyword_11_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_11_1_0()); 
+	    }
+		lv_weightedMetrics_14_0=ruleWeightedMetric		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		add(
+       			$current, 
+       			"weightedMetrics",
+        		lv_weightedMetrics_14_0, 
+        		"WeightedMetric");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_15=')' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_12());
+    }
+	otherlv_16=')' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_13());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSpecification
+entryRuleSpecification returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getSpecificationRule()); }
+	 iv_ruleSpecification=ruleSpecification 
+	 { $current=$iv_ruleSpecification.current; } 
+	 EOF 
+;
+
+// Rule Specification
+ruleSpecification returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='Specification' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getSpecificationAccess().getSpecificationKeyword_0());
+    }
+)?	otherlv_1='(' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_1());
+    }
+(	otherlv_2='metricType' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSpecificationRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeCrossReference_3_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getSpecificationAccess().getCommaKeyword_4());
+    }
+(	otherlv_5='relationalOperator' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0()); 
+	    }
+		lv_relationalOperator_6_0=ruleRelationalOperator		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getSpecificationRule());
+	        }
+       		set(
+       			$current, 
+       			"relationalOperator",
+        		lv_relationalOperator_6_0, 
+        		"RelationalOperator");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7=',' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getSpecificationAccess().getCommaKeyword_7());
+    }
+(	otherlv_8='value' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getSpecificationAccess().getValueKeyword_8());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0()); 
+	    }
+		lv_value_9_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getSpecificationRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_9_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10=')' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_10());
+    }
+)
+;
+
+
+
+
+
+
+
+
+
+
+
+// Entry rule entryRuleEDate
+entryRuleEDate returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getEDateRule()); } 
+	 iv_ruleEDate=ruleEDate 
+	 { $current=$iv_ruleEDate.current.getText(); }  
+	 EOF 
+;
+
+// Rule EDate
+ruleEDate returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+
+	kw='EDate' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEDateAccess().getEDateKeyword()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleMetricValue
+entryRuleMetricValue returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getMetricValueRule()); }
+	 iv_ruleMetricValue=ruleMetricValue 
+	 { $current=$iv_ruleMetricValue.current; } 
+	 EOF 
+;
+
+// Rule MetricValue
+ruleMetricValue returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='MetricValue' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getMetricValueAccess().getMetricValueKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMetricValueRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getMetricValueAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMetricValueRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getMetricValueAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?	otherlv_5='{' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getMetricValueAccess().getLeftCurlyBracketKeyword_3());
+    }
+	otherlv_6='value' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getMetricValueAccess().getValueKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getValueEDoubleParserRuleCall_5_0()); 
+	    }
+		lv_value_7_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMetricValueRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_7_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='measuredEntity' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getMetricValueAccess().getMeasuredEntityKeyword_6());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMetricValueRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityCrossReference_7_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='metricType' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getMetricValueAccess().getMetricTypeKeyword_8());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMetricValueRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeCrossReference_9_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_12='}' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getMetricValueAccess().getRightCurlyBracketKeyword_10());
+    }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleWeightedMetric
+entryRuleWeightedMetric returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getWeightedMetricRule()); }
+	 iv_ruleWeightedMetric=ruleWeightedMetric 
+	 { $current=$iv_ruleWeightedMetric.current; } 
+	 EOF 
+;
+
+// Rule WeightedMetric
+ruleWeightedMetric returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='WeightedMetric' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedMetricRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='[id:' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getWeightedMetricAccess().getIdKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getIdEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_id_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedMetricRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=']' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getWeightedMetricAccess().getRightSquareBracketKeyword_2_2());
+    }
+)?	otherlv_5='=' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_3());
+    }
+	otherlv_6='(' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getWeightedMetricAccess().getLeftParenthesisKeyword_4());
+    }
+(	otherlv_7='metricType' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0());
+    }
+	otherlv_8='=' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getWeightedMetricRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeCrossReference_6_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getWeightedMetricAccess().getCommaKeyword_7());
+    }
+(	otherlv_11='weight' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0());
+    }
+	otherlv_12='=' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getWeightEDoubleParserRuleCall_9_0()); 
+	    }
+		lv_weight_13_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedMetricRule());
+	        }
+       		set(
+       			$current, 
+       			"weight",
+        		lv_weight_13_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_14=')' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getWeightedMetricAccess().getRightParenthesisKeyword_10());
+    }
+)
+;
+
+
+
+
+
+// Rule AdaptationScope
+ruleAdaptationScope returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='NOT_SET' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='THIS' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='LEAST_UTILIZED_FIRST' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='MOST_UTILIZED_FIRST' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3()); 
+    }
+)
+    |(	enumLiteral_4='RANDOM' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_4, grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4()); 
+    }
+)
+    |(	enumLiteral_5='ALL' 
+	{
+        $current = grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_5, grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5()); 
+    }
+));
+
+
+
+// Rule AdaptationDirection
+ruleAdaptationDirection returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='NOT_SET' 
+	{
+        $current = grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='INCREASE' 
+	{
+        $current = grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='DECREASE' 
+	{
+        $current = grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='MIGRATE' 
+	{
+        $current = grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3()); 
+    }
+));
+
+
+
+// Rule RelationalOperator
+ruleRelationalOperator returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='==' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='!=' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='>' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='>=' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3()); 
+    }
+)
+    |(	enumLiteral_4='<' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_4, grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4()); 
+    }
+)
+    |(	enumLiteral_5='<=' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_5, grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5()); 
+    }
+)
+    |(	enumLiteral_6='EQUAL' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_6, grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6()); 
+    }
+)
+    |(	enumLiteral_7='NOT_EQUAL' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_7, grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7()); 
+    }
+)
+    |(	enumLiteral_8='GREATER' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_8, grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8()); 
+    }
+)
+    |(	enumLiteral_9='GREATER_EQUAL' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_9, grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9()); 
+    }
+)
+    |(	enumLiteral_10='LESS' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_10, grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10()); 
+    }
+)
+    |(	enumLiteral_11='LESS_EQUAL' 
+	{
+        $current = grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_11, grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11()); 
+    }
+));
+
+
+
+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/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.tokens b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.tokens
new file mode 100644
index 0000000000000000000000000000000000000000..0799b94e3fd85dfd9e1030f8981451dc65b2c405
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.tokens
@@ -0,0 +1,203 @@
+RULE_ID=5
+T__29=29
+T__28=28
+T__27=27
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=10
+T__21=21
+T__20=20
+T__93=93
+T__19=19
+T__94=94
+T__91=91
+T__92=92
+T__16=16
+T__15=15
+T__90=90
+T__18=18
+T__17=17
+T__12=12
+T__11=11
+T__14=14
+T__13=13
+T__99=99
+T__98=98
+T__97=97
+T__96=96
+T__95=95
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__85=85
+T__84=84
+T__87=87
+T__86=86
+T__89=89
+T__88=88
+RULE_ML_COMMENT=7
+RULE_STRING=4
+T__71=71
+T__72=72
+T__70=70
+T__76=76
+T__75=75
+T__74=74
+T__73=73
+T__79=79
+T__78=78
+T__77=77
+T__68=68
+T__69=69
+T__66=66
+T__67=67
+T__64=64
+T__65=65
+T__62=62
+T__63=63
+T__61=61
+T__60=60
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__107=107
+T__108=108
+T__103=103
+T__59=59
+T__104=104
+T__105=105
+T__106=106
+RULE_INT=6
+T__50=50
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__47=47
+T__44=44
+T__45=45
+T__48=48
+T__49=49
+T__102=102
+T__101=101
+T__100=100
+RULE_SL_COMMENT=8
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+RULE_WS=9
+'EQUAL'=103
+'>='=100
+'counter'=45
+'=='=97
+'then'=50
+'type'=36
+'>'=99
+'NOT_EQUAL'=104
+'e'=64
+'weightingFunction'=35
+'value'=37
+'maxValue'=57
+'minValueConstraint'=66
+'LESS_EQUAL'=108
+'.'=62
+'tactic'=74
+'adaptableEntity'=58
+'LEAST_UTILIZED_FIRST'=90
+'OclConstraint'=71
+'objectives'=39
+'SetOfConfigurations'=68
+'else'=51
+'condition'=49
+'LESS'=107
+'weightingFunctionImplementation'=78
+'RANDOM'=92
+'referredAdaptationPoint'=32
+'{'=14
+'MIGRATE'=96
+'goal'=18
+'Specification'=80
+'THIS'=89
+'EDate'=83
+'if'=47
+'triggeringEvent'=34
+'('=27
+':'=16
+'-'=61
+','=17
+'tactics'=20
+'default'=75
+'input'=25
+']'=13
+'INCREASE'=94
+'ImportDeclaration'=40
+'context'=48
+'implementedPlan'=24
+'ActionReference'=52
+'refersTo'=53
+'GREATER'=105
+'output'=29
+'WeightedMetric'=86
+'variationPossibility'=60
+'oclString'=72
+'valueConstraint'=70
+'DECREASE'=95
+'MOST_UTILIZED_FIRST'=91
+'StopAction'=42
+'weightedMetrics'=79
+'repeat'=44
+'ModelVariableConfigurationRange'=54
+'metricType'=81
+'lastImpact'=77
+'BranchAction'=46
+'='=26
+'ModelEntityConfigurationRange'=59
+'Tactic'=23
+')'=28
+'strategies'=21
+'StartAction'=41
+'operation'=31
+'specification'=73
+'parameters'=15
+'}'=22
+'NOT_SET'=88
+'LoopAction'=43
+'minValue'=56
+'objective'=33
+'actions'=19
+'GREATER_EQUAL'=106
+'current'=76
+'weight'=87
+'maxValueConstraint'=67
+'description'=38
+'relationalOperator'=82
+'measuredEntity'=85
+'AdaptationProcess'=11
+'<='=102
+'Action'=30
+'PropertyRange'=65
+'!='=98
+'<'=101
+'name'=55
+'ALL'=93
+'E'=63
+'MetricValue'=84
+'[id:'=12
+'variants'=69
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangLexer.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangLexer.java
new file mode 100644
index 0000000000000000000000000000000000000000..3a36ac68332429646c19277d23da1bc92436a65c
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangLexer.java
@@ -0,0 +1,4675 @@
+package edu.kit.ipd.descartes.mm.adaptation.sta.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 InternalStaLangLexer extends Lexer {
+    public static final int RULE_ID=5;
+    public static final int T__29=29;
+    public static final int T__28=28;
+    public static final int T__27=27;
+    public static final int T__26=26;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int EOF=-1;
+    public static final int T__93=93;
+    public static final int T__19=19;
+    public static final int T__94=94;
+    public static final int T__91=91;
+    public static final int T__92=92;
+    public static final int T__16=16;
+    public static final int T__90=90;
+    public static final int T__15=15;
+    public static final int T__18=18;
+    public static final int T__17=17;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__99=99;
+    public static final int T__98=98;
+    public static final int T__97=97;
+    public static final int T__96=96;
+    public static final int T__95=95;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__85=85;
+    public static final int T__84=84;
+    public static final int T__87=87;
+    public static final int T__86=86;
+    public static final int T__89=89;
+    public static final int T__88=88;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int RULE_STRING=4;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int T__70=70;
+    public static final int T__76=76;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__65=65;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__107=107;
+    public static final int T__108=108;
+    public static final int T__103=103;
+    public static final int T__59=59;
+    public static final int T__104=104;
+    public static final int T__105=105;
+    public static final int T__106=106;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__102=102;
+    public static final int T__101=101;
+    public static final int T__100=100;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int RULE_WS=9;
+
+    // delegates
+    // delegators
+
+    public InternalStaLangLexer() {;} 
+    public InternalStaLangLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalStaLangLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g"; }
+
+    // $ANTLR start "T__11"
+    public final void mT__11() throws RecognitionException {
+        try {
+            int _type = T__11;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:11:7: ( 'AdaptationProcess' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:11:9: 'AdaptationProcess'
+            {
+            match("AdaptationProcess"); 
+
+
+            }
+
+            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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:12:7: ( '[id:' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:12:9: '[id:'
+            {
+            match("[id:"); 
+
+
+            }
+
+            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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:13:7: ( ']' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:14:7: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:14:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:15:7: ( 'parameters' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:15:9: 'parameters'
+            {
+            match("parameters"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:16:7: ( ':' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:16:9: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__16"
+
+    // $ANTLR start "T__17"
+    public final void mT__17() throws RecognitionException {
+        try {
+            int _type = T__17;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:17:7: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:17:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__17"
+
+    // $ANTLR start "T__18"
+    public final void mT__18() throws RecognitionException {
+        try {
+            int _type = T__18;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:18:7: ( 'goal' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:18:9: 'goal'
+            {
+            match("goal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__18"
+
+    // $ANTLR start "T__19"
+    public final void mT__19() throws RecognitionException {
+        try {
+            int _type = T__19;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:19:7: ( 'actions' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:19:9: 'actions'
+            {
+            match("actions"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:20:7: ( 'tactics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:20:9: 'tactics'
+            {
+            match("tactics"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:21:7: ( 'strategies' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:21:9: 'strategies'
+            {
+            match("strategies"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:22:7: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:22:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__22"
+
+    // $ANTLR start "T__23"
+    public final void mT__23() throws RecognitionException {
+        try {
+            int _type = T__23;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:23:7: ( 'Tactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:23:9: 'Tactic'
+            {
+            match("Tactic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:24:7: ( 'implementedPlan' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:24:9: 'implementedPlan'
+            {
+            match("implementedPlan"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__24"
+
+    // $ANTLR start "T__25"
+    public final void mT__25() throws RecognitionException {
+        try {
+            int _type = T__25;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:25:7: ( 'input' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:25:9: 'input'
+            {
+            match("input"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__25"
+
+    // $ANTLR start "T__26"
+    public final void mT__26() throws RecognitionException {
+        try {
+            int _type = T__26;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:26:7: ( '=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:26:9: '='
+            {
+            match('='); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__26"
+
+    // $ANTLR start "T__27"
+    public final void mT__27() throws RecognitionException {
+        try {
+            int _type = T__27;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:27:7: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:27:9: '('
+            {
+            match('('); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__27"
+
+    // $ANTLR start "T__28"
+    public final void mT__28() throws RecognitionException {
+        try {
+            int _type = T__28;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:28:7: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:28:9: ')'
+            {
+            match(')'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__28"
+
+    // $ANTLR start "T__29"
+    public final void mT__29() throws RecognitionException {
+        try {
+            int _type = T__29;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:29:7: ( 'output' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:29:9: 'output'
+            {
+            match("output"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__29"
+
+    // $ANTLR start "T__30"
+    public final void mT__30() throws RecognitionException {
+        try {
+            int _type = T__30;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:30:7: ( 'Action' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:30:9: 'Action'
+            {
+            match("Action"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__30"
+
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:31:7: ( 'operation' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:31:9: 'operation'
+            {
+            match("operation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
+    // $ANTLR start "T__32"
+    public final void mT__32() throws RecognitionException {
+        try {
+            int _type = T__32;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:32:7: ( 'referredAdaptationPoint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:32:9: 'referredAdaptationPoint'
+            {
+            match("referredAdaptationPoint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__32"
+
+    // $ANTLR start "T__33"
+    public final void mT__33() throws RecognitionException {
+        try {
+            int _type = T__33;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:33:7: ( 'objective' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:33:9: 'objective'
+            {
+            match("objective"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:34:7: ( 'triggeringEvent' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:34:9: 'triggeringEvent'
+            {
+            match("triggeringEvent"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__34"
+
+    // $ANTLR start "T__35"
+    public final void mT__35() throws RecognitionException {
+        try {
+            int _type = T__35;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:35:7: ( 'weightingFunction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:35:9: 'weightingFunction'
+            {
+            match("weightingFunction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__35"
+
+    // $ANTLR start "T__36"
+    public final void mT__36() throws RecognitionException {
+        try {
+            int _type = T__36;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:36:7: ( 'type' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:36:9: 'type'
+            {
+            match("type"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__36"
+
+    // $ANTLR start "T__37"
+    public final void mT__37() throws RecognitionException {
+        try {
+            int _type = T__37;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:37:7: ( 'value' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:37:9: 'value'
+            {
+            match("value"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__37"
+
+    // $ANTLR start "T__38"
+    public final void mT__38() throws RecognitionException {
+        try {
+            int _type = T__38;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:38:7: ( 'description' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:38:9: 'description'
+            {
+            match("description"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__38"
+
+    // $ANTLR start "T__39"
+    public final void mT__39() throws RecognitionException {
+        try {
+            int _type = T__39;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:39:7: ( 'objectives' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:39:9: 'objectives'
+            {
+            match("objectives"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__39"
+
+    // $ANTLR start "T__40"
+    public final void mT__40() throws RecognitionException {
+        try {
+            int _type = T__40;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:40:7: ( 'ImportDeclaration' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:40:9: 'ImportDeclaration'
+            {
+            match("ImportDeclaration"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__40"
+
+    // $ANTLR start "T__41"
+    public final void mT__41() throws RecognitionException {
+        try {
+            int _type = T__41;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:41:7: ( 'StartAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:41:9: 'StartAction'
+            {
+            match("StartAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__41"
+
+    // $ANTLR start "T__42"
+    public final void mT__42() throws RecognitionException {
+        try {
+            int _type = T__42;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:42:7: ( 'StopAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:42:9: 'StopAction'
+            {
+            match("StopAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__42"
+
+    // $ANTLR start "T__43"
+    public final void mT__43() throws RecognitionException {
+        try {
+            int _type = T__43;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:43:7: ( 'LoopAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:43:9: 'LoopAction'
+            {
+            match("LoopAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__43"
+
+    // $ANTLR start "T__44"
+    public final void mT__44() throws RecognitionException {
+        try {
+            int _type = T__44;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:44:7: ( 'repeat' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:44:9: 'repeat'
+            {
+            match("repeat"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__44"
+
+    // $ANTLR start "T__45"
+    public final void mT__45() throws RecognitionException {
+        try {
+            int _type = T__45;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:45:7: ( 'counter' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:45:9: 'counter'
+            {
+            match("counter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__45"
+
+    // $ANTLR start "T__46"
+    public final void mT__46() throws RecognitionException {
+        try {
+            int _type = T__46;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:46:7: ( 'BranchAction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:46:9: 'BranchAction'
+            {
+            match("BranchAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__46"
+
+    // $ANTLR start "T__47"
+    public final void mT__47() throws RecognitionException {
+        try {
+            int _type = T__47;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:47:7: ( 'if' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:47:9: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__47"
+
+    // $ANTLR start "T__48"
+    public final void mT__48() throws RecognitionException {
+        try {
+            int _type = T__48;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:48:7: ( 'context' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:48:9: 'context'
+            {
+            match("context"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__48"
+
+    // $ANTLR start "T__49"
+    public final void mT__49() throws RecognitionException {
+        try {
+            int _type = T__49;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:49:7: ( 'condition' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:49:9: 'condition'
+            {
+            match("condition"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__49"
+
+    // $ANTLR start "T__50"
+    public final void mT__50() throws RecognitionException {
+        try {
+            int _type = T__50;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:50:7: ( 'then' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:50:9: 'then'
+            {
+            match("then"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__50"
+
+    // $ANTLR start "T__51"
+    public final void mT__51() throws RecognitionException {
+        try {
+            int _type = T__51;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:51:7: ( 'else' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:51:9: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__51"
+
+    // $ANTLR start "T__52"
+    public final void mT__52() throws RecognitionException {
+        try {
+            int _type = T__52;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:52:7: ( 'ActionReference' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:52:9: 'ActionReference'
+            {
+            match("ActionReference"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__52"
+
+    // $ANTLR start "T__53"
+    public final void mT__53() throws RecognitionException {
+        try {
+            int _type = T__53;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:53:7: ( 'refersTo' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:53:9: 'refersTo'
+            {
+            match("refersTo"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__53"
+
+    // $ANTLR start "T__54"
+    public final void mT__54() throws RecognitionException {
+        try {
+            int _type = T__54;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:54:7: ( 'ModelVariableConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:54:9: 'ModelVariableConfigurationRange'
+            {
+            match("ModelVariableConfigurationRange"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__54"
+
+    // $ANTLR start "T__55"
+    public final void mT__55() throws RecognitionException {
+        try {
+            int _type = T__55;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:55:7: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:55:9: 'name'
+            {
+            match("name"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__55"
+
+    // $ANTLR start "T__56"
+    public final void mT__56() throws RecognitionException {
+        try {
+            int _type = T__56;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:56:7: ( 'minValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:56:9: 'minValue'
+            {
+            match("minValue"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__56"
+
+    // $ANTLR start "T__57"
+    public final void mT__57() throws RecognitionException {
+        try {
+            int _type = T__57;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:57:7: ( 'maxValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:57:9: 'maxValue'
+            {
+            match("maxValue"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__57"
+
+    // $ANTLR start "T__58"
+    public final void mT__58() throws RecognitionException {
+        try {
+            int _type = T__58;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:58:7: ( 'adaptableEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:58:9: 'adaptableEntity'
+            {
+            match("adaptableEntity"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__58"
+
+    // $ANTLR start "T__59"
+    public final void mT__59() throws RecognitionException {
+        try {
+            int _type = T__59;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:59:7: ( 'ModelEntityConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:59:9: 'ModelEntityConfigurationRange'
+            {
+            match("ModelEntityConfigurationRange"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__59"
+
+    // $ANTLR start "T__60"
+    public final void mT__60() throws RecognitionException {
+        try {
+            int _type = T__60;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:60:7: ( 'variationPossibility' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:60:9: 'variationPossibility'
+            {
+            match("variationPossibility"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__60"
+
+    // $ANTLR start "T__61"
+    public final void mT__61() throws RecognitionException {
+        try {
+            int _type = T__61;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:61:7: ( '-' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:61:9: '-'
+            {
+            match('-'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__61"
+
+    // $ANTLR start "T__62"
+    public final void mT__62() throws RecognitionException {
+        try {
+            int _type = T__62;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:62:7: ( '.' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:62:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__62"
+
+    // $ANTLR start "T__63"
+    public final void mT__63() throws RecognitionException {
+        try {
+            int _type = T__63;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:63:7: ( 'E' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:63:9: 'E'
+            {
+            match('E'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__63"
+
+    // $ANTLR start "T__64"
+    public final void mT__64() throws RecognitionException {
+        try {
+            int _type = T__64;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:64:7: ( 'e' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:64:9: 'e'
+            {
+            match('e'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__64"
+
+    // $ANTLR start "T__65"
+    public final void mT__65() throws RecognitionException {
+        try {
+            int _type = T__65;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:65:7: ( 'PropertyRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:65:9: 'PropertyRange'
+            {
+            match("PropertyRange"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__65"
+
+    // $ANTLR start "T__66"
+    public final void mT__66() throws RecognitionException {
+        try {
+            int _type = T__66;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:66:7: ( 'minValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:66:9: 'minValueConstraint'
+            {
+            match("minValueConstraint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__66"
+
+    // $ANTLR start "T__67"
+    public final void mT__67() throws RecognitionException {
+        try {
+            int _type = T__67;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:67:7: ( 'maxValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:67:9: 'maxValueConstraint'
+            {
+            match("maxValueConstraint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__67"
+
+    // $ANTLR start "T__68"
+    public final void mT__68() throws RecognitionException {
+        try {
+            int _type = T__68;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:68:7: ( 'SetOfConfigurations' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:68:9: 'SetOfConfigurations'
+            {
+            match("SetOfConfigurations"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__68"
+
+    // $ANTLR start "T__69"
+    public final void mT__69() throws RecognitionException {
+        try {
+            int _type = T__69;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:69:7: ( 'variants' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:69:9: 'variants'
+            {
+            match("variants"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__69"
+
+    // $ANTLR start "T__70"
+    public final void mT__70() throws RecognitionException {
+        try {
+            int _type = T__70;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:70:7: ( 'valueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:70:9: 'valueConstraint'
+            {
+            match("valueConstraint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__70"
+
+    // $ANTLR start "T__71"
+    public final void mT__71() throws RecognitionException {
+        try {
+            int _type = T__71;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:71:7: ( 'OclConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:71:9: 'OclConstraint'
+            {
+            match("OclConstraint"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__71"
+
+    // $ANTLR start "T__72"
+    public final void mT__72() throws RecognitionException {
+        try {
+            int _type = T__72;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:72:7: ( 'oclString' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:72:9: 'oclString'
+            {
+            match("oclString"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:73:7: ( 'specification' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:73:9: 'specification'
+            {
+            match("specification"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:74:7: ( 'tactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:74:9: 'tactic'
+            {
+            match("tactic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__74"
+
+    // $ANTLR start "T__75"
+    public final void mT__75() throws RecognitionException {
+        try {
+            int _type = T__75;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:75:7: ( 'default' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:75:9: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:76:7: ( 'current' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:76:9: 'current'
+            {
+            match("current"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:77:7: ( 'lastImpact' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:77:9: 'lastImpact'
+            {
+            match("lastImpact"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
+
+    // $ANTLR start "T__78"
+    public final void mT__78() throws RecognitionException {
+        try {
+            int _type = T__78;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:78:7: ( 'weightingFunctionImplementation' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:78:9: 'weightingFunctionImplementation'
+            {
+            match("weightingFunctionImplementation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__78"
+
+    // $ANTLR start "T__79"
+    public final void mT__79() throws RecognitionException {
+        try {
+            int _type = T__79;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:79:7: ( 'weightedMetrics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:79:9: 'weightedMetrics'
+            {
+            match("weightedMetrics"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__79"
+
+    // $ANTLR start "T__80"
+    public final void mT__80() throws RecognitionException {
+        try {
+            int _type = T__80;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:80:7: ( 'Specification' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:80:9: 'Specification'
+            {
+            match("Specification"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__80"
+
+    // $ANTLR start "T__81"
+    public final void mT__81() throws RecognitionException {
+        try {
+            int _type = T__81;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:81:7: ( 'metricType' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:81:9: 'metricType'
+            {
+            match("metricType"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__81"
+
+    // $ANTLR start "T__82"
+    public final void mT__82() throws RecognitionException {
+        try {
+            int _type = T__82;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:82:7: ( 'relationalOperator' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:82:9: 'relationalOperator'
+            {
+            match("relationalOperator"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__82"
+
+    // $ANTLR start "T__83"
+    public final void mT__83() throws RecognitionException {
+        try {
+            int _type = T__83;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:83:7: ( 'EDate' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:83:9: 'EDate'
+            {
+            match("EDate"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__83"
+
+    // $ANTLR start "T__84"
+    public final void mT__84() throws RecognitionException {
+        try {
+            int _type = T__84;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:84:7: ( 'MetricValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:84:9: 'MetricValue'
+            {
+            match("MetricValue"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__84"
+
+    // $ANTLR start "T__85"
+    public final void mT__85() throws RecognitionException {
+        try {
+            int _type = T__85;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:85:7: ( 'measuredEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:85:9: 'measuredEntity'
+            {
+            match("measuredEntity"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__85"
+
+    // $ANTLR start "T__86"
+    public final void mT__86() throws RecognitionException {
+        try {
+            int _type = T__86;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:86:7: ( 'WeightedMetric' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:86:9: 'WeightedMetric'
+            {
+            match("WeightedMetric"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__86"
+
+    // $ANTLR start "T__87"
+    public final void mT__87() throws RecognitionException {
+        try {
+            int _type = T__87;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:87:7: ( 'weight' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:87:9: 'weight'
+            {
+            match("weight"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__87"
+
+    // $ANTLR start "T__88"
+    public final void mT__88() throws RecognitionException {
+        try {
+            int _type = T__88;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:88:7: ( 'NOT_SET' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:88:9: 'NOT_SET'
+            {
+            match("NOT_SET"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__88"
+
+    // $ANTLR start "T__89"
+    public final void mT__89() throws RecognitionException {
+        try {
+            int _type = T__89;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:89:7: ( 'THIS' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:89:9: 'THIS'
+            {
+            match("THIS"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__89"
+
+    // $ANTLR start "T__90"
+    public final void mT__90() throws RecognitionException {
+        try {
+            int _type = T__90;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:90:7: ( 'LEAST_UTILIZED_FIRST' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:90:9: 'LEAST_UTILIZED_FIRST'
+            {
+            match("LEAST_UTILIZED_FIRST"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__90"
+
+    // $ANTLR start "T__91"
+    public final void mT__91() throws RecognitionException {
+        try {
+            int _type = T__91;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:91:7: ( 'MOST_UTILIZED_FIRST' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:91:9: 'MOST_UTILIZED_FIRST'
+            {
+            match("MOST_UTILIZED_FIRST"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__91"
+
+    // $ANTLR start "T__92"
+    public final void mT__92() throws RecognitionException {
+        try {
+            int _type = T__92;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:92:7: ( 'RANDOM' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:92:9: 'RANDOM'
+            {
+            match("RANDOM"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__92"
+
+    // $ANTLR start "T__93"
+    public final void mT__93() throws RecognitionException {
+        try {
+            int _type = T__93;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:93:7: ( 'ALL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:93:9: 'ALL'
+            {
+            match("ALL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__93"
+
+    // $ANTLR start "T__94"
+    public final void mT__94() throws RecognitionException {
+        try {
+            int _type = T__94;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:94:7: ( 'INCREASE' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:94:9: 'INCREASE'
+            {
+            match("INCREASE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__94"
+
+    // $ANTLR start "T__95"
+    public final void mT__95() throws RecognitionException {
+        try {
+            int _type = T__95;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:95:7: ( 'DECREASE' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:95:9: 'DECREASE'
+            {
+            match("DECREASE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__95"
+
+    // $ANTLR start "T__96"
+    public final void mT__96() throws RecognitionException {
+        try {
+            int _type = T__96;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:96:7: ( 'MIGRATE' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:96:9: 'MIGRATE'
+            {
+            match("MIGRATE"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__96"
+
+    // $ANTLR start "T__97"
+    public final void mT__97() throws RecognitionException {
+        try {
+            int _type = T__97;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:97:7: ( '==' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:97:9: '=='
+            {
+            match("=="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__97"
+
+    // $ANTLR start "T__98"
+    public final void mT__98() throws RecognitionException {
+        try {
+            int _type = T__98;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:98:7: ( '!=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:98:9: '!='
+            {
+            match("!="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__98"
+
+    // $ANTLR start "T__99"
+    public final void mT__99() throws RecognitionException {
+        try {
+            int _type = T__99;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:99:7: ( '>' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:99:9: '>'
+            {
+            match('>'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__99"
+
+    // $ANTLR start "T__100"
+    public final void mT__100() throws RecognitionException {
+        try {
+            int _type = T__100;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:100:8: ( '>=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:100:10: '>='
+            {
+            match(">="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__100"
+
+    // $ANTLR start "T__101"
+    public final void mT__101() throws RecognitionException {
+        try {
+            int _type = T__101;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:101:8: ( '<' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:101:10: '<'
+            {
+            match('<'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__101"
+
+    // $ANTLR start "T__102"
+    public final void mT__102() throws RecognitionException {
+        try {
+            int _type = T__102;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:102:8: ( '<=' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:102:10: '<='
+            {
+            match("<="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__102"
+
+    // $ANTLR start "T__103"
+    public final void mT__103() throws RecognitionException {
+        try {
+            int _type = T__103;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:103:8: ( 'EQUAL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:103:10: 'EQUAL'
+            {
+            match("EQUAL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__103"
+
+    // $ANTLR start "T__104"
+    public final void mT__104() throws RecognitionException {
+        try {
+            int _type = T__104;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:104:8: ( 'NOT_EQUAL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:104:10: 'NOT_EQUAL'
+            {
+            match("NOT_EQUAL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__104"
+
+    // $ANTLR start "T__105"
+    public final void mT__105() throws RecognitionException {
+        try {
+            int _type = T__105;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:105:8: ( 'GREATER' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:105:10: 'GREATER'
+            {
+            match("GREATER"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__105"
+
+    // $ANTLR start "T__106"
+    public final void mT__106() throws RecognitionException {
+        try {
+            int _type = T__106;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:106:8: ( 'GREATER_EQUAL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:106:10: 'GREATER_EQUAL'
+            {
+            match("GREATER_EQUAL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__106"
+
+    // $ANTLR start "T__107"
+    public final void mT__107() throws RecognitionException {
+        try {
+            int _type = T__107;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:107:8: ( 'LESS' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:107:10: 'LESS'
+            {
+            match("LESS"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__107"
+
+    // $ANTLR start "T__108"
+    public final void mT__108() throws RecognitionException {
+        try {
+            int _type = T__108;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:108:8: ( 'LESS_EQUAL' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:108:10: 'LESS_EQUAL'
+            {
+            match("LESS_EQUAL"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__108"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3714:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3714:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3714:11: ( '^' )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='^') ) {
+                alt1=1;
+            }
+            switch (alt1) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3714: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;}
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3714: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3716:10: ( ( '0' .. '9' )+ )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3716:12: ( '0' .. '9' )+
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3716: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3716: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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718: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 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718: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 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718: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 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718: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 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718: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 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718: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 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3718: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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3720:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3720:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3720: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3720: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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3722:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3722:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3722: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3722: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);
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3722: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 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3722:41: ( '\\r' )? '\\n'
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3722:41: ( '\\r' )?
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
+
+                    if ( (LA9_0=='\r') ) {
+                        alt9=1;
+                    }
+                    switch (alt9) {
+                        case 1 :
+                            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3722: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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3724:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3724:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3724: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 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.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;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3726:16: ( . )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3726:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=105;
+        alt12 = dfa12.predict(input);
+        switch (alt12) {
+            case 1 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:10: T__11
+                {
+                mT__11(); 
+
+                }
+                break;
+            case 2 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:16: T__12
+                {
+                mT__12(); 
+
+                }
+                break;
+            case 3 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:22: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 4 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:28: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 5 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:34: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 6 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:40: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 7 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:46: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 8 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:52: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 9 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:58: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 10 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:64: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 11 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:70: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 12 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:76: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 13 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:82: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 14 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:88: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 15 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:94: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 16 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:100: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 17 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:106: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 18 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:112: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 19 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:118: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 20 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:124: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 21 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:130: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 22 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:136: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 23 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:142: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 24 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:148: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 25 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:154: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 26 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:160: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 27 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:166: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 28 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:172: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 29 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:178: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 30 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:184: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 31 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:190: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 32 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:196: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 33 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:202: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 34 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:208: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 35 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:214: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 36 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:220: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 37 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:226: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 38 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:232: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 39 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:238: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 40 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:244: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 41 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:250: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 42 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:256: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 43 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:262: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 44 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:268: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 45 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:274: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 46 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:280: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 47 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:286: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 48 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:292: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 49 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:298: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 50 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:304: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 51 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:310: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 52 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:316: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 53 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:322: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 54 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:328: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 55 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:334: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 56 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:340: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 57 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:346: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 58 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:352: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 59 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:358: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 60 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:364: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 61 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:370: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 62 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:376: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 63 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:382: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 64 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:388: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 65 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:394: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 66 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:400: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 67 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:406: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 68 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:412: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 69 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:418: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 70 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:424: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 71 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:430: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 72 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:436: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 73 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:442: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 74 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:448: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 75 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:454: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 76 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:460: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 77 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:466: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 78 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:472: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 79 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:478: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 80 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:484: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 81 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:490: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 82 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:496: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 83 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:502: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 84 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:508: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 85 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:514: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 86 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:520: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 87 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:526: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 88 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:532: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 89 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:538: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 90 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:544: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 91 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:551: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 92 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:558: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 93 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:565: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 94 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:572: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 95 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:579: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 96 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:586: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 97 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:593: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 98 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:600: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 99 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:607: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 100 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:615: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 101 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:624: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 102 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:636: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 103 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:652: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 104 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:668: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 105 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1:676: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String DFA12_eotS =
+        "\1\uffff\1\71\1\65\2\uffff\1\71\2\uffff\4\71\1\uffff\2\71\1\120"+
+        "\2\uffff\12\71\1\146\3\71\2\uffff\1\163\7\71\1\65\1\175\1\177\1"+
+        "\71\1\65\2\uffff\3\65\2\uffff\3\71\4\uffff\1\71\2\uffff\11\71\1"+
+        "\uffff\4\71\1\u0097\4\uffff\23\71\1\uffff\10\71\2\uffff\2\71\1\uffff"+
+        "\7\71\5\uffff\1\71\5\uffff\2\71\1\u00c7\16\71\1\uffff\57\71\1\uffff"+
+        "\1\71\1\u0107\4\71\1\u010c\1\u010d\3\71\1\u0111\26\71\1\u0129\5"+
+        "\71\1\u012f\4\71\1\u0134\21\71\1\uffff\4\71\2\uffff\3\71\1\uffff"+
+        "\1\71\1\u014f\10\71\1\u015a\14\71\1\uffff\5\71\1\uffff\4\71\1\uffff"+
+        "\4\71\1\u0176\1\u0177\12\71\1\u0183\3\71\1\u0188\3\71\1\u018c\1"+
+        "\71\1\uffff\1\u018e\5\71\1\u0194\1\71\1\u0198\1\71\1\uffff\33\71"+
+        "\2\uffff\6\71\1\u01bb\4\71\1\uffff\1\71\1\u01c1\1\71\1\u01c3\1\uffff"+
+        "\3\71\1\uffff\1\71\1\uffff\5\71\1\uffff\3\71\1\uffff\4\71\1\u01d4"+
+        "\11\71\1\u01de\1\u01df\1\71\1\u01e1\5\71\1\u01e7\10\71\1\u01f0\1"+
+        "\71\1\uffff\1\71\1\u01f4\3\71\1\uffff\1\71\1\uffff\10\71\1\u0201"+
+        "\5\71\1\u0207\1\71\1\uffff\1\71\1\u020a\7\71\2\uffff\1\71\1\uffff"+
+        "\5\71\1\uffff\1\u0219\1\u021b\6\71\1\uffff\1\71\1\u0223\1\71\1\uffff"+
+        "\10\71\1\u022d\1\u022f\1\u0230\1\71\1\uffff\5\71\1\uffff\2\71\1"+
+        "\uffff\7\71\1\u0240\6\71\1\uffff\1\71\1\uffff\6\71\1\u024e\1\uffff"+
+        "\3\71\1\u0252\2\71\1\u0255\2\71\1\uffff\1\u0258\2\uffff\11\71\1"+
+        "\u0262\2\71\1\u0265\1\71\1\u0267\1\uffff\7\71\1\u026f\3\71\1\u0273"+
+        "\1\71\1\uffff\3\71\1\uffff\2\71\1\uffff\2\71\1\uffff\6\71\1\u0282"+
+        "\1\71\1\u0284\1\uffff\2\71\1\uffff\1\71\1\uffff\3\71\1\u028b\3\71"+
+        "\1\uffff\3\71\1\uffff\16\71\1\uffff\1\71\1\uffff\3\71\1\u02a4\2"+
+        "\71\1\uffff\14\71\1\u02b3\11\71\1\u02bd\1\71\1\uffff\6\71\1\u02c5"+
+        "\1\u02c6\1\71\1\u02c8\4\71\1\uffff\11\71\1\uffff\6\71\1\u02dc\2"+
+        "\uffff\1\u02dd\1\uffff\1\71\1\u02df\1\u02e0\1\u02e1\1\u02e2\3\71"+
+        "\1\u02e6\1\u02e7\11\71\2\uffff\1\71\4\uffff\3\71\2\uffff\11\71\1"+
+        "\u02fe\2\71\1\u0302\1\71\1\u0304\7\71\1\uffff\1\71\1\u030d\1\71"+
+        "\1\uffff\1\71\1\uffff\5\71\1\u0315\1\u0316\1\71\1\uffff\2\71\1\u031a"+
+        "\3\71\1\u031e\2\uffff\2\71\1\u0321\1\uffff\1\u0322\2\71\1\uffff"+
+        "\2\71\2\uffff\6\71\1\u032d\3\71\1\uffff\21\71\1\u0342\2\71\1\uffff"+
+        "\1\u0345\1\u0346\2\uffff";
+    static final String DFA12_eofS =
+        "\u0347\uffff";
+    static final String DFA12_minS =
+        "\1\0\1\114\1\151\2\uffff\1\141\2\uffff\1\157\1\143\1\141\1\160\1"+
+        "\uffff\1\110\1\146\1\75\2\uffff\1\142\2\145\1\141\1\145\1\116\1"+
+        "\145\1\105\1\157\1\162\1\60\1\111\2\141\2\uffff\1\60\1\162\1\143"+
+        "\1\141\1\145\1\117\1\101\1\105\3\75\1\122\1\101\2\uffff\2\0\1\52"+
+        "\2\uffff\1\141\1\164\1\114\4\uffff\1\162\2\uffff\1\141\1\164\1\141"+
+        "\1\143\1\151\1\160\1\145\1\162\1\145\1\uffff\1\143\1\111\2\160\1"+
+        "\60\4\uffff\1\164\1\145\1\152\1\154\1\146\1\151\1\154\1\146\1\160"+
+        "\1\103\1\141\1\164\1\145\1\157\1\101\1\156\1\162\1\141\1\163\1\uffff"+
+        "\1\144\1\164\1\123\1\107\1\155\1\156\1\170\1\141\2\uffff\1\141\1"+
+        "\125\1\uffff\1\157\1\154\1\163\1\151\1\124\1\116\1\103\5\uffff\1"+
+        "\105\5\uffff\1\160\1\151\1\60\1\141\1\154\1\151\1\160\1\164\1\147"+
+        "\1\145\1\156\1\141\1\143\1\164\1\123\1\154\1\165\1\uffff\1\160\1"+
+        "\162\1\145\1\123\2\145\1\141\1\147\1\165\1\151\1\143\1\141\1\157"+
+        "\1\122\1\162\1\160\1\117\1\143\1\160\2\123\1\156\1\144\1\162\1\156"+
+        "\2\145\1\162\1\124\1\122\1\145\2\126\1\162\1\163\1\164\1\101\1\160"+
+        "\1\103\1\164\1\147\1\137\1\104\1\122\1\101\1\164\1\157\1\uffff\1"+
+        "\155\1\60\1\157\1\164\1\151\1\147\2\60\1\164\2\151\1\60\1\145\1"+
+        "\164\1\165\1\141\1\143\1\164\1\162\1\141\1\164\1\150\1\145\1\141"+
+        "\1\162\1\165\1\162\1\105\1\164\1\101\1\146\1\151\1\101\1\124\1\60"+
+        "\1\164\1\145\1\151\1\145\1\143\1\60\1\154\1\151\1\137\1\101\1\60"+
+        "\2\141\1\151\1\165\1\145\1\114\1\145\1\157\1\111\1\150\1\105\1\117"+
+        "\1\105\1\124\1\141\1\156\1\145\1\uffff\1\156\1\141\1\143\1\145\2"+
+        "\uffff\1\145\1\146\1\143\1\uffff\1\155\1\60\3\164\2\162\1\164\1"+
+        "\151\1\164\1\60\1\156\1\151\1\154\1\164\2\101\1\143\1\103\1\146"+
+        "\1\143\1\137\1\105\1\uffff\1\145\1\170\1\164\1\156\1\150\1\uffff"+
+        "\1\105\1\143\1\125\1\124\1\uffff\2\154\1\143\1\162\2\60\1\162\1"+
+        "\156\1\155\1\164\1\105\1\121\1\115\1\101\1\105\1\164\1\60\1\164"+
+        "\1\163\1\142\1\60\1\162\1\147\1\151\1\60\1\145\1\uffff\1\60\3\151"+
+        "\1\145\1\124\1\60\1\157\1\60\1\157\1\uffff\1\151\1\164\1\160\1\164"+
+        "\1\104\1\123\1\143\1\164\1\157\1\151\1\164\1\125\1\121\1\162\1\164"+
+        "\1\151\1\164\1\101\1\141\1\156\1\126\1\124\1\105\2\165\1\124\1\145"+
+        "\2\uffff\1\164\1\163\1\160\1\145\1\124\1\125\1\60\1\123\1\122\1"+
+        "\151\1\145\1\uffff\1\145\1\60\1\154\1\60\1\uffff\2\151\1\143\1\uffff"+
+        "\1\156\1\uffff\1\157\1\166\1\156\1\144\1\157\1\uffff\2\156\1\144"+
+        "\1\uffff\1\156\1\157\1\163\1\164\1\60\1\145\1\105\1\164\1\151\1"+
+        "\156\1\143\1\151\1\124\1\125\2\60\1\157\1\60\1\143\1\162\1\164\1"+
+        "\141\1\111\1\60\2\145\1\171\1\144\1\171\1\164\1\141\1\144\1\60\1"+
+        "\101\1\uffff\1\105\1\60\1\157\1\146\1\162\1\uffff\1\145\1\uffff"+
+        "\1\156\1\145\1\141\1\164\1\156\1\145\1\147\1\101\1\60\1\141\1\147"+
+        "\1\115\1\163\1\156\1\60\1\151\1\uffff\1\143\1\60\1\151\1\157\1\146"+
+        "\1\141\1\157\1\111\1\101\2\uffff\1\156\1\uffff\1\164\2\151\1\154"+
+        "\1\114\1\uffff\2\60\1\160\1\105\1\122\1\162\1\143\1\115\1\uffff"+
+        "\1\114\1\60\1\105\1\uffff\1\156\1\145\1\163\1\105\1\147\1\163\1"+
+        "\164\1\145\3\60\1\144\1\uffff\1\154\1\106\1\145\1\164\1\120\1\uffff"+
+        "\1\157\1\154\1\uffff\1\157\1\156\1\151\1\164\1\156\2\114\1\60\1"+
+        "\151\1\141\1\164\1\165\1\111\1\157\1\uffff\1\157\1\uffff\1\145\1"+
+        "\156\2\141\1\164\1\145\1\60\1\uffff\1\121\1\120\1\162\1\60\1\156"+
+        "\1\105\1\60\1\151\1\144\1\uffff\1\60\2\uffff\1\141\1\117\1\165\1"+
+        "\164\1\162\1\157\1\156\1\141\1\156\1\60\1\147\1\151\1\60\1\111\1"+
+        "\60\1\uffff\1\157\1\142\1\171\1\145\1\132\2\156\1\60\1\164\1\156"+
+        "\1\151\1\60\1\164\1\uffff\1\125\1\162\1\145\1\uffff\1\164\1\166"+
+        "\1\uffff\1\157\1\120\1\uffff\2\160\1\156\1\162\1\141\1\163\1\60"+
+        "\1\162\1\60\1\uffff\1\165\1\157\1\uffff\1\132\1\uffff\1\156\1\154"+
+        "\1\103\1\60\1\105\2\163\1\uffff\1\151\1\147\1\156\1\uffff\1\162"+
+        "\1\101\1\157\1\156\1\151\1\145\1\156\1\154\1\164\1\145\1\143\2\151"+
+        "\1\163\1\uffff\1\141\1\uffff\1\162\1\156\1\105\1\60\1\145\1\157"+
+        "\1\uffff\1\104\3\164\1\145\1\164\1\151\1\114\2\143\1\164\1\156\1"+
+        "\60\2\141\1\162\1\164\1\143\1\156\1\151\1\164\1\141\1\60\1\104\1"+
+        "\uffff\1\103\1\156\1\137\2\162\1\171\2\60\1\143\1\60\2\145\1\171"+
+        "\1\164\1\uffff\1\156\1\164\1\141\1\151\1\163\1\164\1\142\1\151\1"+
+        "\164\1\uffff\1\137\1\157\1\146\1\106\2\141\1\60\2\uffff\1\60\1\uffff"+
+        "\1\163\4\60\1\151\1\164\1\157\2\60\1\151\1\157\1\151\1\106\1\156"+
+        "\1\151\1\111\2\151\2\uffff\1\163\4\uffff\2\157\1\156\2\uffff\1\154"+
+        "\1\156\1\157\1\111\1\146\1\147\1\122\2\156\1\60\1\156\1\162\1\60"+
+        "\1\151\1\60\1\156\1\122\1\151\1\165\1\123\2\164\1\uffff\1\120\1"+
+        "\60\1\155\1\uffff\1\164\1\uffff\1\163\1\123\1\147\1\162\1\124\2"+
+        "\60\1\157\1\uffff\1\160\1\171\1\60\1\124\1\165\1\141\1\60\2\uffff"+
+        "\1\151\1\154\1\60\1\uffff\1\60\1\162\1\164\1\uffff\1\156\1\145\2"+
+        "\uffff\1\141\1\151\1\164\1\155\1\164\1\157\1\60\1\145\1\151\1\156"+
+        "\1\uffff\1\156\1\157\1\122\1\164\1\156\2\141\1\122\1\156\1\164\1"+
+        "\141\1\147\1\151\1\156\1\145\1\157\1\147\1\60\1\156\1\145\1\uffff"+
+        "\2\60\2\uffff";
+    static final String DFA12_maxS =
+        "\1\uffff\1\144\1\151\2\uffff\1\141\2\uffff\1\157\1\144\1\171\1\164"+
+        "\1\uffff\1\141\1\156\1\75\2\uffff\1\165\2\145\1\141\1\145\1\155"+
+        "\1\164\1\157\1\165\1\162\1\172\1\157\1\141\1\151\2\uffff\1\172\1"+
+        "\162\1\143\1\141\1\145\1\117\1\101\1\105\3\75\1\122\1\172\2\uffff"+
+        "\2\uffff\1\57\2\uffff\1\141\1\164\1\114\4\uffff\1\162\2\uffff\1"+
+        "\141\1\164\1\141\1\143\1\151\1\160\1\145\1\162\1\145\1\uffff\1\143"+
+        "\1\111\2\160\1\172\4\uffff\1\164\1\145\1\152\1\154\1\160\1\151\1"+
+        "\162\1\163\1\160\1\103\1\157\1\164\1\145\1\157\1\123\1\165\1\162"+
+        "\1\141\1\163\1\uffff\1\144\1\164\1\123\1\107\1\155\1\156\1\170\1"+
+        "\164\2\uffff\1\141\1\125\1\uffff\1\157\1\154\1\163\1\151\1\124\1"+
+        "\116\1\103\5\uffff\1\105\5\uffff\1\160\1\151\1\172\1\141\1\154\1"+
+        "\151\1\160\1\164\1\147\1\145\1\156\1\141\1\143\1\164\1\123\1\154"+
+        "\1\165\1\uffff\1\160\1\162\1\145\1\123\2\145\1\141\1\147\1\165\1"+
+        "\151\1\143\1\141\1\157\1\122\1\162\1\160\1\117\1\143\1\160\2\123"+
+        "\1\156\1\164\1\162\1\156\2\145\1\162\1\124\1\122\1\145\2\126\1\162"+
+        "\1\163\1\164\1\101\1\160\1\103\1\164\1\147\1\137\1\104\1\122\1\101"+
+        "\1\164\1\157\1\uffff\1\155\1\172\1\157\1\164\1\151\1\147\2\172\1"+
+        "\164\2\151\1\172\1\145\1\164\1\165\1\141\1\143\1\164\1\162\1\141"+
+        "\1\164\1\150\1\145\1\141\1\162\1\165\1\162\1\105\1\164\1\101\1\146"+
+        "\1\151\1\101\1\124\1\172\1\164\1\145\1\151\1\145\1\143\1\172\1\154"+
+        "\1\151\1\137\1\101\1\172\2\141\1\151\1\165\1\145\1\114\1\145\1\157"+
+        "\1\111\1\150\1\123\1\117\1\105\1\124\1\141\1\156\1\145\1\uffff\1"+
+        "\156\1\141\1\143\1\145\2\uffff\1\145\1\146\1\143\1\uffff\1\155\1"+
+        "\172\3\164\1\162\1\163\1\164\1\151\1\164\1\172\1\164\1\151\1\154"+
+        "\1\164\2\101\1\143\1\103\1\146\1\143\1\137\1\105\1\uffff\1\145\1"+
+        "\170\1\164\1\156\1\150\1\uffff\1\126\1\143\1\125\1\124\1\uffff\2"+
+        "\154\1\143\1\162\2\172\1\162\1\156\1\155\1\164\1\105\1\121\1\115"+
+        "\1\101\1\105\1\164\1\172\1\164\1\163\1\142\1\172\1\162\1\147\1\151"+
+        "\1\172\1\145\1\uffff\1\172\3\151\1\145\1\124\1\172\1\157\1\172\1"+
+        "\157\1\uffff\1\151\1\164\1\160\1\164\1\104\1\123\1\143\1\164\1\157"+
+        "\1\151\1\164\1\125\1\121\1\162\1\164\1\151\1\164\1\101\1\141\1\156"+
+        "\1\126\1\124\1\105\2\165\1\124\1\145\2\uffff\1\164\1\163\1\160\1"+
+        "\145\1\124\1\125\1\172\1\123\1\122\1\151\1\145\1\uffff\1\145\1\172"+
+        "\1\154\1\172\1\uffff\2\151\1\143\1\uffff\1\156\1\uffff\1\157\1\166"+
+        "\1\156\1\144\1\157\1\uffff\2\156\1\144\1\uffff\1\156\1\157\1\163"+
+        "\1\164\1\172\1\145\1\105\1\164\1\151\1\156\1\143\1\151\1\124\1\125"+
+        "\2\172\1\157\1\172\1\143\1\162\1\164\1\141\1\111\1\172\2\145\1\171"+
+        "\1\144\1\171\1\164\1\141\1\144\1\172\1\101\1\uffff\1\105\1\172\1"+
+        "\157\1\146\1\162\1\uffff\1\145\1\uffff\1\156\1\145\1\141\1\164\1"+
+        "\156\1\145\1\147\1\101\1\172\1\141\1\147\1\115\1\163\1\156\1\172"+
+        "\1\151\1\uffff\1\143\1\172\1\151\1\157\1\146\1\141\1\157\1\111\1"+
+        "\101\2\uffff\1\156\1\uffff\1\164\2\151\1\154\1\114\1\uffff\2\172"+
+        "\1\160\1\105\1\122\1\162\1\143\1\115\1\uffff\1\114\1\172\1\105\1"+
+        "\uffff\1\156\1\145\1\163\1\105\1\147\1\163\1\164\1\145\3\172\1\144"+
+        "\1\uffff\1\154\1\106\1\145\1\164\1\120\1\uffff\1\157\1\154\1\uffff"+
+        "\1\157\1\156\1\151\1\164\1\156\2\114\1\172\1\151\1\141\1\164\1\165"+
+        "\1\111\1\157\1\uffff\1\157\1\uffff\1\145\1\156\2\141\1\164\1\145"+
+        "\1\172\1\uffff\1\121\1\120\1\162\1\172\1\156\1\105\1\172\1\151\1"+
+        "\144\1\uffff\1\172\2\uffff\1\141\1\117\1\165\1\164\1\162\1\157\1"+
+        "\156\1\141\1\156\1\172\1\147\1\151\1\172\1\111\1\172\1\uffff\1\157"+
+        "\1\142\1\171\1\145\1\132\2\156\1\172\1\164\1\156\1\151\1\172\1\164"+
+        "\1\uffff\1\125\1\162\1\145\1\uffff\1\164\1\166\1\uffff\1\157\1\120"+
+        "\1\uffff\2\160\1\156\1\162\1\141\1\163\1\172\1\162\1\172\1\uffff"+
+        "\1\165\1\157\1\uffff\1\132\1\uffff\1\156\1\154\1\103\1\172\1\105"+
+        "\2\163\1\uffff\1\151\1\147\1\156\1\uffff\1\162\1\101\1\157\1\156"+
+        "\1\151\1\145\1\156\1\154\1\164\1\145\1\143\2\151\1\163\1\uffff\1"+
+        "\141\1\uffff\1\162\1\156\1\105\1\172\1\145\1\157\1\uffff\1\104\3"+
+        "\164\1\145\1\164\1\151\1\114\2\143\1\164\1\156\1\172\2\141\1\162"+
+        "\1\164\1\143\1\156\1\151\1\164\1\141\1\172\1\104\1\uffff\1\103\1"+
+        "\156\1\137\2\162\1\171\2\172\1\143\1\172\2\145\1\171\1\164\1\uffff"+
+        "\1\156\1\164\1\141\1\151\1\163\1\164\1\142\1\151\1\164\1\uffff\1"+
+        "\137\1\157\1\146\1\106\2\141\1\172\2\uffff\1\172\1\uffff\1\163\4"+
+        "\172\1\151\1\164\1\157\2\172\1\151\1\157\1\151\1\106\1\156\1\151"+
+        "\1\111\2\151\2\uffff\1\163\4\uffff\2\157\1\156\2\uffff\1\154\1\156"+
+        "\1\157\1\111\1\146\1\147\1\122\2\156\1\172\1\156\1\162\1\172\1\151"+
+        "\1\172\1\156\1\122\1\151\1\165\1\123\2\164\1\uffff\1\120\1\172\1"+
+        "\155\1\uffff\1\164\1\uffff\1\163\1\123\1\147\1\162\1\124\2\172\1"+
+        "\157\1\uffff\1\160\1\171\1\172\1\124\1\165\1\141\1\172\2\uffff\1"+
+        "\151\1\154\1\172\1\uffff\1\172\1\162\1\164\1\uffff\1\156\1\145\2"+
+        "\uffff\1\141\1\151\1\164\1\155\1\164\1\157\1\172\1\145\1\151\1\156"+
+        "\1\uffff\1\156\1\157\1\122\1\164\1\156\2\141\1\122\1\156\1\164\1"+
+        "\141\1\147\1\151\1\156\1\145\1\157\1\147\1\172\1\156\1\145\1\uffff"+
+        "\2\172\2\uffff";
+    static final String DFA12_acceptS =
+        "\3\uffff\1\3\1\4\1\uffff\1\6\1\7\4\uffff\1\14\3\uffff\1\21\1\22"+
+        "\16\uffff\1\63\1\64\15\uffff\1\143\1\144\3\uffff\1\150\1\151\3\uffff"+
+        "\1\143\1\2\1\3\1\4\1\uffff\1\6\1\7\11\uffff\1\14\5\uffff\1\127\1"+
+        "\20\1\21\1\22\23\uffff\1\66\10\uffff\1\63\1\64\2\uffff\1\65\7\uffff"+
+        "\1\130\1\132\1\131\1\134\1\133\1\uffff\1\144\1\145\1\146\1\147\1"+
+        "\150\21\uffff\1\45\57\uffff\1\123\77\uffff\1\10\4\uffff\1\32\1\50"+
+        "\3\uffff\1\117\27\uffff\1\141\5\uffff\1\51\4\uffff\1\55\32\uffff"+
+        "\1\17\12\uffff\1\33\33\uffff\1\111\1\135\13\uffff\1\24\4\uffff\1"+
+        "\100\3\uffff\1\15\1\uffff\1\23\5\uffff\1\42\3\uffff\1\115\42\uffff"+
+        "\1\122\5\uffff\1\11\1\uffff\1\12\20\uffff\1\101\11\uffff\1\43\1"+
+        "\46\1\uffff\1\102\5\uffff\1\126\10\uffff\1\116\3\uffff\1\137\14"+
+        "\uffff\1\53\5\uffff\1\73\2\uffff\1\124\16\uffff\1\56\1\uffff\1\57"+
+        "\7\uffff\1\125\11\uffff\1\25\1\uffff\1\27\1\76\17\uffff\1\47\15"+
+        "\uffff\1\136\3\uffff\1\5\2\uffff\1\13\2\uffff\1\35\11\uffff\1\40"+
+        "\2\uffff\1\41\1\uffff\1\142\7\uffff\1\107\3\uffff\1\103\16\uffff"+
+        "\1\34\1\uffff\1\37\6\uffff\1\112\30\uffff\1\44\16\uffff\1\77\11"+
+        "\uffff\1\106\7\uffff\1\67\1\75\1\uffff\1\140\23\uffff\1\113\1\114"+
+        "\1\uffff\1\52\1\60\1\30\1\16\3\uffff\1\105\1\74\26\uffff\1\1\3\uffff"+
+        "\1\31\1\uffff\1\36\10\uffff\1\110\7\uffff\1\70\1\71\3\uffff\1\72"+
+        "\3\uffff\1\121\2\uffff\1\62\1\120\12\uffff\1\26\24\uffff\1\61\2"+
+        "\uffff\1\104\1\54";
+    static final String DFA12_specialS =
+        "\1\0\60\uffff\1\2\1\1\u0314\uffff}>";
+    static final String[] DFA12_transitionS = {
+            "\11\65\2\64\2\65\1\64\22\65\1\64\1\52\1\61\4\65\1\62\1\20\1"+
+            "\21\2\65\1\7\1\40\1\41\1\63\12\60\1\6\1\65\1\54\1\17\1\53\2"+
+            "\65\1\1\1\33\1\57\1\51\1\42\1\57\1\55\1\57\1\27\2\57\1\31\1"+
+            "\35\1\47\1\44\1\43\1\57\1\50\1\30\1\15\2\57\1\46\3\57\1\2\1"+
+            "\65\1\3\1\56\1\57\1\65\1\11\1\57\1\32\1\26\1\34\1\57\1\10\1"+
+            "\57\1\16\2\57\1\45\1\37\1\36\1\22\1\5\1\57\1\23\1\13\1\12\1"+
+            "\57\1\25\1\24\3\57\1\4\1\65\1\14\uff82\65",
+            "\1\70\26\uffff\1\67\1\66",
+            "\1\72",
+            "",
+            "",
+            "\1\75",
+            "",
+            "",
+            "\1\100",
+            "\1\101\1\102",
+            "\1\103\6\uffff\1\106\11\uffff\1\104\6\uffff\1\105",
+            "\1\110\3\uffff\1\107",
+            "",
+            "\1\113\30\uffff\1\112",
+            "\1\116\6\uffff\1\114\1\115",
+            "\1\117",
+            "",
+            "",
+            "\1\125\1\126\14\uffff\1\124\4\uffff\1\123",
+            "\1\127",
+            "\1\130",
+            "\1\131",
+            "\1\132",
+            "\1\134\36\uffff\1\133",
+            "\1\136\12\uffff\1\137\3\uffff\1\135",
+            "\1\141\51\uffff\1\140",
+            "\1\142\5\uffff\1\143",
+            "\1\144",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\13\71\1\145\16\71",
+            "\1\152\5\uffff\1\151\25\uffff\1\150\11\uffff\1\147",
+            "\1\153",
+            "\1\155\3\uffff\1\156\3\uffff\1\154",
+            "",
+            "",
+            "\12\71\7\uffff\3\71\1\161\14\71\1\162\11\71\4\uffff\1\71\1"+
+            "\uffff\32\71",
+            "\1\164",
+            "\1\165",
+            "\1\166",
+            "\1\167",
+            "\1\170",
+            "\1\171",
+            "\1\172",
+            "\1\173",
+            "\1\174",
+            "\1\176",
+            "\1\u0080",
+            "\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\0\u0082",
+            "\0\u0082",
+            "\1\u0083\4\uffff\1\u0084",
+            "",
+            "",
+            "\1\u0086",
+            "\1\u0087",
+            "\1\u0088",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0089",
+            "",
+            "",
+            "\1\u008a",
+            "\1\u008b",
+            "\1\u008c",
+            "\1\u008d",
+            "\1\u008e",
+            "\1\u008f",
+            "\1\u0090",
+            "\1\u0091",
+            "\1\u0092",
+            "",
+            "\1\u0093",
+            "\1\u0094",
+            "\1\u0095",
+            "\1\u0096",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0098",
+            "\1\u0099",
+            "\1\u009a",
+            "\1\u009b",
+            "\1\u009c\5\uffff\1\u009e\3\uffff\1\u009d",
+            "\1\u009f",
+            "\1\u00a0\5\uffff\1\u00a1",
+            "\1\u00a3\14\uffff\1\u00a2",
+            "\1\u00a4",
+            "\1\u00a5",
+            "\1\u00a6\15\uffff\1\u00a7",
+            "\1\u00a8",
+            "\1\u00a9",
+            "\1\u00aa",
+            "\1\u00ab\21\uffff\1\u00ac",
+            "\1\u00ae\6\uffff\1\u00ad",
+            "\1\u00af",
+            "\1\u00b0",
+            "\1\u00b1",
+            "",
+            "\1\u00b2",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00ba\22\uffff\1\u00b9",
+            "",
+            "",
+            "\1\u00bb",
+            "\1\u00bc",
+            "",
+            "\1\u00bd",
+            "\1\u00be",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\1\u00c3",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00c4",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00c5",
+            "\1\u00c6",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00c8",
+            "\1\u00c9",
+            "\1\u00ca",
+            "\1\u00cb",
+            "\1\u00cc",
+            "\1\u00cd",
+            "\1\u00ce",
+            "\1\u00cf",
+            "\1\u00d0",
+            "\1\u00d1",
+            "\1\u00d2",
+            "\1\u00d3",
+            "\1\u00d4",
+            "\1\u00d5",
+            "",
+            "\1\u00d6",
+            "\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\u00da",
+            "\1\u00db",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\1\u00e4",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\1\u00e8",
+            "\1\u00e9",
+            "\1\u00ea",
+            "\1\u00eb",
+            "\1\u00ed\17\uffff\1\u00ec",
+            "\1\u00ee",
+            "\1\u00ef",
+            "\1\u00f0",
+            "\1\u00f1",
+            "\1\u00f2",
+            "\1\u00f3",
+            "\1\u00f4",
+            "\1\u00f5",
+            "\1\u00f6",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00f9",
+            "\1\u00fa",
+            "\1\u00fb",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "",
+            "\1\u0106",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0108",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u010e",
+            "\1\u010f",
+            "\1\u0110",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011a",
+            "\1\u011b",
+            "\1\u011c",
+            "\1\u011d",
+            "\1\u011e",
+            "\1\u011f",
+            "\1\u0120",
+            "\1\u0121",
+            "\1\u0122",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\12\71\7\uffff\32\71\4\uffff\1\u0128\1\uffff\32\71",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
+            "\1\u012d",
+            "\1\u012e",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132",
+            "\1\u0133",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0135",
+            "\1\u0136",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\u0139",
+            "\1\u013a",
+            "\1\u013b",
+            "\1\u013c",
+            "\1\u013d",
+            "\1\u013e",
+            "\1\u0140\15\uffff\1\u013f",
+            "\1\u0141",
+            "\1\u0142",
+            "\1\u0143",
+            "\1\u0144",
+            "\1\u0145",
+            "\1\u0146",
+            "",
+            "\1\u0147",
+            "\1\u0148",
+            "\1\u0149",
+            "\1\u014a",
+            "",
+            "",
+            "\1\u014b",
+            "\1\u014c",
+            "\1\u014d",
+            "",
+            "\1\u014e",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0150",
+            "\1\u0151",
+            "\1\u0152",
+            "\1\u0153",
+            "\1\u0154\1\u0155",
+            "\1\u0156",
+            "\1\u0157",
+            "\1\u0158",
+            "\12\71\7\uffff\2\71\1\u0159\27\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u015c\5\uffff\1\u015b",
+            "\1\u015d",
+            "\1\u015e",
+            "\1\u015f",
+            "\1\u0160",
+            "\1\u0161",
+            "\1\u0162",
+            "\1\u0163",
+            "\1\u0164",
+            "\1\u0165",
+            "\1\u0166",
+            "\1\u0167",
+            "",
+            "\1\u0168",
+            "\1\u0169",
+            "\1\u016a",
+            "\1\u016b",
+            "\1\u016c",
+            "",
+            "\1\u016e\20\uffff\1\u016d",
+            "\1\u016f",
+            "\1\u0170",
+            "\1\u0171",
+            "",
+            "\1\u0172",
+            "\1\u0173",
+            "\1\u0174",
+            "\1\u0175",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0178",
+            "\1\u0179",
+            "\1\u017a",
+            "\1\u017b",
+            "\1\u017c",
+            "\1\u017d",
+            "\1\u017e",
+            "\1\u017f",
+            "\1\u0180",
+            "\1\u0181",
+            "\12\71\7\uffff\21\71\1\u0182\10\71\4\uffff\1\71\1\uffff\32"+
+            "\71",
+            "\1\u0184",
+            "\1\u0185",
+            "\1\u0186",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\22\71\1\u0187\7\71",
+            "\1\u0189",
+            "\1\u018a",
+            "\1\u018b",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u018d",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u018f",
+            "\1\u0190",
+            "\1\u0191",
+            "\1\u0192",
+            "\1\u0193",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0195",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\4\71\1\u0197\3\71"+
+            "\1\u0196\21\71",
+            "\1\u0199",
+            "",
+            "\1\u019a",
+            "\1\u019b",
+            "\1\u019c",
+            "\1\u019d",
+            "\1\u019e",
+            "\1\u019f",
+            "\1\u01a0",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\u01a3",
+            "\1\u01a4",
+            "\1\u01a5",
+            "\1\u01a6",
+            "\1\u01a7",
+            "\1\u01a8",
+            "\1\u01a9",
+            "\1\u01aa",
+            "\1\u01ab",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\u01af",
+            "\1\u01b0",
+            "\1\u01b1",
+            "\1\u01b2",
+            "\1\u01b3",
+            "\1\u01b4",
+            "",
+            "",
+            "\1\u01b5",
+            "\1\u01b6",
+            "\1\u01b7",
+            "\1\u01b8",
+            "\1\u01b9",
+            "\1\u01ba",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01bc",
+            "\1\u01bd",
+            "\1\u01be",
+            "\1\u01bf",
+            "",
+            "\1\u01c0",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01c2",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u01c4",
+            "\1\u01c5",
+            "\1\u01c6",
+            "",
+            "\1\u01c7",
+            "",
+            "\1\u01c8",
+            "\1\u01c9",
+            "\1\u01ca",
+            "\1\u01cb",
+            "\1\u01cc",
+            "",
+            "\1\u01cd",
+            "\1\u01ce",
+            "\1\u01cf",
+            "",
+            "\1\u01d0",
+            "\1\u01d1",
+            "\1\u01d2",
+            "\1\u01d3",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01d5",
+            "\1\u01d6",
+            "\1\u01d7",
+            "\1\u01d8",
+            "\1\u01d9",
+            "\1\u01da",
+            "\1\u01db",
+            "\1\u01dc",
+            "\1\u01dd",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01e0",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01e2",
+            "\1\u01e3",
+            "\1\u01e4",
+            "\1\u01e5",
+            "\1\u01e6",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01e8",
+            "\1\u01e9",
+            "\1\u01ea",
+            "\1\u01eb",
+            "\1\u01ec",
+            "\1\u01ed",
+            "\1\u01ee",
+            "\1\u01ef",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01f1",
+            "",
+            "\1\u01f2",
+            "\12\71\7\uffff\32\71\4\uffff\1\u01f3\1\uffff\32\71",
+            "\1\u01f5",
+            "\1\u01f6",
+            "\1\u01f7",
+            "",
+            "\1\u01f8",
+            "",
+            "\1\u01f9",
+            "\1\u01fa",
+            "\1\u01fb",
+            "\1\u01fc",
+            "\1\u01fd",
+            "\1\u01fe",
+            "\1\u01ff",
+            "\1\u0200",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0202",
+            "\1\u0203",
+            "\1\u0204",
+            "\1\u0205",
+            "\1\u0206",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0208",
+            "",
+            "\1\u0209",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u020b",
+            "\1\u020c",
+            "\1\u020d",
+            "\1\u020e",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\u0211",
+            "",
+            "",
+            "\1\u0212",
+            "",
+            "\1\u0213",
+            "\1\u0214",
+            "\1\u0215",
+            "\1\u0216",
+            "\1\u0217",
+            "",
+            "\12\71\7\uffff\2\71\1\u0218\27\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\2\71\1\u021a\27\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u021c",
+            "\1\u021d",
+            "\1\u021e",
+            "\1\u021f",
+            "\1\u0220",
+            "\1\u0221",
+            "",
+            "\1\u0222",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0224",
+            "",
+            "\1\u0225",
+            "\1\u0226",
+            "\1\u0227",
+            "\1\u0228",
+            "\1\u0229",
+            "\1\u022a",
+            "\1\u022b",
+            "\1\u022c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\22\71\1\u022e\7\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0231",
+            "",
+            "\1\u0232",
+            "\1\u0233",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\u0236",
+            "",
+            "\1\u0237",
+            "\1\u0238",
+            "",
+            "\1\u0239",
+            "\1\u023a",
+            "\1\u023b",
+            "\1\u023c",
+            "\1\u023d",
+            "\1\u023e",
+            "\1\u023f",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0241",
+            "\1\u0242",
+            "\1\u0243",
+            "\1\u0244",
+            "\1\u0245",
+            "\1\u0246",
+            "",
+            "\1\u0247",
+            "",
+            "\1\u0248",
+            "\1\u0249",
+            "\1\u024a",
+            "\1\u024b",
+            "\1\u024c",
+            "\1\u024d",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u024f",
+            "\1\u0250",
+            "\1\u0251",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0253",
+            "\1\u0254",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0256",
+            "\1\u0257",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u0259",
+            "\1\u025a",
+            "\1\u025b",
+            "\1\u025c",
+            "\1\u025d",
+            "\1\u025e",
+            "\1\u025f",
+            "\1\u0260",
+            "\1\u0261",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0263",
+            "\1\u0264",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0266",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0268",
+            "\1\u0269",
+            "\1\u026a",
+            "\1\u026b",
+            "\1\u026c",
+            "\1\u026d",
+            "\1\u026e",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0270",
+            "\1\u0271",
+            "\1\u0272",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0274",
+            "",
+            "\1\u0275",
+            "\1\u0276",
+            "\1\u0277",
+            "",
+            "\1\u0278",
+            "\1\u0279",
+            "",
+            "\1\u027a",
+            "\1\u027b",
+            "",
+            "\1\u027c",
+            "\1\u027d",
+            "\1\u027e",
+            "\1\u027f",
+            "\1\u0280",
+            "\1\u0281",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0283",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0285",
+            "\1\u0286",
+            "",
+            "\1\u0287",
+            "",
+            "\1\u0288",
+            "\1\u0289",
+            "\1\u028a",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u028c",
+            "\1\u028d",
+            "\1\u028e",
+            "",
+            "\1\u028f",
+            "\1\u0290",
+            "\1\u0291",
+            "",
+            "\1\u0292",
+            "\1\u0293",
+            "\1\u0294",
+            "\1\u0295",
+            "\1\u0296",
+            "\1\u0297",
+            "\1\u0298",
+            "\1\u0299",
+            "\1\u029a",
+            "\1\u029b",
+            "\1\u029c",
+            "\1\u029d",
+            "\1\u029e",
+            "\1\u029f",
+            "",
+            "\1\u02a0",
+            "",
+            "\1\u02a1",
+            "\1\u02a2",
+            "\1\u02a3",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02a5",
+            "\1\u02a6",
+            "",
+            "\1\u02a7",
+            "\1\u02a8",
+            "\1\u02a9",
+            "\1\u02aa",
+            "\1\u02ab",
+            "\1\u02ac",
+            "\1\u02ad",
+            "\1\u02ae",
+            "\1\u02af",
+            "\1\u02b0",
+            "\1\u02b1",
+            "\1\u02b2",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02b4",
+            "\1\u02b5",
+            "\1\u02b6",
+            "\1\u02b7",
+            "\1\u02b8",
+            "\1\u02b9",
+            "\1\u02ba",
+            "\1\u02bb",
+            "\1\u02bc",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02be",
+            "",
+            "\1\u02bf",
+            "\1\u02c0",
+            "\1\u02c1",
+            "\1\u02c2",
+            "\1\u02c3",
+            "\1\u02c4",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02c7",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02c9",
+            "\1\u02ca",
+            "\1\u02cb",
+            "\1\u02cc",
+            "",
+            "\1\u02cd",
+            "\1\u02ce",
+            "\1\u02cf",
+            "\1\u02d0",
+            "\1\u02d1",
+            "\1\u02d2",
+            "\1\u02d3",
+            "\1\u02d4",
+            "\1\u02d5",
+            "",
+            "\1\u02d6",
+            "\1\u02d7",
+            "\1\u02d8",
+            "\1\u02d9",
+            "\1\u02da",
+            "\1\u02db",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u02de",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02e3",
+            "\1\u02e4",
+            "\1\u02e5",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02e8",
+            "\1\u02e9",
+            "\1\u02ea",
+            "\1\u02eb",
+            "\1\u02ec",
+            "\1\u02ed",
+            "\1\u02ee",
+            "\1\u02ef",
+            "\1\u02f0",
+            "",
+            "",
+            "\1\u02f1",
+            "",
+            "",
+            "",
+            "",
+            "\1\u02f2",
+            "\1\u02f3",
+            "\1\u02f4",
+            "",
+            "",
+            "\1\u02f5",
+            "\1\u02f6",
+            "\1\u02f7",
+            "\1\u02f8",
+            "\1\u02f9",
+            "\1\u02fa",
+            "\1\u02fb",
+            "\1\u02fc",
+            "\1\u02fd",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02ff",
+            "\1\u0300",
+            "\12\71\7\uffff\10\71\1\u0301\21\71\4\uffff\1\71\1\uffff\32"+
+            "\71",
+            "\1\u0303",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0305",
+            "\1\u0306",
+            "\1\u0307",
+            "\1\u0308",
+            "\1\u0309",
+            "\1\u030a",
+            "\1\u030b",
+            "",
+            "\1\u030c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u030e",
+            "",
+            "\1\u030f",
+            "",
+            "\1\u0310",
+            "\1\u0311",
+            "\1\u0312",
+            "\1\u0313",
+            "\1\u0314",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0317",
+            "",
+            "\1\u0318",
+            "\1\u0319",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u031b",
+            "\1\u031c",
+            "\1\u031d",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u031f",
+            "\1\u0320",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0323",
+            "\1\u0324",
+            "",
+            "\1\u0325",
+            "\1\u0326",
+            "",
+            "",
+            "\1\u0327",
+            "\1\u0328",
+            "\1\u0329",
+            "\1\u032a",
+            "\1\u032b",
+            "\1\u032c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u032e",
+            "\1\u032f",
+            "\1\u0330",
+            "",
+            "\1\u0331",
+            "\1\u0332",
+            "\1\u0333",
+            "\1\u0334",
+            "\1\u0335",
+            "\1\u0336",
+            "\1\u0337",
+            "\1\u0338",
+            "\1\u0339",
+            "\1\u033a",
+            "\1\u033b",
+            "\1\u033c",
+            "\1\u033d",
+            "\1\u033e",
+            "\1\u033f",
+            "\1\u0340",
+            "\1\u0341",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0343",
+            "\1\u0344",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            ""
+    };
+
+    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+    static final short[][] DFA12_transition;
+
+    static {
+        int numStates = DFA12_transitionS.length;
+        DFA12_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+        }
+    }
+
+    static class DFA12 extends DFA {
+
+        public DFA12(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 12;
+            this.eot = DFA12_eot;
+            this.eof = DFA12_eof;
+            this.min = DFA12_min;
+            this.max = DFA12_max;
+            this.accept = DFA12_accept;
+            this.special = DFA12_special;
+            this.transition = DFA12_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | 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_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=='p') ) {s = 5;}
+
+                        else if ( (LA12_0==':') ) {s = 6;}
+
+                        else if ( (LA12_0==',') ) {s = 7;}
+
+                        else if ( (LA12_0=='g') ) {s = 8;}
+
+                        else if ( (LA12_0=='a') ) {s = 9;}
+
+                        else if ( (LA12_0=='t') ) {s = 10;}
+
+                        else if ( (LA12_0=='s') ) {s = 11;}
+
+                        else if ( (LA12_0=='}') ) {s = 12;}
+
+                        else if ( (LA12_0=='T') ) {s = 13;}
+
+                        else if ( (LA12_0=='i') ) {s = 14;}
+
+                        else if ( (LA12_0=='=') ) {s = 15;}
+
+                        else if ( (LA12_0=='(') ) {s = 16;}
+
+                        else if ( (LA12_0==')') ) {s = 17;}
+
+                        else if ( (LA12_0=='o') ) {s = 18;}
+
+                        else if ( (LA12_0=='r') ) {s = 19;}
+
+                        else if ( (LA12_0=='w') ) {s = 20;}
+
+                        else if ( (LA12_0=='v') ) {s = 21;}
+
+                        else if ( (LA12_0=='d') ) {s = 22;}
+
+                        else if ( (LA12_0=='I') ) {s = 23;}
+
+                        else if ( (LA12_0=='S') ) {s = 24;}
+
+                        else if ( (LA12_0=='L') ) {s = 25;}
+
+                        else if ( (LA12_0=='c') ) {s = 26;}
+
+                        else if ( (LA12_0=='B') ) {s = 27;}
+
+                        else if ( (LA12_0=='e') ) {s = 28;}
+
+                        else if ( (LA12_0=='M') ) {s = 29;}
+
+                        else if ( (LA12_0=='n') ) {s = 30;}
+
+                        else if ( (LA12_0=='m') ) {s = 31;}
+
+                        else if ( (LA12_0=='-') ) {s = 32;}
+
+                        else if ( (LA12_0=='.') ) {s = 33;}
+
+                        else if ( (LA12_0=='E') ) {s = 34;}
+
+                        else if ( (LA12_0=='P') ) {s = 35;}
+
+                        else if ( (LA12_0=='O') ) {s = 36;}
+
+                        else if ( (LA12_0=='l') ) {s = 37;}
+
+                        else if ( (LA12_0=='W') ) {s = 38;}
+
+                        else if ( (LA12_0=='N') ) {s = 39;}
+
+                        else if ( (LA12_0=='R') ) {s = 40;}
+
+                        else if ( (LA12_0=='D') ) {s = 41;}
+
+                        else if ( (LA12_0=='!') ) {s = 42;}
+
+                        else if ( (LA12_0=='>') ) {s = 43;}
+
+                        else if ( (LA12_0=='<') ) {s = 44;}
+
+                        else if ( (LA12_0=='G') ) {s = 45;}
+
+                        else if ( (LA12_0=='^') ) {s = 46;}
+
+                        else if ( (LA12_0=='C'||LA12_0=='F'||LA12_0=='H'||(LA12_0>='J' && LA12_0<='K')||LA12_0=='Q'||(LA12_0>='U' && LA12_0<='V')||(LA12_0>='X' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='f'||LA12_0=='h'||(LA12_0>='j' && LA12_0<='k')||LA12_0=='q'||LA12_0=='u'||(LA12_0>='x' && LA12_0<='z')) ) {s = 47;}
+
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 48;}
+
+                        else if ( (LA12_0=='\"') ) {s = 49;}
+
+                        else if ( (LA12_0=='\'') ) {s = 50;}
+
+                        else if ( (LA12_0=='/') ) {s = 51;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 52;}
+
+                        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<='\uFFFF')) ) {s = 53;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA12_50 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_50>='\u0000' && LA12_50<='\uFFFF')) ) {s = 130;}
+
+                        else s = 53;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_49 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_49>='\u0000' && LA12_49<='\uFFFF')) ) {s = 130;}
+
+                        else s = 53;
+
+                        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/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..49915351ccd5134a846e69470b57fd4c13cdb92a
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLangParser.java
@@ -0,0 +1,9395 @@
+package edu.kit.ipd.descartes.mm.adaptation.sta.parser.antlr.internal; 
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStaLangParser extends AbstractInternalAntlrParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'AdaptationProcess'", "'[id:'", "']'", "'{'", "'parameters'", "':'", "','", "'goal'", "'actions'", "'tactics'", "'strategies'", "'}'", "'Tactic'", "'implementedPlan'", "'input'", "'='", "'('", "')'", "'output'", "'Action'", "'operation'", "'referredAdaptationPoint'", "'objective'", "'triggeringEvent'", "'weightingFunction'", "'type'", "'value'", "'description'", "'objectives'", "'ImportDeclaration'", "'StartAction'", "'StopAction'", "'LoopAction'", "'repeat'", "'counter'", "'BranchAction'", "'if'", "'context'", "'condition'", "'then'", "'else'", "'ActionReference'", "'refersTo'", "'ModelVariableConfigurationRange'", "'name'", "'minValue'", "'maxValue'", "'adaptableEntity'", "'ModelEntityConfigurationRange'", "'variationPossibility'", "'-'", "'.'", "'E'", "'e'", "'PropertyRange'", "'minValueConstraint'", "'maxValueConstraint'", "'SetOfConfigurations'", "'variants'", "'valueConstraint'", "'OclConstraint'", "'oclString'", "'specification'", "'tactic'", "'default'", "'current'", "'lastImpact'", "'weightingFunctionImplementation'", "'weightedMetrics'", "'Specification'", "'metricType'", "'relationalOperator'", "'EDate'", "'MetricValue'", "'measuredEntity'", "'WeightedMetric'", "'weight'", "'NOT_SET'", "'THIS'", "'LEAST_UTILIZED_FIRST'", "'MOST_UTILIZED_FIRST'", "'RANDOM'", "'ALL'", "'INCREASE'", "'DECREASE'", "'MIGRATE'", "'=='", "'!='", "'>'", "'>='", "'<'", "'<='", "'EQUAL'", "'NOT_EQUAL'", "'GREATER'", "'GREATER_EQUAL'", "'LESS'", "'LESS_EQUAL'"
+    };
+    public static final int RULE_ID=5;
+    public static final int T__29=29;
+    public static final int T__28=28;
+    public static final int T__27=27;
+    public static final int T__26=26;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int EOF=-1;
+    public static final int T__93=93;
+    public static final int T__19=19;
+    public static final int T__94=94;
+    public static final int T__91=91;
+    public static final int T__92=92;
+    public static final int T__16=16;
+    public static final int T__15=15;
+    public static final int T__90=90;
+    public static final int T__18=18;
+    public static final int T__17=17;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__99=99;
+    public static final int T__98=98;
+    public static final int T__97=97;
+    public static final int T__96=96;
+    public static final int T__95=95;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__85=85;
+    public static final int T__84=84;
+    public static final int T__87=87;
+    public static final int T__86=86;
+    public static final int T__89=89;
+    public static final int T__88=88;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int RULE_STRING=4;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int T__70=70;
+    public static final int T__76=76;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__65=65;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__107=107;
+    public static final int T__108=108;
+    public static final int T__103=103;
+    public static final int T__59=59;
+    public static final int T__104=104;
+    public static final int T__105=105;
+    public static final int T__106=106;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__102=102;
+    public static final int T__101=101;
+    public static final int T__100=100;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int RULE_WS=9;
+
+    // delegates
+    // delegators
+
+
+        public InternalStaLangParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalStaLangParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalStaLangParser.tokenNames; }
+    public String getGrammarFileName() { return "../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g"; }
+
+
+
+     	private StaLangGrammarAccess grammarAccess;
+     	
+        public InternalStaLangParser(TokenStream input, StaLangGrammarAccess grammarAccess) {
+            this(input);
+            this.grammarAccess = grammarAccess;
+            registerRules(grammarAccess.getGrammar());
+        }
+        
+        @Override
+        protected String getFirstRuleName() {
+        	return "AdaptationProcess";	
+       	}
+       	
+       	@Override
+       	protected StaLangGrammarAccess getGrammarAccess() {
+       		return grammarAccess;
+       	}
+
+
+
+    // $ANTLR start "entryRuleAdaptationProcess"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:68:1: entryRuleAdaptationProcess returns [EObject current=null] : iv_ruleAdaptationProcess= ruleAdaptationProcess EOF ;
+    public final EObject entryRuleAdaptationProcess() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleAdaptationProcess = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:69:2: (iv_ruleAdaptationProcess= ruleAdaptationProcess EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:70:2: iv_ruleAdaptationProcess= ruleAdaptationProcess EOF
+            {
+             newCompositeNode(grammarAccess.getAdaptationProcessRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationProcess_in_entryRuleAdaptationProcess75);
+            iv_ruleAdaptationProcess=ruleAdaptationProcess();
+
+            state._fsp--;
+
+             current =iv_ruleAdaptationProcess; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAdaptationProcess85); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleAdaptationProcess"
+
+
+    // $ANTLR start "ruleAdaptationProcess"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:77:1: ruleAdaptationProcess returns [EObject current=null] : ( ( (lv_importDeclaration_0_0= ruleImportDeclaration ) )* otherlv_1= 'AdaptationProcess' ( (lv_name_2_0= ruleEString ) ) (otherlv_3= '[id:' ( (lv_id_4_0= ruleEString ) ) otherlv_5= ']' )? otherlv_6= '{' (otherlv_7= 'parameters' otherlv_8= ':' ( (lv_parameters_9_0= ruleParameter ) ) (otherlv_10= ',' ( (lv_parameters_11_0= ruleParameter ) ) )* )? otherlv_12= 'goal' otherlv_13= ':' ( (lv_goal_14_0= ruleOverallGoal ) ) otherlv_15= 'actions' otherlv_16= ':' ( (lv_actions_17_0= ruleAction ) ) (otherlv_18= ',' ( (lv_actions_19_0= ruleAction ) ) )* otherlv_20= 'tactics' otherlv_21= ':' ( (lv_tactics_22_0= ruleTactic ) ) (otherlv_23= ',' ( (lv_tactics_24_0= ruleTactic ) ) )* otherlv_25= 'strategies' otherlv_26= ':' ( (lv_strategies_27_0= ruleStrategy ) ) (otherlv_28= ',' ( (lv_strategies_29_0= ruleStrategy ) ) )* otherlv_30= '}' ) ;
+    public final EObject ruleAdaptationProcess() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token otherlv_15=null;
+        Token otherlv_16=null;
+        Token otherlv_18=null;
+        Token otherlv_20=null;
+        Token otherlv_21=null;
+        Token otherlv_23=null;
+        Token otherlv_25=null;
+        Token otherlv_26=null;
+        Token otherlv_28=null;
+        Token otherlv_30=null;
+        EObject lv_importDeclaration_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_4_0 = null;
+
+        EObject lv_parameters_9_0 = null;
+
+        EObject lv_parameters_11_0 = null;
+
+        EObject lv_goal_14_0 = null;
+
+        EObject lv_actions_17_0 = null;
+
+        EObject lv_actions_19_0 = null;
+
+        EObject lv_tactics_22_0 = null;
+
+        EObject lv_tactics_24_0 = null;
+
+        EObject lv_strategies_27_0 = null;
+
+        EObject lv_strategies_29_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:80:28: ( ( ( (lv_importDeclaration_0_0= ruleImportDeclaration ) )* otherlv_1= 'AdaptationProcess' ( (lv_name_2_0= ruleEString ) ) (otherlv_3= '[id:' ( (lv_id_4_0= ruleEString ) ) otherlv_5= ']' )? otherlv_6= '{' (otherlv_7= 'parameters' otherlv_8= ':' ( (lv_parameters_9_0= ruleParameter ) ) (otherlv_10= ',' ( (lv_parameters_11_0= ruleParameter ) ) )* )? otherlv_12= 'goal' otherlv_13= ':' ( (lv_goal_14_0= ruleOverallGoal ) ) otherlv_15= 'actions' otherlv_16= ':' ( (lv_actions_17_0= ruleAction ) ) (otherlv_18= ',' ( (lv_actions_19_0= ruleAction ) ) )* otherlv_20= 'tactics' otherlv_21= ':' ( (lv_tactics_22_0= ruleTactic ) ) (otherlv_23= ',' ( (lv_tactics_24_0= ruleTactic ) ) )* otherlv_25= 'strategies' otherlv_26= ':' ( (lv_strategies_27_0= ruleStrategy ) ) (otherlv_28= ',' ( (lv_strategies_29_0= ruleStrategy ) ) )* otherlv_30= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:81:1: ( ( (lv_importDeclaration_0_0= ruleImportDeclaration ) )* otherlv_1= 'AdaptationProcess' ( (lv_name_2_0= ruleEString ) ) (otherlv_3= '[id:' ( (lv_id_4_0= ruleEString ) ) otherlv_5= ']' )? otherlv_6= '{' (otherlv_7= 'parameters' otherlv_8= ':' ( (lv_parameters_9_0= ruleParameter ) ) (otherlv_10= ',' ( (lv_parameters_11_0= ruleParameter ) ) )* )? otherlv_12= 'goal' otherlv_13= ':' ( (lv_goal_14_0= ruleOverallGoal ) ) otherlv_15= 'actions' otherlv_16= ':' ( (lv_actions_17_0= ruleAction ) ) (otherlv_18= ',' ( (lv_actions_19_0= ruleAction ) ) )* otherlv_20= 'tactics' otherlv_21= ':' ( (lv_tactics_22_0= ruleTactic ) ) (otherlv_23= ',' ( (lv_tactics_24_0= ruleTactic ) ) )* otherlv_25= 'strategies' otherlv_26= ':' ( (lv_strategies_27_0= ruleStrategy ) ) (otherlv_28= ',' ( (lv_strategies_29_0= ruleStrategy ) ) )* otherlv_30= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:81:1: ( ( (lv_importDeclaration_0_0= ruleImportDeclaration ) )* otherlv_1= 'AdaptationProcess' ( (lv_name_2_0= ruleEString ) ) (otherlv_3= '[id:' ( (lv_id_4_0= ruleEString ) ) otherlv_5= ']' )? otherlv_6= '{' (otherlv_7= 'parameters' otherlv_8= ':' ( (lv_parameters_9_0= ruleParameter ) ) (otherlv_10= ',' ( (lv_parameters_11_0= ruleParameter ) ) )* )? otherlv_12= 'goal' otherlv_13= ':' ( (lv_goal_14_0= ruleOverallGoal ) ) otherlv_15= 'actions' otherlv_16= ':' ( (lv_actions_17_0= ruleAction ) ) (otherlv_18= ',' ( (lv_actions_19_0= ruleAction ) ) )* otherlv_20= 'tactics' otherlv_21= ':' ( (lv_tactics_22_0= ruleTactic ) ) (otherlv_23= ',' ( (lv_tactics_24_0= ruleTactic ) ) )* otherlv_25= 'strategies' otherlv_26= ':' ( (lv_strategies_27_0= ruleStrategy ) ) (otherlv_28= ',' ( (lv_strategies_29_0= ruleStrategy ) ) )* otherlv_30= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:81:2: ( (lv_importDeclaration_0_0= ruleImportDeclaration ) )* otherlv_1= 'AdaptationProcess' ( (lv_name_2_0= ruleEString ) ) (otherlv_3= '[id:' ( (lv_id_4_0= ruleEString ) ) otherlv_5= ']' )? otherlv_6= '{' (otherlv_7= 'parameters' otherlv_8= ':' ( (lv_parameters_9_0= ruleParameter ) ) (otherlv_10= ',' ( (lv_parameters_11_0= ruleParameter ) ) )* )? otherlv_12= 'goal' otherlv_13= ':' ( (lv_goal_14_0= ruleOverallGoal ) ) otherlv_15= 'actions' otherlv_16= ':' ( (lv_actions_17_0= ruleAction ) ) (otherlv_18= ',' ( (lv_actions_19_0= ruleAction ) ) )* otherlv_20= 'tactics' otherlv_21= ':' ( (lv_tactics_22_0= ruleTactic ) ) (otherlv_23= ',' ( (lv_tactics_24_0= ruleTactic ) ) )* otherlv_25= 'strategies' otherlv_26= ':' ( (lv_strategies_27_0= ruleStrategy ) ) (otherlv_28= ',' ( (lv_strategies_29_0= ruleStrategy ) ) )* otherlv_30= '}'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:81:2: ( (lv_importDeclaration_0_0= ruleImportDeclaration ) )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==40) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:82:1: (lv_importDeclaration_0_0= ruleImportDeclaration )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:82:1: (lv_importDeclaration_0_0= ruleImportDeclaration )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:83:3: lv_importDeclaration_0_0= ruleImportDeclaration
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getImportDeclarationImportDeclarationParserRuleCall_0_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleImportDeclaration_in_ruleAdaptationProcess131);
+            	    lv_importDeclaration_0_0=ruleImportDeclaration();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"importDeclaration",
+            	            		lv_importDeclaration_0_0, 
+            	            		"ImportDeclaration");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+            otherlv_1=(Token)match(input,11,FollowSets000.FOLLOW_11_in_ruleAdaptationProcess144); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getAdaptationProcessAccess().getAdaptationProcessKeyword_1());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:103:1: ( (lv_name_2_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:104:1: (lv_name_2_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:104:1: (lv_name_2_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:105:3: lv_name_2_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getNameEStringParserRuleCall_2_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAdaptationProcess165);
+            lv_name_2_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_2_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:121:2: (otherlv_3= '[id:' ( (lv_id_4_0= ruleEString ) ) otherlv_5= ']' )?
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+
+            if ( (LA2_0==12) ) {
+                alt2=1;
+            }
+            switch (alt2) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:121:4: otherlv_3= '[id:' ( (lv_id_4_0= ruleEString ) ) otherlv_5= ']'
+                    {
+                    otherlv_3=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleAdaptationProcess178); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getAdaptationProcessAccess().getIdKeyword_3_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:125:1: ( (lv_id_4_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:126:1: (lv_id_4_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:126:1: (lv_id_4_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:127:3: lv_id_4_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getIdEStringParserRuleCall_3_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAdaptationProcess199);
+                    lv_id_4_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_4_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_5=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleAdaptationProcess211); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getAdaptationProcessAccess().getRightSquareBracketKeyword_3_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_6=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleAdaptationProcess225); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getAdaptationProcessAccess().getLeftCurlyBracketKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:151:1: (otherlv_7= 'parameters' otherlv_8= ':' ( (lv_parameters_9_0= ruleParameter ) ) (otherlv_10= ',' ( (lv_parameters_11_0= ruleParameter ) ) )* )?
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==15) ) {
+                alt4=1;
+            }
+            switch (alt4) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:151:3: otherlv_7= 'parameters' otherlv_8= ':' ( (lv_parameters_9_0= ruleParameter ) ) (otherlv_10= ',' ( (lv_parameters_11_0= ruleParameter ) ) )*
+                    {
+                    otherlv_7=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleAdaptationProcess238); 
+
+                        	newLeafNode(otherlv_7, grammarAccess.getAdaptationProcessAccess().getParametersKeyword_5_0());
+                        
+                    otherlv_8=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleAdaptationProcess250); 
+
+                        	newLeafNode(otherlv_8, grammarAccess.getAdaptationProcessAccess().getColonKeyword_5_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:159:1: ( (lv_parameters_9_0= ruleParameter ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:160:1: (lv_parameters_9_0= ruleParameter )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:160:1: (lv_parameters_9_0= ruleParameter )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:161:3: lv_parameters_9_0= ruleParameter
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleParameter_in_ruleAdaptationProcess271);
+                    lv_parameters_9_0=ruleParameter();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"parameters",
+                            		lv_parameters_9_0, 
+                            		"Parameter");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:177:2: (otherlv_10= ',' ( (lv_parameters_11_0= ruleParameter ) ) )*
+                    loop3:
+                    do {
+                        int alt3=2;
+                        int LA3_0 = input.LA(1);
+
+                        if ( (LA3_0==17) ) {
+                            alt3=1;
+                        }
+
+
+                        switch (alt3) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:177:4: otherlv_10= ',' ( (lv_parameters_11_0= ruleParameter ) )
+                    	    {
+                    	    otherlv_10=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleAdaptationProcess284); 
+
+                    	        	newLeafNode(otherlv_10, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_5_3_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:181:1: ( (lv_parameters_11_0= ruleParameter ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:182:1: (lv_parameters_11_0= ruleParameter )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:182:1: (lv_parameters_11_0= ruleParameter )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:183:3: lv_parameters_11_0= ruleParameter
+                    	    {
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getParametersParameterParserRuleCall_5_3_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleParameter_in_ruleAdaptationProcess305);
+                    	    lv_parameters_11_0=ruleParameter();
+
+                    	    state._fsp--;
+
+
+                    	    	        if (current==null) {
+                    	    	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+                    	    	        }
+                    	           		add(
+                    	           			current, 
+                    	           			"parameters",
+                    	            		lv_parameters_11_0, 
+                    	            		"Parameter");
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop3;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_12=(Token)match(input,18,FollowSets000.FOLLOW_18_in_ruleAdaptationProcess321); 
+
+                	newLeafNode(otherlv_12, grammarAccess.getAdaptationProcessAccess().getGoalKeyword_6());
+                
+            otherlv_13=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleAdaptationProcess333); 
+
+                	newLeafNode(otherlv_13, grammarAccess.getAdaptationProcessAccess().getColonKeyword_7());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:207:1: ( (lv_goal_14_0= ruleOverallGoal ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:208:1: (lv_goal_14_0= ruleOverallGoal )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:208:1: (lv_goal_14_0= ruleOverallGoal )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:209:3: lv_goal_14_0= ruleOverallGoal
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getGoalOverallGoalParserRuleCall_8_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleOverallGoal_in_ruleAdaptationProcess354);
+            lv_goal_14_0=ruleOverallGoal();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"goal",
+                    		lv_goal_14_0, 
+                    		"OverallGoal");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_15=(Token)match(input,19,FollowSets000.FOLLOW_19_in_ruleAdaptationProcess366); 
+
+                	newLeafNode(otherlv_15, grammarAccess.getAdaptationProcessAccess().getActionsKeyword_9());
+                
+            otherlv_16=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleAdaptationProcess378); 
+
+                	newLeafNode(otherlv_16, grammarAccess.getAdaptationProcessAccess().getColonKeyword_10());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:233:1: ( (lv_actions_17_0= ruleAction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:234:1: (lv_actions_17_0= ruleAction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:234:1: (lv_actions_17_0= ruleAction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:235:3: lv_actions_17_0= ruleAction
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_11_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAction_in_ruleAdaptationProcess399);
+            lv_actions_17_0=ruleAction();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"actions",
+                    		lv_actions_17_0, 
+                    		"Action");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:251:2: (otherlv_18= ',' ( (lv_actions_19_0= ruleAction ) ) )*
+            loop5:
+            do {
+                int alt5=2;
+                int LA5_0 = input.LA(1);
+
+                if ( (LA5_0==17) ) {
+                    alt5=1;
+                }
+
+
+                switch (alt5) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:251:4: otherlv_18= ',' ( (lv_actions_19_0= ruleAction ) )
+            	    {
+            	    otherlv_18=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleAdaptationProcess412); 
+
+            	        	newLeafNode(otherlv_18, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_12_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:255:1: ( (lv_actions_19_0= ruleAction ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:256:1: (lv_actions_19_0= ruleAction )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:256:1: (lv_actions_19_0= ruleAction )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:257:3: lv_actions_19_0= ruleAction
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getActionsActionParserRuleCall_12_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleAction_in_ruleAdaptationProcess433);
+            	    lv_actions_19_0=ruleAction();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"actions",
+            	            		lv_actions_19_0, 
+            	            		"Action");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop5;
+                }
+            } while (true);
+
+            otherlv_20=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleAdaptationProcess447); 
+
+                	newLeafNode(otherlv_20, grammarAccess.getAdaptationProcessAccess().getTacticsKeyword_13());
+                
+            otherlv_21=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleAdaptationProcess459); 
+
+                	newLeafNode(otherlv_21, grammarAccess.getAdaptationProcessAccess().getColonKeyword_14());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:281:1: ( (lv_tactics_22_0= ruleTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:282:1: (lv_tactics_22_0= ruleTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:282:1: (lv_tactics_22_0= ruleTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:283:3: lv_tactics_22_0= ruleTactic
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_15_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleTactic_in_ruleAdaptationProcess480);
+            lv_tactics_22_0=ruleTactic();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"tactics",
+                    		lv_tactics_22_0, 
+                    		"Tactic");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:299:2: (otherlv_23= ',' ( (lv_tactics_24_0= ruleTactic ) ) )*
+            loop6:
+            do {
+                int alt6=2;
+                int LA6_0 = input.LA(1);
+
+                if ( (LA6_0==17) ) {
+                    alt6=1;
+                }
+
+
+                switch (alt6) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:299:4: otherlv_23= ',' ( (lv_tactics_24_0= ruleTactic ) )
+            	    {
+            	    otherlv_23=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleAdaptationProcess493); 
+
+            	        	newLeafNode(otherlv_23, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_16_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:303:1: ( (lv_tactics_24_0= ruleTactic ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:304:1: (lv_tactics_24_0= ruleTactic )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:304:1: (lv_tactics_24_0= ruleTactic )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:305:3: lv_tactics_24_0= ruleTactic
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getTacticsTacticParserRuleCall_16_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleTactic_in_ruleAdaptationProcess514);
+            	    lv_tactics_24_0=ruleTactic();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"tactics",
+            	            		lv_tactics_24_0, 
+            	            		"Tactic");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop6;
+                }
+            } while (true);
+
+            otherlv_25=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleAdaptationProcess528); 
+
+                	newLeafNode(otherlv_25, grammarAccess.getAdaptationProcessAccess().getStrategiesKeyword_17());
+                
+            otherlv_26=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleAdaptationProcess540); 
+
+                	newLeafNode(otherlv_26, grammarAccess.getAdaptationProcessAccess().getColonKeyword_18());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:329:1: ( (lv_strategies_27_0= ruleStrategy ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:330:1: (lv_strategies_27_0= ruleStrategy )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:330:1: (lv_strategies_27_0= ruleStrategy )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:331:3: lv_strategies_27_0= ruleStrategy
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_19_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleStrategy_in_ruleAdaptationProcess561);
+            lv_strategies_27_0=ruleStrategy();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"strategies",
+                    		lv_strategies_27_0, 
+                    		"Strategy");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:347:2: (otherlv_28= ',' ( (lv_strategies_29_0= ruleStrategy ) ) )*
+            loop7:
+            do {
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+
+                if ( (LA7_0==17) ) {
+                    alt7=1;
+                }
+
+
+                switch (alt7) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:347:4: otherlv_28= ',' ( (lv_strategies_29_0= ruleStrategy ) )
+            	    {
+            	    otherlv_28=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleAdaptationProcess574); 
+
+            	        	newLeafNode(otherlv_28, grammarAccess.getAdaptationProcessAccess().getCommaKeyword_20_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:351:1: ( (lv_strategies_29_0= ruleStrategy ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:352:1: (lv_strategies_29_0= ruleStrategy )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:352:1: (lv_strategies_29_0= ruleStrategy )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:353:3: lv_strategies_29_0= ruleStrategy
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getAdaptationProcessAccess().getStrategiesStrategyParserRuleCall_20_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleStrategy_in_ruleAdaptationProcess595);
+            	    lv_strategies_29_0=ruleStrategy();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getAdaptationProcessRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"strategies",
+            	            		lv_strategies_29_0, 
+            	            		"Strategy");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop7;
+                }
+            } while (true);
+
+            otherlv_30=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleAdaptationProcess609); 
+
+                	newLeafNode(otherlv_30, grammarAccess.getAdaptationProcessAccess().getRightCurlyBracketKeyword_21());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAdaptationProcess"
+
+
+    // $ANTLR start "entryRuleAbstractControlFlowElement"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:383:1: entryRuleAbstractControlFlowElement returns [EObject current=null] : iv_ruleAbstractControlFlowElement= ruleAbstractControlFlowElement EOF ;
+    public final EObject entryRuleAbstractControlFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleAbstractControlFlowElement = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:384:2: (iv_ruleAbstractControlFlowElement= ruleAbstractControlFlowElement EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:385:2: iv_ruleAbstractControlFlowElement= ruleAbstractControlFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getAbstractControlFlowElementRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAbstractControlFlowElement_in_entryRuleAbstractControlFlowElement647);
+            iv_ruleAbstractControlFlowElement=ruleAbstractControlFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleAbstractControlFlowElement; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAbstractControlFlowElement657); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleAbstractControlFlowElement"
+
+
+    // $ANTLR start "ruleAbstractControlFlowElement"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:392:1: ruleAbstractControlFlowElement returns [EObject current=null] : (this_StartAction_0= ruleStartAction | this_StopAction_1= ruleStopAction | this_LoopAction_2= ruleLoopAction | this_BranchAction_3= ruleBranchAction | this_ActionReference_4= ruleActionReference ) ;
+    public final EObject ruleAbstractControlFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_StartAction_0 = null;
+
+        EObject this_StopAction_1 = null;
+
+        EObject this_LoopAction_2 = null;
+
+        EObject this_BranchAction_3 = null;
+
+        EObject this_ActionReference_4 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:395:28: ( (this_StartAction_0= ruleStartAction | this_StopAction_1= ruleStopAction | this_LoopAction_2= ruleLoopAction | this_BranchAction_3= ruleBranchAction | this_ActionReference_4= ruleActionReference ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:396:1: (this_StartAction_0= ruleStartAction | this_StopAction_1= ruleStopAction | this_LoopAction_2= ruleLoopAction | this_BranchAction_3= ruleBranchAction | this_ActionReference_4= ruleActionReference )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:396:1: (this_StartAction_0= ruleStartAction | this_StopAction_1= ruleStopAction | this_LoopAction_2= ruleLoopAction | this_BranchAction_3= ruleBranchAction | this_ActionReference_4= ruleActionReference )
+            int alt8=5;
+            alt8 = dfa8.predict(input);
+            switch (alt8) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:397:5: this_StartAction_0= ruleStartAction
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getStartActionParserRuleCall_0()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleStartAction_in_ruleAbstractControlFlowElement704);
+                    this_StartAction_0=ruleStartAction();
+
+                    state._fsp--;
+
+                     
+                            current = this_StartAction_0; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:407:5: this_StopAction_1= ruleStopAction
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getStopActionParserRuleCall_1()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleStopAction_in_ruleAbstractControlFlowElement731);
+                    this_StopAction_1=ruleStopAction();
+
+                    state._fsp--;
+
+                     
+                            current = this_StopAction_1; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:417:5: this_LoopAction_2= ruleLoopAction
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getLoopActionParserRuleCall_2()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleLoopAction_in_ruleAbstractControlFlowElement758);
+                    this_LoopAction_2=ruleLoopAction();
+
+                    state._fsp--;
+
+                     
+                            current = this_LoopAction_2; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:427:5: this_BranchAction_3= ruleBranchAction
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getBranchActionParserRuleCall_3()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleBranchAction_in_ruleAbstractControlFlowElement785);
+                    this_BranchAction_3=ruleBranchAction();
+
+                    state._fsp--;
+
+                     
+                            current = this_BranchAction_3; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 5 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:437:5: this_ActionReference_4= ruleActionReference
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleActionReference_in_ruleAbstractControlFlowElement812);
+                    this_ActionReference_4=ruleActionReference();
+
+                    state._fsp--;
+
+                     
+                            current = this_ActionReference_4; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAbstractControlFlowElement"
+
+
+    // $ANTLR start "entryRuleVariationType"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:453:1: entryRuleVariationType returns [EObject current=null] : iv_ruleVariationType= ruleVariationType EOF ;
+    public final EObject entryRuleVariationType() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleVariationType = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:454:2: (iv_ruleVariationType= ruleVariationType EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:455:2: iv_ruleVariationType= ruleVariationType EOF
+            {
+             newCompositeNode(grammarAccess.getVariationTypeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleVariationType_in_entryRuleVariationType847);
+            iv_ruleVariationType=ruleVariationType();
+
+            state._fsp--;
+
+             current =iv_ruleVariationType; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleVariationType857); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleVariationType"
+
+
+    // $ANTLR start "ruleVariationType"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:462:1: ruleVariationType returns [EObject current=null] : (this_PropertyRange_0= rulePropertyRange | this_SetOfConfigurations_1= ruleSetOfConfigurations ) ;
+    public final EObject ruleVariationType() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_PropertyRange_0 = null;
+
+        EObject this_SetOfConfigurations_1 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:465:28: ( (this_PropertyRange_0= rulePropertyRange | this_SetOfConfigurations_1= ruleSetOfConfigurations ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:466:1: (this_PropertyRange_0= rulePropertyRange | this_SetOfConfigurations_1= ruleSetOfConfigurations )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:466:1: (this_PropertyRange_0= rulePropertyRange | this_SetOfConfigurations_1= ruleSetOfConfigurations )
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0==65) ) {
+                alt9=1;
+            }
+            else if ( (LA9_0==68) ) {
+                alt9=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 9, 0, input);
+
+                throw nvae;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:467:5: this_PropertyRange_0= rulePropertyRange
+                    {
+                     
+                            newCompositeNode(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_rulePropertyRange_in_ruleVariationType904);
+                    this_PropertyRange_0=rulePropertyRange();
+
+                    state._fsp--;
+
+                     
+                            current = this_PropertyRange_0; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:477:5: this_SetOfConfigurations_1= ruleSetOfConfigurations
+                    {
+                     
+                            newCompositeNode(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleSetOfConfigurations_in_ruleVariationType931);
+                    this_SetOfConfigurations_1=ruleSetOfConfigurations();
+
+                    state._fsp--;
+
+                     
+                            current = this_SetOfConfigurations_1; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleVariationType"
+
+
+    // $ANTLR start "entryRuleEString"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:493:1: entryRuleEString returns [String current=null] : iv_ruleEString= ruleEString EOF ;
+    public final String entryRuleEString() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleEString = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:494:2: (iv_ruleEString= ruleEString EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:495:2: iv_ruleEString= ruleEString EOF
+            {
+             newCompositeNode(grammarAccess.getEStringRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_entryRuleEString967);
+            iv_ruleEString=ruleEString();
+
+            state._fsp--;
+
+             current =iv_ruleEString.getText(); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEString978); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleEString"
+
+
+    // $ANTLR start "ruleEString"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:502:1: ruleEString returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_STRING_0= RULE_STRING | this_ID_1= RULE_ID ) ;
+    public final AntlrDatatypeRuleToken ruleEString() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_STRING_0=null;
+        Token this_ID_1=null;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:505:28: ( (this_STRING_0= RULE_STRING | this_ID_1= RULE_ID ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:506:1: (this_STRING_0= RULE_STRING | this_ID_1= RULE_ID )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:506:1: (this_STRING_0= RULE_STRING | this_ID_1= RULE_ID )
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==RULE_STRING) ) {
+                alt10=1;
+            }
+            else if ( (LA10_0==RULE_ID) ) {
+                alt10=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 10, 0, input);
+
+                throw nvae;
+            }
+            switch (alt10) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:506:6: this_STRING_0= RULE_STRING
+                    {
+                    this_STRING_0=(Token)match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_ruleEString1018); 
+
+                    		current.merge(this_STRING_0);
+                        
+                     
+                        newLeafNode(this_STRING_0, grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); 
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:514:10: this_ID_1= RULE_ID
+                    {
+                    this_ID_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_ruleEString1044); 
+
+                    		current.merge(this_ID_1);
+                        
+                     
+                        newLeafNode(this_ID_1, grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleEString"
+
+
+    // $ANTLR start "entryRuleTactic"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:529:1: entryRuleTactic returns [EObject current=null] : iv_ruleTactic= ruleTactic EOF ;
+    public final EObject entryRuleTactic() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTactic = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:530:2: (iv_ruleTactic= ruleTactic EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:531:2: iv_ruleTactic= ruleTactic EOF
+            {
+             newCompositeNode(grammarAccess.getTacticRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleTactic_in_entryRuleTactic1089);
+            iv_ruleTactic=ruleTactic();
+
+            state._fsp--;
+
+             current =iv_ruleTactic; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleTactic1099); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTactic"
+
+
+    // $ANTLR start "ruleTactic"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:538:1: ruleTactic returns [EObject current=null] : ( (otherlv_0= 'Tactic' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'implementedPlan' ( (lv_implementedPlan_7_0= ruleAdaptationPlan ) ) (otherlv_8= 'input' otherlv_9= '=' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'output' otherlv_16= '=' ( ( ruleEString ) ) )? otherlv_18= '}' ) ;
+    public final EObject ruleTactic() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        Token otherlv_14=null;
+        Token otherlv_15=null;
+        Token otherlv_16=null;
+        Token otherlv_18=null;
+        AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_3_0 = null;
+
+        EObject lv_implementedPlan_7_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:541:28: ( ( (otherlv_0= 'Tactic' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'implementedPlan' ( (lv_implementedPlan_7_0= ruleAdaptationPlan ) ) (otherlv_8= 'input' otherlv_9= '=' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'output' otherlv_16= '=' ( ( ruleEString ) ) )? otherlv_18= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:542:1: ( (otherlv_0= 'Tactic' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'implementedPlan' ( (lv_implementedPlan_7_0= ruleAdaptationPlan ) ) (otherlv_8= 'input' otherlv_9= '=' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'output' otherlv_16= '=' ( ( ruleEString ) ) )? otherlv_18= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:542:1: ( (otherlv_0= 'Tactic' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'implementedPlan' ( (lv_implementedPlan_7_0= ruleAdaptationPlan ) ) (otherlv_8= 'input' otherlv_9= '=' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'output' otherlv_16= '=' ( ( ruleEString ) ) )? otherlv_18= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:542:2: (otherlv_0= 'Tactic' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'implementedPlan' ( (lv_implementedPlan_7_0= ruleAdaptationPlan ) ) (otherlv_8= 'input' otherlv_9= '=' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )? (otherlv_15= 'output' otherlv_16= '=' ( ( ruleEString ) ) )? otherlv_18= '}'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:542:2: (otherlv_0= 'Tactic' )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==23) ) {
+                alt11=1;
+            }
+            switch (alt11) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:542:4: otherlv_0= 'Tactic'
+                    {
+                    otherlv_0=(Token)match(input,23,FollowSets000.FOLLOW_23_in_ruleTactic1137); 
+
+                        	newLeafNode(otherlv_0, grammarAccess.getTacticAccess().getTacticKeyword_0());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:546:3: ( (lv_name_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:547:1: (lv_name_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:547:1: (lv_name_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:548:3: lv_name_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1160);
+            lv_name_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:564:2: (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0==12) ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:564:4: otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']'
+                    {
+                    otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleTactic1173); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getTacticAccess().getIdKeyword_2_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:568:1: ( (lv_id_3_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:569:1: (lv_id_3_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:569:1: (lv_id_3_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:570:3: lv_id_3_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_2_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1194);
+                    lv_id_3_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getTacticRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_3_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_4=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleTactic1206); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getTacticAccess().getRightSquareBracketKeyword_2_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleTactic1220); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_3());
+                
+            otherlv_6=(Token)match(input,24,FollowSets000.FOLLOW_24_in_ruleTactic1232); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getTacticAccess().getImplementedPlanKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:598:1: ( (lv_implementedPlan_7_0= ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:599:1: (lv_implementedPlan_7_0= ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:599:1: (lv_implementedPlan_7_0= ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:600:3: lv_implementedPlan_7_0= ruleAdaptationPlan
+            {
+             
+            	        newCompositeNode(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_ruleTactic1253);
+            lv_implementedPlan_7_0=ruleAdaptationPlan();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"implementedPlan",
+                    		lv_implementedPlan_7_0, 
+                    		"AdaptationPlan");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:616:2: (otherlv_8= 'input' otherlv_9= '=' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')' )?
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+
+            if ( (LA14_0==25) ) {
+                alt14=1;
+            }
+            switch (alt14) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:616:4: otherlv_8= 'input' otherlv_9= '=' otherlv_10= '(' ( ( ruleEString ) ) (otherlv_12= ',' ( ( ruleEString ) ) )* otherlv_14= ')'
+                    {
+                    otherlv_8=(Token)match(input,25,FollowSets000.FOLLOW_25_in_ruleTactic1266); 
+
+                        	newLeafNode(otherlv_8, grammarAccess.getTacticAccess().getInputKeyword_6_0());
+                        
+                    otherlv_9=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleTactic1278); 
+
+                        	newLeafNode(otherlv_9, grammarAccess.getTacticAccess().getEqualsSignKeyword_6_1());
+                        
+                    otherlv_10=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleTactic1290); 
+
+                        	newLeafNode(otherlv_10, grammarAccess.getTacticAccess().getLeftParenthesisKeyword_6_2());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:628:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:629:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:629:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:630:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getTacticRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_3_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1313);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:643:2: (otherlv_12= ',' ( ( ruleEString ) ) )*
+                    loop13:
+                    do {
+                        int alt13=2;
+                        int LA13_0 = input.LA(1);
+
+                        if ( (LA13_0==17) ) {
+                            alt13=1;
+                        }
+
+
+                        switch (alt13) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:643:4: otherlv_12= ',' ( ( ruleEString ) )
+                    	    {
+                    	    otherlv_12=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleTactic1326); 
+
+                    	        	newLeafNode(otherlv_12, grammarAccess.getTacticAccess().getCommaKeyword_6_4_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:647:1: ( ( ruleEString ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:648:1: ( ruleEString )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:648:1: ( ruleEString )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:649:3: ruleEString
+                    	    {
+
+                    	    			if (current==null) {
+                    	    	            current = createModelElement(grammarAccess.getTacticRule());
+                    	    	        }
+                    	            
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_6_4_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1349);
+                    	    ruleEString();
+
+                    	    state._fsp--;
+
+                    	     
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop13;
+                        }
+                    } while (true);
+
+                    otherlv_14=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleTactic1363); 
+
+                        	newLeafNode(otherlv_14, grammarAccess.getTacticAccess().getRightParenthesisKeyword_6_5());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:666:3: (otherlv_15= 'output' otherlv_16= '=' ( ( ruleEString ) ) )?
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==29) ) {
+                alt15=1;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:666:5: otherlv_15= 'output' otherlv_16= '=' ( ( ruleEString ) )
+                    {
+                    otherlv_15=(Token)match(input,29,FollowSets000.FOLLOW_29_in_ruleTactic1378); 
+
+                        	newLeafNode(otherlv_15, grammarAccess.getTacticAccess().getOutputKeyword_7_0());
+                        
+                    otherlv_16=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleTactic1390); 
+
+                        	newLeafNode(otherlv_16, grammarAccess.getTacticAccess().getEqualsSignKeyword_7_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:674:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:675:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:675:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:676:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getTacticRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_7_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1413);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_18=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleTactic1427); 
+
+                	newLeafNode(otherlv_18, grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_8());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTactic"
+
+
+    // $ANTLR start "entryRuleAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:701:1: entryRuleAction returns [EObject current=null] : iv_ruleAction= ruleAction EOF ;
+    public final EObject entryRuleAction() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleAction = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:702:2: (iv_ruleAction= ruleAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:703:2: iv_ruleAction= ruleAction EOF
+            {
+             newCompositeNode(grammarAccess.getActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAction_in_entryRuleAction1463);
+            iv_ruleAction=ruleAction();
+
+            state._fsp--;
+
+             current =iv_ruleAction; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAction1473); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleAction"
+
+
+    // $ANTLR start "ruleAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:710:1: ruleAction returns [EObject current=null] : ( (otherlv_0= 'Action' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'operation' otherlv_7= '=' ( (lv_adaptationActionOperation_8_0= ruleAdaptationActionOperation ) ) otherlv_9= 'referredAdaptationPoint' otherlv_10= '=' ( ( ruleEString ) ) (otherlv_12= 'input' otherlv_13= '=' otherlv_14= '(' ( ( ruleEString ) ) (otherlv_16= ',' ( ( ruleEString ) ) )* otherlv_18= ')' )? (otherlv_19= 'output' otherlv_20= '=' ( ( ruleEString ) ) )? otherlv_22= '}' ) ;
+    public final EObject ruleAction() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token otherlv_14=null;
+        Token otherlv_16=null;
+        Token otherlv_18=null;
+        Token otherlv_19=null;
+        Token otherlv_20=null;
+        Token otherlv_22=null;
+        AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_3_0 = null;
+
+        EObject lv_adaptationActionOperation_8_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:713:28: ( ( (otherlv_0= 'Action' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'operation' otherlv_7= '=' ( (lv_adaptationActionOperation_8_0= ruleAdaptationActionOperation ) ) otherlv_9= 'referredAdaptationPoint' otherlv_10= '=' ( ( ruleEString ) ) (otherlv_12= 'input' otherlv_13= '=' otherlv_14= '(' ( ( ruleEString ) ) (otherlv_16= ',' ( ( ruleEString ) ) )* otherlv_18= ')' )? (otherlv_19= 'output' otherlv_20= '=' ( ( ruleEString ) ) )? otherlv_22= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:714:1: ( (otherlv_0= 'Action' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'operation' otherlv_7= '=' ( (lv_adaptationActionOperation_8_0= ruleAdaptationActionOperation ) ) otherlv_9= 'referredAdaptationPoint' otherlv_10= '=' ( ( ruleEString ) ) (otherlv_12= 'input' otherlv_13= '=' otherlv_14= '(' ( ( ruleEString ) ) (otherlv_16= ',' ( ( ruleEString ) ) )* otherlv_18= ')' )? (otherlv_19= 'output' otherlv_20= '=' ( ( ruleEString ) ) )? otherlv_22= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:714:1: ( (otherlv_0= 'Action' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'operation' otherlv_7= '=' ( (lv_adaptationActionOperation_8_0= ruleAdaptationActionOperation ) ) otherlv_9= 'referredAdaptationPoint' otherlv_10= '=' ( ( ruleEString ) ) (otherlv_12= 'input' otherlv_13= '=' otherlv_14= '(' ( ( ruleEString ) ) (otherlv_16= ',' ( ( ruleEString ) ) )* otherlv_18= ')' )? (otherlv_19= 'output' otherlv_20= '=' ( ( ruleEString ) ) )? otherlv_22= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:714:2: (otherlv_0= 'Action' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'operation' otherlv_7= '=' ( (lv_adaptationActionOperation_8_0= ruleAdaptationActionOperation ) ) otherlv_9= 'referredAdaptationPoint' otherlv_10= '=' ( ( ruleEString ) ) (otherlv_12= 'input' otherlv_13= '=' otherlv_14= '(' ( ( ruleEString ) ) (otherlv_16= ',' ( ( ruleEString ) ) )* otherlv_18= ')' )? (otherlv_19= 'output' otherlv_20= '=' ( ( ruleEString ) ) )? otherlv_22= '}'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:714:2: (otherlv_0= 'Action' )?
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+
+            if ( (LA16_0==30) ) {
+                alt16=1;
+            }
+            switch (alt16) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:714:4: otherlv_0= 'Action'
+                    {
+                    otherlv_0=(Token)match(input,30,FollowSets000.FOLLOW_30_in_ruleAction1511); 
+
+                        	newLeafNode(otherlv_0, grammarAccess.getActionAccess().getActionKeyword_0());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:718:3: ( (lv_name_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:719:1: (lv_name_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:719:1: (lv_name_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:720:3: lv_name_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getActionAccess().getNameEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1534);
+            lv_name_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getActionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:736:2: (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )?
+            int alt17=2;
+            int LA17_0 = input.LA(1);
+
+            if ( (LA17_0==12) ) {
+                alt17=1;
+            }
+            switch (alt17) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:736:4: otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']'
+                    {
+                    otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleAction1547); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getActionAccess().getIdKeyword_2_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:740:1: ( (lv_id_3_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:741:1: (lv_id_3_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:741:1: (lv_id_3_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:742:3: lv_id_3_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1568);
+                    lv_id_3_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getActionRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_3_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_4=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleAction1580); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getActionAccess().getRightSquareBracketKeyword_2_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleAction1594); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_3());
+                
+            otherlv_6=(Token)match(input,31,FollowSets000.FOLLOW_31_in_ruleAction1606); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getActionAccess().getOperationKeyword_4());
+                
+            otherlv_7=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleAction1618); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getActionAccess().getEqualsSignKeyword_5());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:774:1: ( (lv_adaptationActionOperation_8_0= ruleAdaptationActionOperation ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:775:1: (lv_adaptationActionOperation_8_0= ruleAdaptationActionOperation )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:775:1: (lv_adaptationActionOperation_8_0= ruleAdaptationActionOperation )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:776:3: lv_adaptationActionOperation_8_0= ruleAdaptationActionOperation
+            {
+             
+            	        newCompositeNode(grammarAccess.getActionAccess().getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationActionOperation_in_ruleAction1639);
+            lv_adaptationActionOperation_8_0=ruleAdaptationActionOperation();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getActionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"adaptationActionOperation",
+                    		lv_adaptationActionOperation_8_0, 
+                    		"AdaptationActionOperation");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_9=(Token)match(input,32,FollowSets000.FOLLOW_32_in_ruleAction1651); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7());
+                
+            otherlv_10=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleAction1663); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getActionAccess().getEqualsSignKeyword_8());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:800:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:801:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:801:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:802:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getActionRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_9_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1686);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:815:2: (otherlv_12= 'input' otherlv_13= '=' otherlv_14= '(' ( ( ruleEString ) ) (otherlv_16= ',' ( ( ruleEString ) ) )* otherlv_18= ')' )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==25) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:815:4: otherlv_12= 'input' otherlv_13= '=' otherlv_14= '(' ( ( ruleEString ) ) (otherlv_16= ',' ( ( ruleEString ) ) )* otherlv_18= ')'
+                    {
+                    otherlv_12=(Token)match(input,25,FollowSets000.FOLLOW_25_in_ruleAction1699); 
+
+                        	newLeafNode(otherlv_12, grammarAccess.getActionAccess().getInputKeyword_10_0());
+                        
+                    otherlv_13=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleAction1711); 
+
+                        	newLeafNode(otherlv_13, grammarAccess.getActionAccess().getEqualsSignKeyword_10_1());
+                        
+                    otherlv_14=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleAction1723); 
+
+                        	newLeafNode(otherlv_14, grammarAccess.getActionAccess().getLeftParenthesisKeyword_10_2());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:827:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:828:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:828:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:829:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getActionRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_3_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1746);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:842:2: (otherlv_16= ',' ( ( ruleEString ) ) )*
+                    loop18:
+                    do {
+                        int alt18=2;
+                        int LA18_0 = input.LA(1);
+
+                        if ( (LA18_0==17) ) {
+                            alt18=1;
+                        }
+
+
+                        switch (alt18) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:842:4: otherlv_16= ',' ( ( ruleEString ) )
+                    	    {
+                    	    otherlv_16=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleAction1759); 
+
+                    	        	newLeafNode(otherlv_16, grammarAccess.getActionAccess().getCommaKeyword_10_4_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:846:1: ( ( ruleEString ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:847:1: ( ruleEString )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:847:1: ( ruleEString )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:848:3: ruleEString
+                    	    {
+
+                    	    			if (current==null) {
+                    	    	            current = createModelElement(grammarAccess.getActionRule());
+                    	    	        }
+                    	            
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_10_4_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1782);
+                    	    ruleEString();
+
+                    	    state._fsp--;
+
+                    	     
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop18;
+                        }
+                    } while (true);
+
+                    otherlv_18=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleAction1796); 
+
+                        	newLeafNode(otherlv_18, grammarAccess.getActionAccess().getRightParenthesisKeyword_10_5());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:865:3: (otherlv_19= 'output' otherlv_20= '=' ( ( ruleEString ) ) )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==29) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:865:5: otherlv_19= 'output' otherlv_20= '=' ( ( ruleEString ) )
+                    {
+                    otherlv_19=(Token)match(input,29,FollowSets000.FOLLOW_29_in_ruleAction1811); 
+
+                        	newLeafNode(otherlv_19, grammarAccess.getActionAccess().getOutputKeyword_11_0());
+                        
+                    otherlv_20=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleAction1823); 
+
+                        	newLeafNode(otherlv_20, grammarAccess.getActionAccess().getEqualsSignKeyword_11_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:873:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:874:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:874:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:875:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getActionRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_11_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1846);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_22=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleAction1860); 
+
+                	newLeafNode(otherlv_22, grammarAccess.getActionAccess().getRightCurlyBracketKeyword_12());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAction"
+
+
+    // $ANTLR start "entryRuleStrategy"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:900:1: entryRuleStrategy returns [EObject current=null] : iv_ruleStrategy= ruleStrategy EOF ;
+    public final EObject entryRuleStrategy() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStrategy = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:901:2: (iv_ruleStrategy= ruleStrategy EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:902:2: iv_ruleStrategy= ruleStrategy EOF
+            {
+             newCompositeNode(grammarAccess.getStrategyRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStrategy_in_entryRuleStrategy1896);
+            iv_ruleStrategy=ruleStrategy();
+
+            state._fsp--;
+
+             current =iv_ruleStrategy; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStrategy1906); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStrategy"
+
+
+    // $ANTLR start "ruleStrategy"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:909:1: ruleStrategy returns [EObject current=null] : ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'objective' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= 'triggeringEvent' otherlv_9= '=' ( (lv_triggeringEvents_10_0= ruleEvent ) ) otherlv_11= 'tactics' otherlv_12= '=' otherlv_13= '(' ( (lv_tactics_14_0= ruleWeightedTactic ) ) (otherlv_15= ',' ( (lv_tactics_16_0= ruleWeightedTactic ) ) )* otherlv_17= ')' (otherlv_18= 'weightingFunction' )? ( (lv_weightingFunction_19_0= ruleWeightingFunction ) ) otherlv_20= '}' ) ;
+    public final EObject ruleStrategy() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token otherlv_15=null;
+        Token otherlv_17=null;
+        Token otherlv_18=null;
+        Token otherlv_20=null;
+        AntlrDatatypeRuleToken lv_name_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+        EObject lv_triggeringEvents_10_0 = null;
+
+        EObject lv_tactics_14_0 = null;
+
+        EObject lv_tactics_16_0 = null;
+
+        EObject lv_weightingFunction_19_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:912:28: ( ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'objective' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= 'triggeringEvent' otherlv_9= '=' ( (lv_triggeringEvents_10_0= ruleEvent ) ) otherlv_11= 'tactics' otherlv_12= '=' otherlv_13= '(' ( (lv_tactics_14_0= ruleWeightedTactic ) ) (otherlv_15= ',' ( (lv_tactics_16_0= ruleWeightedTactic ) ) )* otherlv_17= ')' (otherlv_18= 'weightingFunction' )? ( (lv_weightingFunction_19_0= ruleWeightingFunction ) ) otherlv_20= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:913:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'objective' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= 'triggeringEvent' otherlv_9= '=' ( (lv_triggeringEvents_10_0= ruleEvent ) ) otherlv_11= 'tactics' otherlv_12= '=' otherlv_13= '(' ( (lv_tactics_14_0= ruleWeightedTactic ) ) (otherlv_15= ',' ( (lv_tactics_16_0= ruleWeightedTactic ) ) )* otherlv_17= ')' (otherlv_18= 'weightingFunction' )? ( (lv_weightingFunction_19_0= ruleWeightingFunction ) ) otherlv_20= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:913:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'objective' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= 'triggeringEvent' otherlv_9= '=' ( (lv_triggeringEvents_10_0= ruleEvent ) ) otherlv_11= 'tactics' otherlv_12= '=' otherlv_13= '(' ( (lv_tactics_14_0= ruleWeightedTactic ) ) (otherlv_15= ',' ( (lv_tactics_16_0= ruleWeightedTactic ) ) )* otherlv_17= ')' (otherlv_18= 'weightingFunction' )? ( (lv_weightingFunction_19_0= ruleWeightingFunction ) ) otherlv_20= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:913:2: ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'objective' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= 'triggeringEvent' otherlv_9= '=' ( (lv_triggeringEvents_10_0= ruleEvent ) ) otherlv_11= 'tactics' otherlv_12= '=' otherlv_13= '(' ( (lv_tactics_14_0= ruleWeightedTactic ) ) (otherlv_15= ',' ( (lv_tactics_16_0= ruleWeightedTactic ) ) )* otherlv_17= ')' (otherlv_18= 'weightingFunction' )? ( (lv_weightingFunction_19_0= ruleWeightingFunction ) ) otherlv_20= '}'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:913:2: ( (lv_name_0_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:914:1: (lv_name_0_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:914:1: (lv_name_0_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:915:3: lv_name_0_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_0_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStrategy1952);
+            lv_name_0_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_0_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:931:2: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==12) ) {
+                alt21=1;
+            }
+            switch (alt21) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:931:4: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStrategy1965); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getStrategyAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:935:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:936:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:936:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:937:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStrategy1986);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleStrategy1998); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getStrategyAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleStrategy2012); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_5=(Token)match(input,33,FollowSets000.FOLLOW_33_in_ruleStrategy2024); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getStrategyAccess().getObjectiveKeyword_3());
+                
+            otherlv_6=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleStrategy2036); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getStrategyAccess().getEqualsSignKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:969:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:970:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:970:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:971:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getStrategyRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStrategy2059);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,34,FollowSets000.FOLLOW_34_in_ruleStrategy2071); 
+
+                	newLeafNode(otherlv_8, grammarAccess.getStrategyAccess().getTriggeringEventKeyword_6());
+                
+            otherlv_9=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleStrategy2083); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getStrategyAccess().getEqualsSignKeyword_7());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:992:1: ( (lv_triggeringEvents_10_0= ruleEvent ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:993:1: (lv_triggeringEvents_10_0= ruleEvent )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:993:1: (lv_triggeringEvents_10_0= ruleEvent )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:994:3: lv_triggeringEvents_10_0= ruleEvent
+            {
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_8_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEvent_in_ruleStrategy2104);
+            lv_triggeringEvents_10_0=ruleEvent();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"triggeringEvents",
+                    		lv_triggeringEvents_10_0, 
+                    		"Event");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_11=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleStrategy2116); 
+
+                	newLeafNode(otherlv_11, grammarAccess.getStrategyAccess().getTacticsKeyword_9());
+                
+            otherlv_12=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleStrategy2128); 
+
+                	newLeafNode(otherlv_12, grammarAccess.getStrategyAccess().getEqualsSignKeyword_10());
+                
+            otherlv_13=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleStrategy2140); 
+
+                	newLeafNode(otherlv_13, grammarAccess.getStrategyAccess().getLeftParenthesisKeyword_11());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1022:1: ( (lv_tactics_14_0= ruleWeightedTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1023:1: (lv_tactics_14_0= ruleWeightedTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1023:1: (lv_tactics_14_0= ruleWeightedTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1024:3: lv_tactics_14_0= ruleWeightedTactic
+            {
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_12_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_ruleStrategy2161);
+            lv_tactics_14_0=ruleWeightedTactic();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"tactics",
+                    		lv_tactics_14_0, 
+                    		"WeightedTactic");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1040:2: (otherlv_15= ',' ( (lv_tactics_16_0= ruleWeightedTactic ) ) )*
+            loop22:
+            do {
+                int alt22=2;
+                int LA22_0 = input.LA(1);
+
+                if ( (LA22_0==17) ) {
+                    alt22=1;
+                }
+
+
+                switch (alt22) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1040:4: otherlv_15= ',' ( (lv_tactics_16_0= ruleWeightedTactic ) )
+            	    {
+            	    otherlv_15=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleStrategy2174); 
+
+            	        	newLeafNode(otherlv_15, grammarAccess.getStrategyAccess().getCommaKeyword_13_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1044:1: ( (lv_tactics_16_0= ruleWeightedTactic ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1045:1: (lv_tactics_16_0= ruleWeightedTactic )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1045:1: (lv_tactics_16_0= ruleWeightedTactic )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1046:3: lv_tactics_16_0= ruleWeightedTactic
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_13_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_ruleStrategy2195);
+            	    lv_tactics_16_0=ruleWeightedTactic();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"tactics",
+            	            		lv_tactics_16_0, 
+            	            		"WeightedTactic");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop22;
+                }
+            } while (true);
+
+            otherlv_17=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleStrategy2209); 
+
+                	newLeafNode(otherlv_17, grammarAccess.getStrategyAccess().getRightParenthesisKeyword_14());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1066:1: (otherlv_18= 'weightingFunction' )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==35) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1066:3: otherlv_18= 'weightingFunction'
+                    {
+                    otherlv_18=(Token)match(input,35,FollowSets000.FOLLOW_35_in_ruleStrategy2222); 
+
+                        	newLeafNode(otherlv_18, grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1070:3: ( (lv_weightingFunction_19_0= ruleWeightingFunction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1071:1: (lv_weightingFunction_19_0= ruleWeightingFunction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1071:1: (lv_weightingFunction_19_0= ruleWeightingFunction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1072:3: lv_weightingFunction_19_0= ruleWeightingFunction
+            {
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_16_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleWeightingFunction_in_ruleStrategy2245);
+            lv_weightingFunction_19_0=ruleWeightingFunction();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"weightingFunction",
+                    		lv_weightingFunction_19_0, 
+                    		"WeightingFunction");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_20=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleStrategy2257); 
+
+                	newLeafNode(otherlv_20, grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_17());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStrategy"
+
+
+    // $ANTLR start "entryRuleParameter"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1100:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ;
+    public final EObject entryRuleParameter() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleParameter = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1101:2: (iv_ruleParameter= ruleParameter EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1102:2: iv_ruleParameter= ruleParameter EOF
+            {
+             newCompositeNode(grammarAccess.getParameterRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleParameter_in_entryRuleParameter2293);
+            iv_ruleParameter=ruleParameter();
+
+            state._fsp--;
+
+             current =iv_ruleParameter; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleParameter2303); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleParameter"
+
+
+    // $ANTLR start "ruleParameter"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1109:1: ruleParameter returns [EObject current=null] : ( ( (lv_name_0_0= ruleEString ) ) otherlv_1= '{' (otherlv_2= 'type' otherlv_3= '=' )? ( (lv_type_4_0= ruleEString ) ) (otherlv_5= ',' (otherlv_6= 'value' otherlv_7= '=' )? ( (lv_value_8_0= ruleEString ) ) )? otherlv_9= '}' ) ;
+    public final EObject ruleParameter() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        AntlrDatatypeRuleToken lv_name_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_type_4_0 = null;
+
+        AntlrDatatypeRuleToken lv_value_8_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1112:28: ( ( ( (lv_name_0_0= ruleEString ) ) otherlv_1= '{' (otherlv_2= 'type' otherlv_3= '=' )? ( (lv_type_4_0= ruleEString ) ) (otherlv_5= ',' (otherlv_6= 'value' otherlv_7= '=' )? ( (lv_value_8_0= ruleEString ) ) )? otherlv_9= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1113:1: ( ( (lv_name_0_0= ruleEString ) ) otherlv_1= '{' (otherlv_2= 'type' otherlv_3= '=' )? ( (lv_type_4_0= ruleEString ) ) (otherlv_5= ',' (otherlv_6= 'value' otherlv_7= '=' )? ( (lv_value_8_0= ruleEString ) ) )? otherlv_9= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1113:1: ( ( (lv_name_0_0= ruleEString ) ) otherlv_1= '{' (otherlv_2= 'type' otherlv_3= '=' )? ( (lv_type_4_0= ruleEString ) ) (otherlv_5= ',' (otherlv_6= 'value' otherlv_7= '=' )? ( (lv_value_8_0= ruleEString ) ) )? otherlv_9= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1113:2: ( (lv_name_0_0= ruleEString ) ) otherlv_1= '{' (otherlv_2= 'type' otherlv_3= '=' )? ( (lv_type_4_0= ruleEString ) ) (otherlv_5= ',' (otherlv_6= 'value' otherlv_7= '=' )? ( (lv_value_8_0= ruleEString ) ) )? otherlv_9= '}'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1113:2: ( (lv_name_0_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1114:1: (lv_name_0_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1114:1: (lv_name_0_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1115:3: lv_name_0_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_0_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleParameter2349);
+            lv_name_0_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getParameterRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_0_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleParameter2361); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_1());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1135:1: (otherlv_2= 'type' otherlv_3= '=' )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==36) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1135:3: otherlv_2= 'type' otherlv_3= '='
+                    {
+                    otherlv_2=(Token)match(input,36,FollowSets000.FOLLOW_36_in_ruleParameter2374); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getParameterAccess().getTypeKeyword_2_0());
+                        
+                    otherlv_3=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleParameter2386); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1143:3: ( (lv_type_4_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1144:1: (lv_type_4_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1144:1: (lv_type_4_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1145:3: lv_type_4_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_3_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleParameter2409);
+            lv_type_4_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getParameterRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"type",
+                    		lv_type_4_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1161:2: (otherlv_5= ',' (otherlv_6= 'value' otherlv_7= '=' )? ( (lv_value_8_0= ruleEString ) ) )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
+
+            if ( (LA26_0==17) ) {
+                alt26=1;
+            }
+            switch (alt26) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1161:4: otherlv_5= ',' (otherlv_6= 'value' otherlv_7= '=' )? ( (lv_value_8_0= ruleEString ) )
+                    {
+                    otherlv_5=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleParameter2422); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getParameterAccess().getCommaKeyword_4_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1165:1: (otherlv_6= 'value' otherlv_7= '=' )?
+                    int alt25=2;
+                    int LA25_0 = input.LA(1);
+
+                    if ( (LA25_0==37) ) {
+                        alt25=1;
+                    }
+                    switch (alt25) {
+                        case 1 :
+                            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1165:3: otherlv_6= 'value' otherlv_7= '='
+                            {
+                            otherlv_6=(Token)match(input,37,FollowSets000.FOLLOW_37_in_ruleParameter2435); 
+
+                                	newLeafNode(otherlv_6, grammarAccess.getParameterAccess().getValueKeyword_4_1_0());
+                                
+                            otherlv_7=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleParameter2447); 
+
+                                	newLeafNode(otherlv_7, grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1());
+                                
+
+                            }
+                            break;
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1173:3: ( (lv_value_8_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1174:1: (lv_value_8_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1174:1: (lv_value_8_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1175:3: lv_value_8_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getParameterAccess().getValueEStringParserRuleCall_4_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleParameter2470);
+                    lv_value_8_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getParameterRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"value",
+                            		lv_value_8_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_9=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleParameter2484); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleParameter"
+
+
+    // $ANTLR start "entryRuleOverallGoal"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1203:1: entryRuleOverallGoal returns [EObject current=null] : iv_ruleOverallGoal= ruleOverallGoal EOF ;
+    public final EObject entryRuleOverallGoal() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleOverallGoal = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1204:2: (iv_ruleOverallGoal= ruleOverallGoal EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1205:2: iv_ruleOverallGoal= ruleOverallGoal EOF
+            {
+             newCompositeNode(grammarAccess.getOverallGoalRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleOverallGoal_in_entryRuleOverallGoal2520);
+            iv_ruleOverallGoal=ruleOverallGoal();
+
+            state._fsp--;
+
+             current =iv_ruleOverallGoal; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleOverallGoal2530); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOverallGoal"
+
+
+    // $ANTLR start "ruleOverallGoal"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1212:1: ruleOverallGoal returns [EObject current=null] : (otherlv_0= 'description' ( (lv_description_1_0= ruleEString ) ) otherlv_2= 'objectives' otherlv_3= '=' otherlv_4= '(' ( (lv_objectives_5_0= ruleObjective ) ) (otherlv_6= ',' ( (lv_objectives_7_0= ruleObjective ) ) )* otherlv_8= ')' ) ;
+    public final EObject ruleOverallGoal() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        AntlrDatatypeRuleToken lv_description_1_0 = null;
+
+        EObject lv_objectives_5_0 = null;
+
+        EObject lv_objectives_7_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1215:28: ( (otherlv_0= 'description' ( (lv_description_1_0= ruleEString ) ) otherlv_2= 'objectives' otherlv_3= '=' otherlv_4= '(' ( (lv_objectives_5_0= ruleObjective ) ) (otherlv_6= ',' ( (lv_objectives_7_0= ruleObjective ) ) )* otherlv_8= ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1216:1: (otherlv_0= 'description' ( (lv_description_1_0= ruleEString ) ) otherlv_2= 'objectives' otherlv_3= '=' otherlv_4= '(' ( (lv_objectives_5_0= ruleObjective ) ) (otherlv_6= ',' ( (lv_objectives_7_0= ruleObjective ) ) )* otherlv_8= ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1216:1: (otherlv_0= 'description' ( (lv_description_1_0= ruleEString ) ) otherlv_2= 'objectives' otherlv_3= '=' otherlv_4= '(' ( (lv_objectives_5_0= ruleObjective ) ) (otherlv_6= ',' ( (lv_objectives_7_0= ruleObjective ) ) )* otherlv_8= ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1216:3: otherlv_0= 'description' ( (lv_description_1_0= ruleEString ) ) otherlv_2= 'objectives' otherlv_3= '=' otherlv_4= '(' ( (lv_objectives_5_0= ruleObjective ) ) (otherlv_6= ',' ( (lv_objectives_7_0= ruleObjective ) ) )* otherlv_8= ')'
+            {
+            otherlv_0=(Token)match(input,38,FollowSets000.FOLLOW_38_in_ruleOverallGoal2567); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getOverallGoalAccess().getDescriptionKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1220:1: ( (lv_description_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1221:1: (lv_description_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1221:1: (lv_description_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1222:3: lv_description_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getOverallGoalAccess().getDescriptionEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleOverallGoal2588);
+            lv_description_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getOverallGoalRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"description",
+                    		lv_description_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,39,FollowSets000.FOLLOW_39_in_ruleOverallGoal2600); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getOverallGoalAccess().getObjectivesKeyword_2());
+                
+            otherlv_3=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleOverallGoal2612); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getOverallGoalAccess().getEqualsSignKeyword_3());
+                
+            otherlv_4=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleOverallGoal2624); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getOverallGoalAccess().getLeftParenthesisKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1250:1: ( (lv_objectives_5_0= ruleObjective ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1251:1: (lv_objectives_5_0= ruleObjective )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1251:1: (lv_objectives_5_0= ruleObjective )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1252:3: lv_objectives_5_0= ruleObjective
+            {
+             
+            	        newCompositeNode(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleObjective_in_ruleOverallGoal2645);
+            lv_objectives_5_0=ruleObjective();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getOverallGoalRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"objectives",
+                    		lv_objectives_5_0, 
+                    		"Objective");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1268:2: (otherlv_6= ',' ( (lv_objectives_7_0= ruleObjective ) ) )*
+            loop27:
+            do {
+                int alt27=2;
+                int LA27_0 = input.LA(1);
+
+                if ( (LA27_0==17) ) {
+                    alt27=1;
+                }
+
+
+                switch (alt27) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1268:4: otherlv_6= ',' ( (lv_objectives_7_0= ruleObjective ) )
+            	    {
+            	    otherlv_6=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleOverallGoal2658); 
+
+            	        	newLeafNode(otherlv_6, grammarAccess.getOverallGoalAccess().getCommaKeyword_6_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1272:1: ( (lv_objectives_7_0= ruleObjective ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1273:1: (lv_objectives_7_0= ruleObjective )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1273:1: (lv_objectives_7_0= ruleObjective )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1274:3: lv_objectives_7_0= ruleObjective
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getOverallGoalAccess().getObjectivesObjectiveParserRuleCall_6_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleObjective_in_ruleOverallGoal2679);
+            	    lv_objectives_7_0=ruleObjective();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getOverallGoalRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"objectives",
+            	            		lv_objectives_7_0, 
+            	            		"Objective");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop27;
+                }
+            } while (true);
+
+            otherlv_8=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleOverallGoal2693); 
+
+                	newLeafNode(otherlv_8, grammarAccess.getOverallGoalAccess().getRightParenthesisKeyword_7());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOverallGoal"
+
+
+    // $ANTLR start "entryRuleImportDeclaration"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1302:1: entryRuleImportDeclaration returns [EObject current=null] : iv_ruleImportDeclaration= ruleImportDeclaration EOF ;
+    public final EObject entryRuleImportDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleImportDeclaration = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1303:2: (iv_ruleImportDeclaration= ruleImportDeclaration EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1304:2: iv_ruleImportDeclaration= ruleImportDeclaration EOF
+            {
+             newCompositeNode(grammarAccess.getImportDeclarationRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleImportDeclaration_in_entryRuleImportDeclaration2729);
+            iv_ruleImportDeclaration=ruleImportDeclaration();
+
+            state._fsp--;
+
+             current =iv_ruleImportDeclaration; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleImportDeclaration2739); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleImportDeclaration"
+
+
+    // $ANTLR start "ruleImportDeclaration"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1311:1: ruleImportDeclaration returns [EObject current=null] : (otherlv_0= 'ImportDeclaration' ( (lv_importURI_1_0= ruleEString ) ) ) ;
+    public final EObject ruleImportDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        AntlrDatatypeRuleToken lv_importURI_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1314:28: ( (otherlv_0= 'ImportDeclaration' ( (lv_importURI_1_0= ruleEString ) ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1315:1: (otherlv_0= 'ImportDeclaration' ( (lv_importURI_1_0= ruleEString ) ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1315:1: (otherlv_0= 'ImportDeclaration' ( (lv_importURI_1_0= ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1315:3: otherlv_0= 'ImportDeclaration' ( (lv_importURI_1_0= ruleEString ) )
+            {
+            otherlv_0=(Token)match(input,40,FollowSets000.FOLLOW_40_in_ruleImportDeclaration2776); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getImportDeclarationAccess().getImportDeclarationKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1319:1: ( (lv_importURI_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1320:1: (lv_importURI_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1320:1: (lv_importURI_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1321:3: lv_importURI_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleImportDeclaration2797);
+            lv_importURI_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getImportDeclarationRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"importURI",
+                    		lv_importURI_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleImportDeclaration"
+
+
+    // $ANTLR start "entryRuleAdaptationPlan"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1345:1: entryRuleAdaptationPlan returns [EObject current=null] : iv_ruleAdaptationPlan= ruleAdaptationPlan EOF ;
+    public final EObject entryRuleAdaptationPlan() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleAdaptationPlan = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1346:2: (iv_ruleAdaptationPlan= ruleAdaptationPlan EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1347:2: iv_ruleAdaptationPlan= ruleAdaptationPlan EOF
+            {
+             newCompositeNode(grammarAccess.getAdaptationPlanRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_entryRuleAdaptationPlan2833);
+            iv_ruleAdaptationPlan=ruleAdaptationPlan();
+
+            state._fsp--;
+
+             current =iv_ruleAdaptationPlan; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAdaptationPlan2843); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleAdaptationPlan"
+
+
+    // $ANTLR start "ruleAdaptationPlan"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1354:1: ruleAdaptationPlan returns [EObject current=null] : ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' (otherlv_5= '(' ( (lv_steps_6_0= ruleAbstractControlFlowElement ) ) (otherlv_7= ',' ( (lv_steps_8_0= ruleAbstractControlFlowElement ) ) )* otherlv_9= ')' )? ) ;
+    public final EObject ruleAdaptationPlan() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        AntlrDatatypeRuleToken lv_name_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+        EObject lv_steps_6_0 = null;
+
+        EObject lv_steps_8_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1357:28: ( ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' (otherlv_5= '(' ( (lv_steps_6_0= ruleAbstractControlFlowElement ) ) (otherlv_7= ',' ( (lv_steps_8_0= ruleAbstractControlFlowElement ) ) )* otherlv_9= ')' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1358:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' (otherlv_5= '(' ( (lv_steps_6_0= ruleAbstractControlFlowElement ) ) (otherlv_7= ',' ( (lv_steps_8_0= ruleAbstractControlFlowElement ) ) )* otherlv_9= ')' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1358:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' (otherlv_5= '(' ( (lv_steps_6_0= ruleAbstractControlFlowElement ) ) (otherlv_7= ',' ( (lv_steps_8_0= ruleAbstractControlFlowElement ) ) )* otherlv_9= ')' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1358:2: ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' (otherlv_5= '(' ( (lv_steps_6_0= ruleAbstractControlFlowElement ) ) (otherlv_7= ',' ( (lv_steps_8_0= ruleAbstractControlFlowElement ) ) )* otherlv_9= ')' )?
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1358:2: ( (lv_name_0_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1359:1: (lv_name_0_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1359:1: (lv_name_0_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1360:3: lv_name_0_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_0_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAdaptationPlan2889);
+            lv_name_0_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_0_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1376:2: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==12) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1376:4: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleAdaptationPlan2902); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getAdaptationPlanAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1380:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1381:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1381:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1382:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAdaptationPlan2923);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleAdaptationPlan2935); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getAdaptationPlanAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleAdaptationPlan2949); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getAdaptationPlanAccess().getEqualsSignKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1406:1: (otherlv_5= '(' ( (lv_steps_6_0= ruleAbstractControlFlowElement ) ) (otherlv_7= ',' ( (lv_steps_8_0= ruleAbstractControlFlowElement ) ) )* otherlv_9= ')' )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
+
+            if ( (LA30_0==27) ) {
+                alt30=1;
+            }
+            switch (alt30) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1406:3: otherlv_5= '(' ( (lv_steps_6_0= ruleAbstractControlFlowElement ) ) (otherlv_7= ',' ( (lv_steps_8_0= ruleAbstractControlFlowElement ) ) )* otherlv_9= ')'
+                    {
+                    otherlv_5=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleAdaptationPlan2962); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getAdaptationPlanAccess().getLeftParenthesisKeyword_3_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1410:1: ( (lv_steps_6_0= ruleAbstractControlFlowElement ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1411:1: (lv_steps_6_0= ruleAbstractControlFlowElement )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1411:1: (lv_steps_6_0= ruleAbstractControlFlowElement )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1412:3: lv_steps_6_0= ruleAbstractControlFlowElement
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleAbstractControlFlowElement_in_ruleAdaptationPlan2983);
+                    lv_steps_6_0=ruleAbstractControlFlowElement();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"steps",
+                            		lv_steps_6_0, 
+                            		"AbstractControlFlowElement");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1428:2: (otherlv_7= ',' ( (lv_steps_8_0= ruleAbstractControlFlowElement ) ) )*
+                    loop29:
+                    do {
+                        int alt29=2;
+                        int LA29_0 = input.LA(1);
+
+                        if ( (LA29_0==17) ) {
+                            alt29=1;
+                        }
+
+
+                        switch (alt29) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1428:4: otherlv_7= ',' ( (lv_steps_8_0= ruleAbstractControlFlowElement ) )
+                    	    {
+                    	    otherlv_7=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleAdaptationPlan2996); 
+
+                    	        	newLeafNode(otherlv_7, grammarAccess.getAdaptationPlanAccess().getCommaKeyword_3_2_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1432:1: ( (lv_steps_8_0= ruleAbstractControlFlowElement ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1433:1: (lv_steps_8_0= ruleAbstractControlFlowElement )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1433:1: (lv_steps_8_0= ruleAbstractControlFlowElement )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1434:3: lv_steps_8_0= ruleAbstractControlFlowElement
+                    	    {
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleAbstractControlFlowElement_in_ruleAdaptationPlan3017);
+                    	    lv_steps_8_0=ruleAbstractControlFlowElement();
+
+                    	    state._fsp--;
+
+
+                    	    	        if (current==null) {
+                    	    	            current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+                    	    	        }
+                    	           		add(
+                    	           			current, 
+                    	           			"steps",
+                    	            		lv_steps_8_0, 
+                    	            		"AbstractControlFlowElement");
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop29;
+                        }
+                    } while (true);
+
+                    otherlv_9=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleAdaptationPlan3031); 
+
+                        	newLeafNode(otherlv_9, grammarAccess.getAdaptationPlanAccess().getRightParenthesisKeyword_3_3());
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAdaptationPlan"
+
+
+    // $ANTLR start "entryRuleStartAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1462:1: entryRuleStartAction returns [EObject current=null] : iv_ruleStartAction= ruleStartAction EOF ;
+    public final EObject entryRuleStartAction() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStartAction = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1463:2: (iv_ruleStartAction= ruleStartAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1464:2: iv_ruleStartAction= ruleStartAction EOF
+            {
+             newCompositeNode(grammarAccess.getStartActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStartAction_in_entryRuleStartAction3069);
+            iv_ruleStartAction=ruleStartAction();
+
+            state._fsp--;
+
+             current =iv_ruleStartAction; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStartAction3079); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStartAction"
+
+
+    // $ANTLR start "ruleStartAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1471:1: ruleStartAction returns [EObject current=null] : ( () otherlv_1= 'StartAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? ) ;
+    public final EObject ruleStartAction() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        AntlrDatatypeRuleToken lv_id_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1474:28: ( ( () otherlv_1= 'StartAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1475:1: ( () otherlv_1= 'StartAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1475:1: ( () otherlv_1= 'StartAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1475:2: () otherlv_1= 'StartAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )?
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1475:2: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1476:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getStartActionAccess().getStartActionAction_0(),
+                        current);
+                
+
+            }
+
+            otherlv_1=(Token)match(input,41,FollowSets000.FOLLOW_41_in_ruleStartAction3125); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getStartActionAccess().getStartActionKeyword_1());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1485:1: (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==12) ) {
+                alt31=1;
+            }
+            switch (alt31) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1485:3: otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']'
+                    {
+                    otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStartAction3138); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getStartActionAccess().getIdKeyword_2_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1489:1: ( (lv_id_3_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1490:1: (lv_id_3_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1490:1: (lv_id_3_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1491:3: lv_id_3_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getStartActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStartAction3159);
+                    lv_id_3_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getStartActionRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_3_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_4=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleStartAction3171); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getStartActionAccess().getRightSquareBracketKeyword_2_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStartAction"
+
+
+    // $ANTLR start "entryRuleStopAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1519:1: entryRuleStopAction returns [EObject current=null] : iv_ruleStopAction= ruleStopAction EOF ;
+    public final EObject entryRuleStopAction() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStopAction = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1520:2: (iv_ruleStopAction= ruleStopAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1521:2: iv_ruleStopAction= ruleStopAction EOF
+            {
+             newCompositeNode(grammarAccess.getStopActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStopAction_in_entryRuleStopAction3209);
+            iv_ruleStopAction=ruleStopAction();
+
+            state._fsp--;
+
+             current =iv_ruleStopAction; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStopAction3219); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStopAction"
+
+
+    // $ANTLR start "ruleStopAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1528:1: ruleStopAction returns [EObject current=null] : ( () otherlv_1= 'StopAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? ) ;
+    public final EObject ruleStopAction() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        AntlrDatatypeRuleToken lv_id_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1531:28: ( ( () otherlv_1= 'StopAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1532:1: ( () otherlv_1= 'StopAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1532:1: ( () otherlv_1= 'StopAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1532:2: () otherlv_1= 'StopAction' (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )?
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1532:2: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1533:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getStopActionAccess().getStopActionAction_0(),
+                        current);
+                
+
+            }
+
+            otherlv_1=(Token)match(input,42,FollowSets000.FOLLOW_42_in_ruleStopAction3265); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getStopActionAccess().getStopActionKeyword_1());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1542:1: (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )?
+            int alt32=2;
+            int LA32_0 = input.LA(1);
+
+            if ( (LA32_0==12) ) {
+                alt32=1;
+            }
+            switch (alt32) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1542:3: otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']'
+                    {
+                    otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStopAction3278); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getStopActionAccess().getIdKeyword_2_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1546:1: ( (lv_id_3_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1547:1: (lv_id_3_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1547:1: (lv_id_3_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1548:3: lv_id_3_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getStopActionAccess().getIdEStringParserRuleCall_2_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStopAction3299);
+                    lv_id_3_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getStopActionRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_3_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_4=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleStopAction3311); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getStopActionAccess().getRightSquareBracketKeyword_2_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStopAction"
+
+
+    // $ANTLR start "entryRuleLoopAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1576:1: entryRuleLoopAction returns [EObject current=null] : iv_ruleLoopAction= ruleLoopAction EOF ;
+    public final EObject entryRuleLoopAction() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleLoopAction = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1577:2: (iv_ruleLoopAction= ruleLoopAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1578:2: iv_ruleLoopAction= ruleLoopAction EOF
+            {
+             newCompositeNode(grammarAccess.getLoopActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleLoopAction_in_entryRuleLoopAction3349);
+            iv_ruleLoopAction=ruleLoopAction();
+
+            state._fsp--;
+
+             current =iv_ruleLoopAction; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleLoopAction3359); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleLoopAction"
+
+
+    // $ANTLR start "ruleLoopAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1585:1: ruleLoopAction returns [EObject current=null] : ( (otherlv_0= 'LoopAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'repeat' otherlv_5= 'counter' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= '(' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= ')' ) ;
+    public final EObject ruleLoopAction() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+        EObject lv_body_9_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1588:28: ( ( (otherlv_0= 'LoopAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'repeat' otherlv_5= 'counter' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= '(' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1589:1: ( (otherlv_0= 'LoopAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'repeat' otherlv_5= 'counter' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= '(' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1589:1: ( (otherlv_0= 'LoopAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'repeat' otherlv_5= 'counter' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= '(' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1589:2: (otherlv_0= 'LoopAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'repeat' otherlv_5= 'counter' otherlv_6= '=' ( ( ruleEString ) ) otherlv_8= '(' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= ')'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1589:2: (otherlv_0= 'LoopAction' )?
+            int alt33=2;
+            int LA33_0 = input.LA(1);
+
+            if ( (LA33_0==43) ) {
+                alt33=1;
+            }
+            switch (alt33) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1589:4: otherlv_0= 'LoopAction'
+                    {
+                    otherlv_0=(Token)match(input,43,FollowSets000.FOLLOW_43_in_ruleLoopAction3397); 
+
+                        	newLeafNode(otherlv_0, grammarAccess.getLoopActionAccess().getLoopActionKeyword_0());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1593:3: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
+
+            if ( (LA34_0==12) ) {
+                alt34=1;
+            }
+            switch (alt34) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1593:5: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleLoopAction3412); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getLoopActionAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1597:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1598:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1598:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1599:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getLoopActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleLoopAction3433);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getLoopActionRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleLoopAction3445); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getLoopActionAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,44,FollowSets000.FOLLOW_44_in_ruleLoopAction3459); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getLoopActionAccess().getRepeatKeyword_2());
+                
+            otherlv_5=(Token)match(input,45,FollowSets000.FOLLOW_45_in_ruleLoopAction3471); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getLoopActionAccess().getCounterKeyword_3());
+                
+            otherlv_6=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleLoopAction3483); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getLoopActionAccess().getEqualsSignKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1631:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1632:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1632:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1633:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getLoopActionRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getLoopActionAccess().getCounterParameterCrossReference_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleLoopAction3506);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleLoopAction3518); 
+
+                	newLeafNode(otherlv_8, grammarAccess.getLoopActionAccess().getLeftParenthesisKeyword_6());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1650:1: ( (lv_body_9_0= ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1651:1: (lv_body_9_0= ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1651:1: (lv_body_9_0= ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1652:3: lv_body_9_0= ruleAdaptationPlan
+            {
+             
+            	        newCompositeNode(grammarAccess.getLoopActionAccess().getBodyAdaptationPlanParserRuleCall_7_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_ruleLoopAction3539);
+            lv_body_9_0=ruleAdaptationPlan();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getLoopActionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"body",
+                    		lv_body_9_0, 
+                    		"AdaptationPlan");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_10=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleLoopAction3551); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getLoopActionAccess().getRightParenthesisKeyword_8());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleLoopAction"
+
+
+    // $ANTLR start "entryRuleBranchAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1680:1: entryRuleBranchAction returns [EObject current=null] : iv_ruleBranchAction= ruleBranchAction EOF ;
+    public final EObject entryRuleBranchAction() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBranchAction = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1681:2: (iv_ruleBranchAction= ruleBranchAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1682:2: iv_ruleBranchAction= ruleBranchAction EOF
+            {
+             newCompositeNode(grammarAccess.getBranchActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleBranchAction_in_entryRuleBranchAction3587);
+            iv_ruleBranchAction=ruleBranchAction();
+
+            state._fsp--;
+
+             current =iv_ruleBranchAction; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleBranchAction3597); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBranchAction"
+
+
+    // $ANTLR start "ruleBranchAction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1689:1: ruleBranchAction returns [EObject current=null] : ( (otherlv_0= 'BranchAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'if' otherlv_5= '(' otherlv_6= 'context' otherlv_7= '=' ( ( ruleEString ) ) otherlv_9= ',' otherlv_10= 'condition' otherlv_11= '=' ( (lv_condition_12_0= ruleEString ) ) otherlv_13= ')' otherlv_14= 'then' otherlv_15= '(' ( (lv_conditionTrueBranch_16_0= ruleAdaptationPlan ) ) otherlv_17= ')' otherlv_18= 'else' otherlv_19= '(' ( (lv_conditionFalseBranch_20_0= ruleAdaptationPlan ) ) otherlv_21= ')' ) ;
+    public final EObject ruleBranchAction() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        Token otherlv_14=null;
+        Token otherlv_15=null;
+        Token otherlv_17=null;
+        Token otherlv_18=null;
+        Token otherlv_19=null;
+        Token otherlv_21=null;
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+        AntlrDatatypeRuleToken lv_condition_12_0 = null;
+
+        EObject lv_conditionTrueBranch_16_0 = null;
+
+        EObject lv_conditionFalseBranch_20_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1692:28: ( ( (otherlv_0= 'BranchAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'if' otherlv_5= '(' otherlv_6= 'context' otherlv_7= '=' ( ( ruleEString ) ) otherlv_9= ',' otherlv_10= 'condition' otherlv_11= '=' ( (lv_condition_12_0= ruleEString ) ) otherlv_13= ')' otherlv_14= 'then' otherlv_15= '(' ( (lv_conditionTrueBranch_16_0= ruleAdaptationPlan ) ) otherlv_17= ')' otherlv_18= 'else' otherlv_19= '(' ( (lv_conditionFalseBranch_20_0= ruleAdaptationPlan ) ) otherlv_21= ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1693:1: ( (otherlv_0= 'BranchAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'if' otherlv_5= '(' otherlv_6= 'context' otherlv_7= '=' ( ( ruleEString ) ) otherlv_9= ',' otherlv_10= 'condition' otherlv_11= '=' ( (lv_condition_12_0= ruleEString ) ) otherlv_13= ')' otherlv_14= 'then' otherlv_15= '(' ( (lv_conditionTrueBranch_16_0= ruleAdaptationPlan ) ) otherlv_17= ')' otherlv_18= 'else' otherlv_19= '(' ( (lv_conditionFalseBranch_20_0= ruleAdaptationPlan ) ) otherlv_21= ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1693:1: ( (otherlv_0= 'BranchAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'if' otherlv_5= '(' otherlv_6= 'context' otherlv_7= '=' ( ( ruleEString ) ) otherlv_9= ',' otherlv_10= 'condition' otherlv_11= '=' ( (lv_condition_12_0= ruleEString ) ) otherlv_13= ')' otherlv_14= 'then' otherlv_15= '(' ( (lv_conditionTrueBranch_16_0= ruleAdaptationPlan ) ) otherlv_17= ')' otherlv_18= 'else' otherlv_19= '(' ( (lv_conditionFalseBranch_20_0= ruleAdaptationPlan ) ) otherlv_21= ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1693:2: (otherlv_0= 'BranchAction' )? (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= 'if' otherlv_5= '(' otherlv_6= 'context' otherlv_7= '=' ( ( ruleEString ) ) otherlv_9= ',' otherlv_10= 'condition' otherlv_11= '=' ( (lv_condition_12_0= ruleEString ) ) otherlv_13= ')' otherlv_14= 'then' otherlv_15= '(' ( (lv_conditionTrueBranch_16_0= ruleAdaptationPlan ) ) otherlv_17= ')' otherlv_18= 'else' otherlv_19= '(' ( (lv_conditionFalseBranch_20_0= ruleAdaptationPlan ) ) otherlv_21= ')'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1693:2: (otherlv_0= 'BranchAction' )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
+
+            if ( (LA35_0==46) ) {
+                alt35=1;
+            }
+            switch (alt35) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1693:4: otherlv_0= 'BranchAction'
+                    {
+                    otherlv_0=(Token)match(input,46,FollowSets000.FOLLOW_46_in_ruleBranchAction3635); 
+
+                        	newLeafNode(otherlv_0, grammarAccess.getBranchActionAccess().getBranchActionKeyword_0());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1697:3: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
+
+            if ( (LA36_0==12) ) {
+                alt36=1;
+            }
+            switch (alt36) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1697:5: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleBranchAction3650); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getBranchActionAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1701:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1702:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1702:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1703:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getBranchActionAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleBranchAction3671);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getBranchActionRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleBranchAction3683); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getBranchActionAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,47,FollowSets000.FOLLOW_47_in_ruleBranchAction3697); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getBranchActionAccess().getIfKeyword_2());
+                
+            otherlv_5=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleBranchAction3709); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_3());
+                
+            otherlv_6=(Token)match(input,48,FollowSets000.FOLLOW_48_in_ruleBranchAction3721); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getBranchActionAccess().getContextKeyword_4());
+                
+            otherlv_7=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleBranchAction3733); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getBranchActionAccess().getEqualsSignKeyword_5());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1739:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1740:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1740:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1741:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getBranchActionRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getBranchActionAccess().getContextEntityCrossReference_6_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleBranchAction3756);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_9=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleBranchAction3768); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getBranchActionAccess().getCommaKeyword_7());
+                
+            otherlv_10=(Token)match(input,49,FollowSets000.FOLLOW_49_in_ruleBranchAction3780); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getBranchActionAccess().getConditionKeyword_8());
+                
+            otherlv_11=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleBranchAction3792); 
+
+                	newLeafNode(otherlv_11, grammarAccess.getBranchActionAccess().getEqualsSignKeyword_9());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1766:1: ( (lv_condition_12_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1767:1: (lv_condition_12_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1767:1: (lv_condition_12_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1768:3: lv_condition_12_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getBranchActionAccess().getConditionEStringParserRuleCall_10_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleBranchAction3813);
+            lv_condition_12_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getBranchActionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"condition",
+                    		lv_condition_12_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_13=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleBranchAction3825); 
+
+                	newLeafNode(otherlv_13, grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_11());
+                
+            otherlv_14=(Token)match(input,50,FollowSets000.FOLLOW_50_in_ruleBranchAction3837); 
+
+                	newLeafNode(otherlv_14, grammarAccess.getBranchActionAccess().getThenKeyword_12());
+                
+            otherlv_15=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleBranchAction3849); 
+
+                	newLeafNode(otherlv_15, grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_13());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1796:1: ( (lv_conditionTrueBranch_16_0= ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1797:1: (lv_conditionTrueBranch_16_0= ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1797:1: (lv_conditionTrueBranch_16_0= ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1798:3: lv_conditionTrueBranch_16_0= ruleAdaptationPlan
+            {
+             
+            	        newCompositeNode(grammarAccess.getBranchActionAccess().getConditionTrueBranchAdaptationPlanParserRuleCall_14_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_ruleBranchAction3870);
+            lv_conditionTrueBranch_16_0=ruleAdaptationPlan();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getBranchActionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"conditionTrueBranch",
+                    		lv_conditionTrueBranch_16_0, 
+                    		"AdaptationPlan");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_17=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleBranchAction3882); 
+
+                	newLeafNode(otherlv_17, grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_15());
+                
+            otherlv_18=(Token)match(input,51,FollowSets000.FOLLOW_51_in_ruleBranchAction3894); 
+
+                	newLeafNode(otherlv_18, grammarAccess.getBranchActionAccess().getElseKeyword_16());
+                
+            otherlv_19=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleBranchAction3906); 
+
+                	newLeafNode(otherlv_19, grammarAccess.getBranchActionAccess().getLeftParenthesisKeyword_17());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1826:1: ( (lv_conditionFalseBranch_20_0= ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1827:1: (lv_conditionFalseBranch_20_0= ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1827:1: (lv_conditionFalseBranch_20_0= ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1828:3: lv_conditionFalseBranch_20_0= ruleAdaptationPlan
+            {
+             
+            	        newCompositeNode(grammarAccess.getBranchActionAccess().getConditionFalseBranchAdaptationPlanParserRuleCall_18_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_ruleBranchAction3927);
+            lv_conditionFalseBranch_20_0=ruleAdaptationPlan();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getBranchActionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"conditionFalseBranch",
+                    		lv_conditionFalseBranch_20_0, 
+                    		"AdaptationPlan");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_21=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleBranchAction3939); 
+
+                	newLeafNode(otherlv_21, grammarAccess.getBranchActionAccess().getRightParenthesisKeyword_19());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBranchAction"
+
+
+    // $ANTLR start "entryRuleActionReference"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1856:1: entryRuleActionReference returns [EObject current=null] : iv_ruleActionReference= ruleActionReference EOF ;
+    public final EObject entryRuleActionReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionReference = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1857:2: (iv_ruleActionReference= ruleActionReference EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1858:2: iv_ruleActionReference= ruleActionReference EOF
+            {
+             newCompositeNode(grammarAccess.getActionReferenceRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleActionReference_in_entryRuleActionReference3975);
+            iv_ruleActionReference=ruleActionReference();
+
+            state._fsp--;
+
+             current =iv_ruleActionReference; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleActionReference3985); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionReference"
+
+
+    // $ANTLR start "ruleActionReference"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1865:1: ruleActionReference returns [EObject current=null] : (otherlv_0= 'ActionReference' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '(' otherlv_5= 'refersTo' ( ( ruleEString ) ) otherlv_7= ')' ) ;
+    public final EObject ruleActionReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1868:28: ( (otherlv_0= 'ActionReference' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '(' otherlv_5= 'refersTo' ( ( ruleEString ) ) otherlv_7= ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1869:1: (otherlv_0= 'ActionReference' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '(' otherlv_5= 'refersTo' ( ( ruleEString ) ) otherlv_7= ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1869:1: (otherlv_0= 'ActionReference' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '(' otherlv_5= 'refersTo' ( ( ruleEString ) ) otherlv_7= ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1869:3: otherlv_0= 'ActionReference' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '(' otherlv_5= 'refersTo' ( ( ruleEString ) ) otherlv_7= ')'
+            {
+            otherlv_0=(Token)match(input,52,FollowSets000.FOLLOW_52_in_ruleActionReference4022); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1873:1: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt37=2;
+            int LA37_0 = input.LA(1);
+
+            if ( (LA37_0==12) ) {
+                alt37=1;
+            }
+            switch (alt37) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1873:3: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleActionReference4035); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getActionReferenceAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1877:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1878:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1878:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1879:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getActionReferenceAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleActionReference4056);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getActionReferenceRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleActionReference4068); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getActionReferenceAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleActionReference4082); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getActionReferenceAccess().getLeftParenthesisKeyword_2());
+                
+            otherlv_5=(Token)match(input,53,FollowSets000.FOLLOW_53_in_ruleActionReference4094); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getActionReferenceAccess().getRefersToKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1907:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1908:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1908:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1909:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getActionReferenceRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleActionReference4117);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_7=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleActionReference4129); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getActionReferenceAccess().getRightParenthesisKeyword_5());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionReference"
+
+
+    // $ANTLR start "entryRuleAdaptationActionOperation"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1934:1: entryRuleAdaptationActionOperation returns [EObject current=null] : iv_ruleAdaptationActionOperation= ruleAdaptationActionOperation EOF ;
+    public final EObject entryRuleAdaptationActionOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleAdaptationActionOperation = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1935:2: (iv_ruleAdaptationActionOperation= ruleAdaptationActionOperation EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1936:2: iv_ruleAdaptationActionOperation= ruleAdaptationActionOperation EOF
+            {
+             newCompositeNode(grammarAccess.getAdaptationActionOperationRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationActionOperation_in_entryRuleAdaptationActionOperation4165);
+            iv_ruleAdaptationActionOperation=ruleAdaptationActionOperation();
+
+            state._fsp--;
+
+             current =iv_ruleAdaptationActionOperation; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAdaptationActionOperation4175); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleAdaptationActionOperation"
+
+
+    // $ANTLR start "ruleAdaptationActionOperation"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1943:1: ruleAdaptationActionOperation returns [EObject current=null] : (otherlv_0= '(' ( (lv_adaptationOperationDirection_1_0= ruleAdaptationDirection ) ) otherlv_2= ',' ( (lv_adaptationOperationScope_3_0= ruleAdaptationScope ) ) otherlv_4= ')' ) ;
+    public final EObject ruleAdaptationActionOperation() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Enumerator lv_adaptationOperationDirection_1_0 = null;
+
+        Enumerator lv_adaptationOperationScope_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1946:28: ( (otherlv_0= '(' ( (lv_adaptationOperationDirection_1_0= ruleAdaptationDirection ) ) otherlv_2= ',' ( (lv_adaptationOperationScope_3_0= ruleAdaptationScope ) ) otherlv_4= ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1947:1: (otherlv_0= '(' ( (lv_adaptationOperationDirection_1_0= ruleAdaptationDirection ) ) otherlv_2= ',' ( (lv_adaptationOperationScope_3_0= ruleAdaptationScope ) ) otherlv_4= ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1947:1: (otherlv_0= '(' ( (lv_adaptationOperationDirection_1_0= ruleAdaptationDirection ) ) otherlv_2= ',' ( (lv_adaptationOperationScope_3_0= ruleAdaptationScope ) ) otherlv_4= ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1947:3: otherlv_0= '(' ( (lv_adaptationOperationDirection_1_0= ruleAdaptationDirection ) ) otherlv_2= ',' ( (lv_adaptationOperationScope_3_0= ruleAdaptationScope ) ) otherlv_4= ')'
+            {
+            otherlv_0=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleAdaptationActionOperation4212); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getAdaptationActionOperationAccess().getLeftParenthesisKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1951:1: ( (lv_adaptationOperationDirection_1_0= ruleAdaptationDirection ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1952:1: (lv_adaptationOperationDirection_1_0= ruleAdaptationDirection )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1952:1: (lv_adaptationOperationDirection_1_0= ruleAdaptationDirection )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1953:3: lv_adaptationOperationDirection_1_0= ruleAdaptationDirection
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationDirection_in_ruleAdaptationActionOperation4233);
+            lv_adaptationOperationDirection_1_0=ruleAdaptationDirection();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationActionOperationRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"adaptationOperationDirection",
+                    		lv_adaptationOperationDirection_1_0, 
+                    		"AdaptationDirection");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleAdaptationActionOperation4245); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getAdaptationActionOperationAccess().getCommaKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1973:1: ( (lv_adaptationOperationScope_3_0= ruleAdaptationScope ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1974:1: (lv_adaptationOperationScope_3_0= ruleAdaptationScope )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1974:1: (lv_adaptationOperationScope_3_0= ruleAdaptationScope )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:1975:3: lv_adaptationOperationScope_3_0= ruleAdaptationScope
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationScope_in_ruleAdaptationActionOperation4266);
+            lv_adaptationOperationScope_3_0=ruleAdaptationScope();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationActionOperationRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"adaptationOperationScope",
+                    		lv_adaptationOperationScope_3_0, 
+                    		"AdaptationScope");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleAdaptationActionOperation4278); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getAdaptationActionOperationAccess().getRightParenthesisKeyword_4());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAdaptationActionOperation"
+
+
+    // $ANTLR start "entryRuleModelVariableConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2003:1: entryRuleModelVariableConfigurationRange returns [EObject current=null] : iv_ruleModelVariableConfigurationRange= ruleModelVariableConfigurationRange EOF ;
+    public final EObject entryRuleModelVariableConfigurationRange() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleModelVariableConfigurationRange = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2004:2: (iv_ruleModelVariableConfigurationRange= ruleModelVariableConfigurationRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2005:2: iv_ruleModelVariableConfigurationRange= ruleModelVariableConfigurationRange EOF
+            {
+             newCompositeNode(grammarAccess.getModelVariableConfigurationRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleModelVariableConfigurationRange_in_entryRuleModelVariableConfigurationRange4314);
+            iv_ruleModelVariableConfigurationRange=ruleModelVariableConfigurationRange();
+
+            state._fsp--;
+
+             current =iv_ruleModelVariableConfigurationRange; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleModelVariableConfigurationRange4324); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleModelVariableConfigurationRange"
+
+
+    // $ANTLR start "ruleModelVariableConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2012:1: ruleModelVariableConfigurationRange returns [EObject current=null] : (otherlv_0= 'ModelVariableConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'minValue' ( (lv_minValue_8_0= ruleEDouble ) ) otherlv_9= 'maxValue' ( (lv_maxValue_10_0= ruleEDouble ) ) otherlv_11= 'adaptableEntity' ( ( ruleEString ) ) otherlv_13= '}' ) ;
+    public final EObject ruleModelVariableConfigurationRange() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_6_0 = null;
+
+        AntlrDatatypeRuleToken lv_minValue_8_0 = null;
+
+        AntlrDatatypeRuleToken lv_maxValue_10_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2015:28: ( (otherlv_0= 'ModelVariableConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'minValue' ( (lv_minValue_8_0= ruleEDouble ) ) otherlv_9= 'maxValue' ( (lv_maxValue_10_0= ruleEDouble ) ) otherlv_11= 'adaptableEntity' ( ( ruleEString ) ) otherlv_13= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2016:1: (otherlv_0= 'ModelVariableConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'minValue' ( (lv_minValue_8_0= ruleEDouble ) ) otherlv_9= 'maxValue' ( (lv_maxValue_10_0= ruleEDouble ) ) otherlv_11= 'adaptableEntity' ( ( ruleEString ) ) otherlv_13= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2016:1: (otherlv_0= 'ModelVariableConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'minValue' ( (lv_minValue_8_0= ruleEDouble ) ) otherlv_9= 'maxValue' ( (lv_maxValue_10_0= ruleEDouble ) ) otherlv_11= 'adaptableEntity' ( ( ruleEString ) ) otherlv_13= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2016:3: otherlv_0= 'ModelVariableConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'minValue' ( (lv_minValue_8_0= ruleEDouble ) ) otherlv_9= 'maxValue' ( (lv_maxValue_10_0= ruleEDouble ) ) otherlv_11= 'adaptableEntity' ( ( ruleEString ) ) otherlv_13= '}'
+            {
+            otherlv_0=(Token)match(input,54,FollowSets000.FOLLOW_54_in_ruleModelVariableConfigurationRange4361); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2020:1: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==12) ) {
+                alt38=1;
+            }
+            switch (alt38) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2020:3: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleModelVariableConfigurationRange4374); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getModelVariableConfigurationRangeAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2024:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2025:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2025:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2026:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange4395);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleModelVariableConfigurationRange4407); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getModelVariableConfigurationRangeAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleModelVariableConfigurationRange4421); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_5=(Token)match(input,55,FollowSets000.FOLLOW_55_in_ruleModelVariableConfigurationRange4433); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getModelVariableConfigurationRangeAccess().getNameKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2054:1: ( (lv_name_6_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2055:1: (lv_name_6_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2055:1: (lv_name_6_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2056:3: lv_name_6_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange4454);
+            lv_name_6_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_6_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_7=(Token)match(input,56,FollowSets000.FOLLOW_56_in_ruleModelVariableConfigurationRange4466); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_5());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2076:1: ( (lv_minValue_8_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2077:1: (lv_minValue_8_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2077:1: (lv_minValue_8_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2078:3: lv_minValue_8_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_6_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleModelVariableConfigurationRange4487);
+            lv_minValue_8_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"minValue",
+                    		lv_minValue_8_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_9=(Token)match(input,57,FollowSets000.FOLLOW_57_in_ruleModelVariableConfigurationRange4499); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_7());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2098:1: ( (lv_maxValue_10_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2099:1: (lv_maxValue_10_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2099:1: (lv_maxValue_10_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2100:3: lv_maxValue_10_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_8_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleModelVariableConfigurationRange4520);
+            lv_maxValue_10_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"maxValue",
+                    		lv_maxValue_10_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_11=(Token)match(input,58,FollowSets000.FOLLOW_58_in_ruleModelVariableConfigurationRange4532); 
+
+                	newLeafNode(otherlv_11, grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_9());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2120:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2121:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2121:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2122:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getModelVariableConfigurationRangeRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_10_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange4555);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_13=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleModelVariableConfigurationRange4567); 
+
+                	newLeafNode(otherlv_13, grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_11());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleModelVariableConfigurationRange"
+
+
+    // $ANTLR start "entryRuleModelEntityConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2147:1: entryRuleModelEntityConfigurationRange returns [EObject current=null] : iv_ruleModelEntityConfigurationRange= ruleModelEntityConfigurationRange EOF ;
+    public final EObject entryRuleModelEntityConfigurationRange() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleModelEntityConfigurationRange = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2148:2: (iv_ruleModelEntityConfigurationRange= ruleModelEntityConfigurationRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2149:2: iv_ruleModelEntityConfigurationRange= ruleModelEntityConfigurationRange EOF
+            {
+             newCompositeNode(grammarAccess.getModelEntityConfigurationRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleModelEntityConfigurationRange_in_entryRuleModelEntityConfigurationRange4603);
+            iv_ruleModelEntityConfigurationRange=ruleModelEntityConfigurationRange();
+
+            state._fsp--;
+
+             current =iv_ruleModelEntityConfigurationRange; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleModelEntityConfigurationRange4613); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleModelEntityConfigurationRange"
+
+
+    // $ANTLR start "ruleModelEntityConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2156:1: ruleModelEntityConfigurationRange returns [EObject current=null] : (otherlv_0= 'ModelEntityConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= 'variationPossibility' ( (lv_variationPossibility_10_0= ruleVariationType ) ) otherlv_11= '}' ) ;
+    public final EObject ruleModelEntityConfigurationRange() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_11=null;
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_6_0 = null;
+
+        EObject lv_variationPossibility_10_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2159:28: ( (otherlv_0= 'ModelEntityConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= 'variationPossibility' ( (lv_variationPossibility_10_0= ruleVariationType ) ) otherlv_11= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2160:1: (otherlv_0= 'ModelEntityConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= 'variationPossibility' ( (lv_variationPossibility_10_0= ruleVariationType ) ) otherlv_11= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2160:1: (otherlv_0= 'ModelEntityConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= 'variationPossibility' ( (lv_variationPossibility_10_0= ruleVariationType ) ) otherlv_11= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2160:3: otherlv_0= 'ModelEntityConfigurationRange' (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'name' ( (lv_name_6_0= ruleEString ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= 'variationPossibility' ( (lv_variationPossibility_10_0= ruleVariationType ) ) otherlv_11= '}'
+            {
+            otherlv_0=(Token)match(input,59,FollowSets000.FOLLOW_59_in_ruleModelEntityConfigurationRange4650); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2164:1: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt39=2;
+            int LA39_0 = input.LA(1);
+
+            if ( (LA39_0==12) ) {
+                alt39=1;
+            }
+            switch (alt39) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2164:3: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleModelEntityConfigurationRange4663); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getModelEntityConfigurationRangeAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2168:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2169:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2169:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2170:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4684);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleModelEntityConfigurationRange4696); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getModelEntityConfigurationRangeAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleModelEntityConfigurationRange4710); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_5=(Token)match(input,55,FollowSets000.FOLLOW_55_in_ruleModelEntityConfigurationRange4722); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getModelEntityConfigurationRangeAccess().getNameKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2198:1: ( (lv_name_6_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2199:1: (lv_name_6_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2199:1: (lv_name_6_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2200:3: lv_name_6_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getNameEStringParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4743);
+            lv_name_6_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_6_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_7=(Token)match(input,58,FollowSets000.FOLLOW_58_in_ruleModelEntityConfigurationRange4755); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityKeyword_5());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2220:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2221:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2221:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2222:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getModelEntityConfigurationRangeRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getAdaptableEntityEntityCrossReference_6_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4778);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_9=(Token)match(input,60,FollowSets000.FOLLOW_60_in_ruleModelEntityConfigurationRange4790); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_7());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2239:1: ( (lv_variationPossibility_10_0= ruleVariationType ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2240:1: (lv_variationPossibility_10_0= ruleVariationType )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2240:1: (lv_variationPossibility_10_0= ruleVariationType )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2241:3: lv_variationPossibility_10_0= ruleVariationType
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_8_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleVariationType_in_ruleModelEntityConfigurationRange4811);
+            lv_variationPossibility_10_0=ruleVariationType();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"variationPossibility",
+                    		lv_variationPossibility_10_0, 
+                    		"VariationType");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_11=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleModelEntityConfigurationRange4823); 
+
+                	newLeafNode(otherlv_11, grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_9());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleModelEntityConfigurationRange"
+
+
+    // $ANTLR start "entryRuleEDouble"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2269:1: entryRuleEDouble returns [String current=null] : iv_ruleEDouble= ruleEDouble EOF ;
+    public final String entryRuleEDouble() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleEDouble = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2270:2: (iv_ruleEDouble= ruleEDouble EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2271:2: iv_ruleEDouble= ruleEDouble EOF
+            {
+             newCompositeNode(grammarAccess.getEDoubleRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_entryRuleEDouble4860);
+            iv_ruleEDouble=ruleEDouble();
+
+            state._fsp--;
+
+             current =iv_ruleEDouble.getText(); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEDouble4871); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleEDouble"
+
+
+    // $ANTLR start "ruleEDouble"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2278:1: ruleEDouble returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? (this_INT_1= RULE_INT )? kw= '.' this_INT_3= RULE_INT ( (kw= 'E' | kw= 'e' ) (kw= '-' )? this_INT_7= RULE_INT )? ) ;
+    public final AntlrDatatypeRuleToken ruleEDouble() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        Token this_INT_1=null;
+        Token this_INT_3=null;
+        Token this_INT_7=null;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2281:28: ( ( (kw= '-' )? (this_INT_1= RULE_INT )? kw= '.' this_INT_3= RULE_INT ( (kw= 'E' | kw= 'e' ) (kw= '-' )? this_INT_7= RULE_INT )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2282:1: ( (kw= '-' )? (this_INT_1= RULE_INT )? kw= '.' this_INT_3= RULE_INT ( (kw= 'E' | kw= 'e' ) (kw= '-' )? this_INT_7= RULE_INT )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2282:1: ( (kw= '-' )? (this_INT_1= RULE_INT )? kw= '.' this_INT_3= RULE_INT ( (kw= 'E' | kw= 'e' ) (kw= '-' )? this_INT_7= RULE_INT )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2282:2: (kw= '-' )? (this_INT_1= RULE_INT )? kw= '.' this_INT_3= RULE_INT ( (kw= 'E' | kw= 'e' ) (kw= '-' )? this_INT_7= RULE_INT )?
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2282:2: (kw= '-' )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( (LA40_0==61) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2283:2: kw= '-'
+                    {
+                    kw=(Token)match(input,61,FollowSets000.FOLLOW_61_in_ruleEDouble4910); 
+
+                            current.merge(kw);
+                            newLeafNode(kw, grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2288:3: (this_INT_1= RULE_INT )?
+            int alt41=2;
+            int LA41_0 = input.LA(1);
+
+            if ( (LA41_0==RULE_INT) ) {
+                alt41=1;
+            }
+            switch (alt41) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2288:8: this_INT_1= RULE_INT
+                    {
+                    this_INT_1=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_ruleEDouble4928); 
+
+                    		current.merge(this_INT_1);
+                        
+                     
+                        newLeafNode(this_INT_1, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+            kw=(Token)match(input,62,FollowSets000.FOLLOW_62_in_ruleEDouble4948); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); 
+                
+            this_INT_3=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_ruleEDouble4963); 
+
+            		current.merge(this_INT_3);
+                
+             
+                newLeafNode(this_INT_3, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); 
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2308:1: ( (kw= 'E' | kw= 'e' ) (kw= '-' )? this_INT_7= RULE_INT )?
+            int alt44=2;
+            int LA44_0 = input.LA(1);
+
+            if ( ((LA44_0>=63 && LA44_0<=64)) ) {
+                alt44=1;
+            }
+            switch (alt44) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2308:2: (kw= 'E' | kw= 'e' ) (kw= '-' )? this_INT_7= RULE_INT
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2308:2: (kw= 'E' | kw= 'e' )
+                    int alt42=2;
+                    int LA42_0 = input.LA(1);
+
+                    if ( (LA42_0==63) ) {
+                        alt42=1;
+                    }
+                    else if ( (LA42_0==64) ) {
+                        alt42=2;
+                    }
+                    else {
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 42, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt42) {
+                        case 1 :
+                            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2309:2: kw= 'E'
+                            {
+                            kw=(Token)match(input,63,FollowSets000.FOLLOW_63_in_ruleEDouble4983); 
+
+                                    current.merge(kw);
+                                    newLeafNode(kw, grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); 
+                                
+
+                            }
+                            break;
+                        case 2 :
+                            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2316:2: kw= 'e'
+                            {
+                            kw=(Token)match(input,64,FollowSets000.FOLLOW_64_in_ruleEDouble5002); 
+
+                                    current.merge(kw);
+                                    newLeafNode(kw, grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); 
+                                
+
+                            }
+                            break;
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2321:2: (kw= '-' )?
+                    int alt43=2;
+                    int LA43_0 = input.LA(1);
+
+                    if ( (LA43_0==61) ) {
+                        alt43=1;
+                    }
+                    switch (alt43) {
+                        case 1 :
+                            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2322:2: kw= '-'
+                            {
+                            kw=(Token)match(input,61,FollowSets000.FOLLOW_61_in_ruleEDouble5017); 
+
+                                    current.merge(kw);
+                                    newLeafNode(kw, grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); 
+                                
+
+                            }
+                            break;
+
+                    }
+
+                    this_INT_7=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_ruleEDouble5034); 
+
+                    		current.merge(this_INT_7);
+                        
+                     
+                        newLeafNode(this_INT_7, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleEDouble"
+
+
+    // $ANTLR start "entryRulePropertyRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2342:1: entryRulePropertyRange returns [EObject current=null] : iv_rulePropertyRange= rulePropertyRange EOF ;
+    public final EObject entryRulePropertyRange() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyRange = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2343:2: (iv_rulePropertyRange= rulePropertyRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2344:2: iv_rulePropertyRange= rulePropertyRange EOF
+            {
+             newCompositeNode(grammarAccess.getPropertyRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePropertyRange_in_entryRulePropertyRange5081);
+            iv_rulePropertyRange=rulePropertyRange();
+
+            state._fsp--;
+
+             current =iv_rulePropertyRange; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePropertyRange5091); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyRange"
+
+
+    // $ANTLR start "rulePropertyRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2351:1: rulePropertyRange returns [EObject current=null] : (otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( (lv_minValueConstraint_3_0= ruleOclConstraint ) ) otherlv_4= 'maxValueConstraint' ( (lv_maxValueConstraint_5_0= ruleOclConstraint ) ) otherlv_6= '}' ) ;
+    public final EObject rulePropertyRange() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_minValueConstraint_3_0 = null;
+
+        EObject lv_maxValueConstraint_5_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2354:28: ( (otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( (lv_minValueConstraint_3_0= ruleOclConstraint ) ) otherlv_4= 'maxValueConstraint' ( (lv_maxValueConstraint_5_0= ruleOclConstraint ) ) otherlv_6= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2355:1: (otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( (lv_minValueConstraint_3_0= ruleOclConstraint ) ) otherlv_4= 'maxValueConstraint' ( (lv_maxValueConstraint_5_0= ruleOclConstraint ) ) otherlv_6= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2355:1: (otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( (lv_minValueConstraint_3_0= ruleOclConstraint ) ) otherlv_4= 'maxValueConstraint' ( (lv_maxValueConstraint_5_0= ruleOclConstraint ) ) otherlv_6= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2355:3: otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( (lv_minValueConstraint_3_0= ruleOclConstraint ) ) otherlv_4= 'maxValueConstraint' ( (lv_maxValueConstraint_5_0= ruleOclConstraint ) ) otherlv_6= '}'
+            {
+            otherlv_0=(Token)match(input,65,FollowSets000.FOLLOW_65_in_rulePropertyRange5128); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0());
+                
+            otherlv_1=(Token)match(input,14,FollowSets000.FOLLOW_14_in_rulePropertyRange5140); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1());
+                
+            otherlv_2=(Token)match(input,66,FollowSets000.FOLLOW_66_in_rulePropertyRange5152); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2367:1: ( (lv_minValueConstraint_3_0= ruleOclConstraint ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2368:1: (lv_minValueConstraint_3_0= ruleOclConstraint )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2368:1: (lv_minValueConstraint_3_0= ruleOclConstraint )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2369:3: lv_minValueConstraint_3_0= ruleOclConstraint
+            {
+             
+            	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleOclConstraint_in_rulePropertyRange5173);
+            lv_minValueConstraint_3_0=ruleOclConstraint();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getPropertyRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"minValueConstraint",
+                    		lv_minValueConstraint_3_0, 
+                    		"OclConstraint");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,67,FollowSets000.FOLLOW_67_in_rulePropertyRange5185); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2389:1: ( (lv_maxValueConstraint_5_0= ruleOclConstraint ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2390:1: (lv_maxValueConstraint_5_0= ruleOclConstraint )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2390:1: (lv_maxValueConstraint_5_0= ruleOclConstraint )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2391:3: lv_maxValueConstraint_5_0= ruleOclConstraint
+            {
+             
+            	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleOclConstraint_in_rulePropertyRange5206);
+            lv_maxValueConstraint_5_0=ruleOclConstraint();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getPropertyRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"maxValueConstraint",
+                    		lv_maxValueConstraint_5_0, 
+                    		"OclConstraint");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_6=(Token)match(input,22,FollowSets000.FOLLOW_22_in_rulePropertyRange5218); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyRange"
+
+
+    // $ANTLR start "entryRuleSetOfConfigurations"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2419:1: entryRuleSetOfConfigurations returns [EObject current=null] : iv_ruleSetOfConfigurations= ruleSetOfConfigurations EOF ;
+    public final EObject entryRuleSetOfConfigurations() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSetOfConfigurations = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2420:2: (iv_ruleSetOfConfigurations= ruleSetOfConfigurations EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2421:2: iv_ruleSetOfConfigurations= ruleSetOfConfigurations EOF
+            {
+             newCompositeNode(grammarAccess.getSetOfConfigurationsRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSetOfConfigurations_in_entryRuleSetOfConfigurations5254);
+            iv_ruleSetOfConfigurations=ruleSetOfConfigurations();
+
+            state._fsp--;
+
+             current =iv_ruleSetOfConfigurations; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSetOfConfigurations5264); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSetOfConfigurations"
+
+
+    // $ANTLR start "ruleSetOfConfigurations"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2428:1: ruleSetOfConfigurations returns [EObject current=null] : (otherlv_0= 'SetOfConfigurations' otherlv_1= '{' (otherlv_2= 'variants' otherlv_3= '(' ( ( ruleEString ) ) (otherlv_5= ',' ( ( ruleEString ) ) )* otherlv_7= ')' )? otherlv_8= 'valueConstraint' ( (lv_valueConstraint_9_0= ruleOclConstraint ) ) otherlv_10= '}' ) ;
+    public final EObject ruleSetOfConfigurations() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        EObject lv_valueConstraint_9_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2431:28: ( (otherlv_0= 'SetOfConfigurations' otherlv_1= '{' (otherlv_2= 'variants' otherlv_3= '(' ( ( ruleEString ) ) (otherlv_5= ',' ( ( ruleEString ) ) )* otherlv_7= ')' )? otherlv_8= 'valueConstraint' ( (lv_valueConstraint_9_0= ruleOclConstraint ) ) otherlv_10= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2432:1: (otherlv_0= 'SetOfConfigurations' otherlv_1= '{' (otherlv_2= 'variants' otherlv_3= '(' ( ( ruleEString ) ) (otherlv_5= ',' ( ( ruleEString ) ) )* otherlv_7= ')' )? otherlv_8= 'valueConstraint' ( (lv_valueConstraint_9_0= ruleOclConstraint ) ) otherlv_10= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2432:1: (otherlv_0= 'SetOfConfigurations' otherlv_1= '{' (otherlv_2= 'variants' otherlv_3= '(' ( ( ruleEString ) ) (otherlv_5= ',' ( ( ruleEString ) ) )* otherlv_7= ')' )? otherlv_8= 'valueConstraint' ( (lv_valueConstraint_9_0= ruleOclConstraint ) ) otherlv_10= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2432:3: otherlv_0= 'SetOfConfigurations' otherlv_1= '{' (otherlv_2= 'variants' otherlv_3= '(' ( ( ruleEString ) ) (otherlv_5= ',' ( ( ruleEString ) ) )* otherlv_7= ')' )? otherlv_8= 'valueConstraint' ( (lv_valueConstraint_9_0= ruleOclConstraint ) ) otherlv_10= '}'
+            {
+            otherlv_0=(Token)match(input,68,FollowSets000.FOLLOW_68_in_ruleSetOfConfigurations5301); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0());
+                
+            otherlv_1=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleSetOfConfigurations5313); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2440:1: (otherlv_2= 'variants' otherlv_3= '(' ( ( ruleEString ) ) (otherlv_5= ',' ( ( ruleEString ) ) )* otherlv_7= ')' )?
+            int alt46=2;
+            int LA46_0 = input.LA(1);
+
+            if ( (LA46_0==69) ) {
+                alt46=1;
+            }
+            switch (alt46) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2440:3: otherlv_2= 'variants' otherlv_3= '(' ( ( ruleEString ) ) (otherlv_5= ',' ( ( ruleEString ) ) )* otherlv_7= ')'
+                    {
+                    otherlv_2=(Token)match(input,69,FollowSets000.FOLLOW_69_in_ruleSetOfConfigurations5326); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_2_0());
+                        
+                    otherlv_3=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleSetOfConfigurations5338); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_2_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2448:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2449:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2449:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2450:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSetOfConfigurations5361);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2463:2: (otherlv_5= ',' ( ( ruleEString ) ) )*
+                    loop45:
+                    do {
+                        int alt45=2;
+                        int LA45_0 = input.LA(1);
+
+                        if ( (LA45_0==17) ) {
+                            alt45=1;
+                        }
+
+
+                        switch (alt45) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2463:4: otherlv_5= ',' ( ( ruleEString ) )
+                    	    {
+                    	    otherlv_5=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleSetOfConfigurations5374); 
+
+                    	        	newLeafNode(otherlv_5, grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_2_3_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2467:1: ( ( ruleEString ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2468:1: ( ruleEString )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2468:1: ( ruleEString )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2469:3: ruleEString
+                    	    {
+
+                    	    			if (current==null) {
+                    	    	            current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+                    	    	        }
+                    	            
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEntityCrossReference_2_3_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSetOfConfigurations5397);
+                    	    ruleEString();
+
+                    	    state._fsp--;
+
+                    	     
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop45;
+                        }
+                    } while (true);
+
+                    otherlv_7=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleSetOfConfigurations5411); 
+
+                        	newLeafNode(otherlv_7, grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_2_4());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_8=(Token)match(input,70,FollowSets000.FOLLOW_70_in_ruleSetOfConfigurations5425); 
+
+                	newLeafNode(otherlv_8, grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2490:1: ( (lv_valueConstraint_9_0= ruleOclConstraint ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2491:1: (lv_valueConstraint_9_0= ruleOclConstraint )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2491:1: (lv_valueConstraint_9_0= ruleOclConstraint )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2492:3: lv_valueConstraint_9_0= ruleOclConstraint
+            {
+             
+            	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleOclConstraint_in_ruleSetOfConfigurations5446);
+            lv_valueConstraint_9_0=ruleOclConstraint();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getSetOfConfigurationsRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"valueConstraint",
+                    		lv_valueConstraint_9_0, 
+                    		"OclConstraint");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_10=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleSetOfConfigurations5458); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSetOfConfigurations"
+
+
+    // $ANTLR start "entryRuleOclConstraint"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2520:1: entryRuleOclConstraint returns [EObject current=null] : iv_ruleOclConstraint= ruleOclConstraint EOF ;
+    public final EObject entryRuleOclConstraint() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleOclConstraint = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2521:2: (iv_ruleOclConstraint= ruleOclConstraint EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2522:2: iv_ruleOclConstraint= ruleOclConstraint EOF
+            {
+             newCompositeNode(grammarAccess.getOclConstraintRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleOclConstraint_in_entryRuleOclConstraint5494);
+            iv_ruleOclConstraint=ruleOclConstraint();
+
+            state._fsp--;
+
+             current =iv_ruleOclConstraint; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleOclConstraint5504); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOclConstraint"
+
+
+    // $ANTLR start "ruleOclConstraint"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2529:1: ruleOclConstraint returns [EObject current=null] : (otherlv_0= 'OclConstraint' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'oclString' ( (lv_oclString_4_0= ruleEString ) ) otherlv_5= '}' ) ;
+    public final EObject ruleOclConstraint() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_oclString_4_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2532:28: ( (otherlv_0= 'OclConstraint' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'oclString' ( (lv_oclString_4_0= ruleEString ) ) otherlv_5= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2533:1: (otherlv_0= 'OclConstraint' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'oclString' ( (lv_oclString_4_0= ruleEString ) ) otherlv_5= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2533:1: (otherlv_0= 'OclConstraint' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'oclString' ( (lv_oclString_4_0= ruleEString ) ) otherlv_5= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2533:3: otherlv_0= 'OclConstraint' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'oclString' ( (lv_oclString_4_0= ruleEString ) ) otherlv_5= '}'
+            {
+            otherlv_0=(Token)match(input,71,FollowSets000.FOLLOW_71_in_ruleOclConstraint5541); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2537:1: ( (lv_name_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2538:1: (lv_name_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2538:1: (lv_name_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2539:3: lv_name_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleOclConstraint5562);
+            lv_name_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getOclConstraintRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleOclConstraint5574); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_3=(Token)match(input,72,FollowSets000.FOLLOW_72_in_ruleOclConstraint5586); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getOclConstraintAccess().getOclStringKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2563:1: ( (lv_oclString_4_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2564:1: (lv_oclString_4_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2564:1: (lv_oclString_4_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2565:3: lv_oclString_4_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleOclConstraint5607);
+            lv_oclString_4_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getOclConstraintRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"oclString",
+                    		lv_oclString_4_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleOclConstraint5619); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_5());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOclConstraint"
+
+
+    // $ANTLR start "entryRuleObjective"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2593:1: entryRuleObjective returns [EObject current=null] : iv_ruleObjective= ruleObjective EOF ;
+    public final EObject entryRuleObjective() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleObjective = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2594:2: (iv_ruleObjective= ruleObjective EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2595:2: iv_ruleObjective= ruleObjective EOF
+            {
+             newCompositeNode(grammarAccess.getObjectiveRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleObjective_in_entryRuleObjective5655);
+            iv_ruleObjective=ruleObjective();
+
+            state._fsp--;
+
+             current =iv_ruleObjective; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleObjective5665); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleObjective"
+
+
+    // $ANTLR start "ruleObjective"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2602:1: ruleObjective returns [EObject current=null] : ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'specification' otherlv_6= '=' ( ( (lv_specifications_7_0= ruleSpecification ) ) | (otherlv_8= '(' ( (lv_specifications_9_0= ruleSpecification ) ) (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )* otherlv_12= ')' ) ) otherlv_13= '}' ) ;
+    public final EObject ruleObjective() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        AntlrDatatypeRuleToken lv_name_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+        EObject lv_specifications_7_0 = null;
+
+        EObject lv_specifications_9_0 = null;
+
+        EObject lv_specifications_11_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2605:28: ( ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'specification' otherlv_6= '=' ( ( (lv_specifications_7_0= ruleSpecification ) ) | (otherlv_8= '(' ( (lv_specifications_9_0= ruleSpecification ) ) (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )* otherlv_12= ')' ) ) otherlv_13= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2606:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'specification' otherlv_6= '=' ( ( (lv_specifications_7_0= ruleSpecification ) ) | (otherlv_8= '(' ( (lv_specifications_9_0= ruleSpecification ) ) (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )* otherlv_12= ')' ) ) otherlv_13= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2606:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'specification' otherlv_6= '=' ( ( (lv_specifications_7_0= ruleSpecification ) ) | (otherlv_8= '(' ( (lv_specifications_9_0= ruleSpecification ) ) (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )* otherlv_12= ')' ) ) otherlv_13= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2606:2: ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '{' otherlv_5= 'specification' otherlv_6= '=' ( ( (lv_specifications_7_0= ruleSpecification ) ) | (otherlv_8= '(' ( (lv_specifications_9_0= ruleSpecification ) ) (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )* otherlv_12= ')' ) ) otherlv_13= '}'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2606:2: ( (lv_name_0_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2607:1: (lv_name_0_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2607:1: (lv_name_0_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2608:3: lv_name_0_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getObjectiveAccess().getNameEStringParserRuleCall_0_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleObjective5711);
+            lv_name_0_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getObjectiveRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_0_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2624:2: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt47=2;
+            int LA47_0 = input.LA(1);
+
+            if ( (LA47_0==12) ) {
+                alt47=1;
+            }
+            switch (alt47) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2624:4: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleObjective5724); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getObjectiveAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2628:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2629:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2629:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2630:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getObjectiveAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleObjective5745);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getObjectiveRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleObjective5757); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getObjectiveAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleObjective5771); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_5=(Token)match(input,73,FollowSets000.FOLLOW_73_in_ruleObjective5783); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getObjectiveAccess().getSpecificationKeyword_3());
+                
+            otherlv_6=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleObjective5795); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getObjectiveAccess().getEqualsSignKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2662:1: ( ( (lv_specifications_7_0= ruleSpecification ) ) | (otherlv_8= '(' ( (lv_specifications_9_0= ruleSpecification ) ) (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )* otherlv_12= ')' ) )
+            int alt49=2;
+            int LA49_0 = input.LA(1);
+
+            if ( (LA49_0==80) ) {
+                alt49=1;
+            }
+            else if ( (LA49_0==27) ) {
+                int LA49_2 = input.LA(2);
+
+                if ( (LA49_2==27||LA49_2==80) ) {
+                    alt49=2;
+                }
+                else if ( ((LA49_2>=RULE_STRING && LA49_2<=RULE_ID)||LA49_2==81) ) {
+                    alt49=1;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 49, 2, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 49, 0, input);
+
+                throw nvae;
+            }
+            switch (alt49) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2662:2: ( (lv_specifications_7_0= ruleSpecification ) )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2662:2: ( (lv_specifications_7_0= ruleSpecification ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2663:1: (lv_specifications_7_0= ruleSpecification )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2663:1: (lv_specifications_7_0= ruleSpecification )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2664:3: lv_specifications_7_0= ruleSpecification
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_0_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleSpecification_in_ruleObjective5817);
+                    lv_specifications_7_0=ruleSpecification();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getObjectiveRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"specifications",
+                            		lv_specifications_7_0, 
+                            		"Specification");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2681:6: (otherlv_8= '(' ( (lv_specifications_9_0= ruleSpecification ) ) (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )* otherlv_12= ')' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2681:6: (otherlv_8= '(' ( (lv_specifications_9_0= ruleSpecification ) ) (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )* otherlv_12= ')' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2681:8: otherlv_8= '(' ( (lv_specifications_9_0= ruleSpecification ) ) (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )* otherlv_12= ')'
+                    {
+                    otherlv_8=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleObjective5836); 
+
+                        	newLeafNode(otherlv_8, grammarAccess.getObjectiveAccess().getLeftParenthesisKeyword_5_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2685:1: ( (lv_specifications_9_0= ruleSpecification ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2686:1: (lv_specifications_9_0= ruleSpecification )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2686:1: (lv_specifications_9_0= ruleSpecification )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2687:3: lv_specifications_9_0= ruleSpecification
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleSpecification_in_ruleObjective5857);
+                    lv_specifications_9_0=ruleSpecification();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getObjectiveRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"specifications",
+                            		lv_specifications_9_0, 
+                            		"Specification");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2703:2: (otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) ) )*
+                    loop48:
+                    do {
+                        int alt48=2;
+                        int LA48_0 = input.LA(1);
+
+                        if ( (LA48_0==17) ) {
+                            alt48=1;
+                        }
+
+
+                        switch (alt48) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2703:4: otherlv_10= ',' ( (lv_specifications_11_0= ruleSpecification ) )
+                    	    {
+                    	    otherlv_10=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleObjective5870); 
+
+                    	        	newLeafNode(otherlv_10, grammarAccess.getObjectiveAccess().getCommaKeyword_5_1_2_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2707:1: ( (lv_specifications_11_0= ruleSpecification ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2708:1: (lv_specifications_11_0= ruleSpecification )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2708:1: (lv_specifications_11_0= ruleSpecification )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2709:3: lv_specifications_11_0= ruleSpecification
+                    	    {
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getObjectiveAccess().getSpecificationsSpecificationParserRuleCall_5_1_2_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleSpecification_in_ruleObjective5891);
+                    	    lv_specifications_11_0=ruleSpecification();
+
+                    	    state._fsp--;
+
+
+                    	    	        if (current==null) {
+                    	    	            current = createModelElementForParent(grammarAccess.getObjectiveRule());
+                    	    	        }
+                    	           		add(
+                    	           			current, 
+                    	           			"specifications",
+                    	            		lv_specifications_11_0, 
+                    	            		"Specification");
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop48;
+                        }
+                    } while (true);
+
+                    otherlv_12=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleObjective5905); 
+
+                        	newLeafNode(otherlv_12, grammarAccess.getObjectiveAccess().getRightParenthesisKeyword_5_1_3());
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_13=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleObjective5919); 
+
+                	newLeafNode(otherlv_13, grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_6());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleObjective"
+
+
+    // $ANTLR start "entryRuleEvent"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2741:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ;
+    public final EObject entryRuleEvent() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleEvent = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2742:2: (iv_ruleEvent= ruleEvent EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2743:2: iv_ruleEvent= ruleEvent EOF
+            {
+             newCompositeNode(grammarAccess.getEventRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEvent_in_entryRuleEvent5955);
+            iv_ruleEvent=ruleEvent();
+
+            state._fsp--;
+
+             current =iv_ruleEvent; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEvent5965); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleEvent"
+
+
+    // $ANTLR start "ruleEvent"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2750:1: ruleEvent returns [EObject current=null] : ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? ) ;
+    public final EObject ruleEvent() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        AntlrDatatypeRuleToken lv_name_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2753:28: ( ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2754:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2754:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2754:2: ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2754:2: ( (lv_name_0_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2755:1: (lv_name_0_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2755:1: (lv_name_0_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2756:3: lv_name_0_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getEventAccess().getNameEStringParserRuleCall_0_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleEvent6011);
+            lv_name_0_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getEventRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_0_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2772:2: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt50=2;
+            int LA50_0 = input.LA(1);
+
+            if ( (LA50_0==12) ) {
+                alt50=1;
+            }
+            switch (alt50) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2772:4: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleEvent6024); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getEventAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2776:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2777:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2777:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2778:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getEventAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleEvent6045);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getEventRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleEvent6057); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getEventAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleEvent"
+
+
+    // $ANTLR start "entryRuleWeightedTactic"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2806:1: entryRuleWeightedTactic returns [EObject current=null] : iv_ruleWeightedTactic= ruleWeightedTactic EOF ;
+    public final EObject entryRuleWeightedTactic() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleWeightedTactic = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2807:2: (iv_ruleWeightedTactic= ruleWeightedTactic EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2808:2: iv_ruleWeightedTactic= ruleWeightedTactic EOF
+            {
+             newCompositeNode(grammarAccess.getWeightedTacticRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_entryRuleWeightedTactic6095);
+            iv_ruleWeightedTactic=ruleWeightedTactic();
+
+            state._fsp--;
+
+             current =iv_ruleWeightedTactic; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightedTactic6105); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleWeightedTactic"
+
+
+    // $ANTLR start "ruleWeightedTactic"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2815:1: ruleWeightedTactic returns [EObject current=null] : ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' (otherlv_6= 'tactic' otherlv_7= '=' )? ( ( ruleEString ) ) otherlv_9= ',' (otherlv_10= 'default' otherlv_11= '=' )? ( (lv_defaultWeight_12_0= ruleEDouble ) ) otherlv_13= ',' (otherlv_14= 'current' otherlv_15= '=' )? ( (lv_currentWeight_16_0= ruleEDouble ) ) (otherlv_17= ',' (otherlv_18= 'lastImpact' otherlv_19= '=' )? ( ( ruleEString ) ) )? otherlv_21= ')' ) ;
+    public final EObject ruleWeightedTactic() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        Token otherlv_14=null;
+        Token otherlv_15=null;
+        Token otherlv_17=null;
+        Token otherlv_18=null;
+        Token otherlv_19=null;
+        Token otherlv_21=null;
+        AntlrDatatypeRuleToken lv_name_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+        AntlrDatatypeRuleToken lv_defaultWeight_12_0 = null;
+
+        AntlrDatatypeRuleToken lv_currentWeight_16_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2818:28: ( ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' (otherlv_6= 'tactic' otherlv_7= '=' )? ( ( ruleEString ) ) otherlv_9= ',' (otherlv_10= 'default' otherlv_11= '=' )? ( (lv_defaultWeight_12_0= ruleEDouble ) ) otherlv_13= ',' (otherlv_14= 'current' otherlv_15= '=' )? ( (lv_currentWeight_16_0= ruleEDouble ) ) (otherlv_17= ',' (otherlv_18= 'lastImpact' otherlv_19= '=' )? ( ( ruleEString ) ) )? otherlv_21= ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2819:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' (otherlv_6= 'tactic' otherlv_7= '=' )? ( ( ruleEString ) ) otherlv_9= ',' (otherlv_10= 'default' otherlv_11= '=' )? ( (lv_defaultWeight_12_0= ruleEDouble ) ) otherlv_13= ',' (otherlv_14= 'current' otherlv_15= '=' )? ( (lv_currentWeight_16_0= ruleEDouble ) ) (otherlv_17= ',' (otherlv_18= 'lastImpact' otherlv_19= '=' )? ( ( ruleEString ) ) )? otherlv_21= ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2819:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' (otherlv_6= 'tactic' otherlv_7= '=' )? ( ( ruleEString ) ) otherlv_9= ',' (otherlv_10= 'default' otherlv_11= '=' )? ( (lv_defaultWeight_12_0= ruleEDouble ) ) otherlv_13= ',' (otherlv_14= 'current' otherlv_15= '=' )? ( (lv_currentWeight_16_0= ruleEDouble ) ) (otherlv_17= ',' (otherlv_18= 'lastImpact' otherlv_19= '=' )? ( ( ruleEString ) ) )? otherlv_21= ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2819:2: ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' (otherlv_6= 'tactic' otherlv_7= '=' )? ( ( ruleEString ) ) otherlv_9= ',' (otherlv_10= 'default' otherlv_11= '=' )? ( (lv_defaultWeight_12_0= ruleEDouble ) ) otherlv_13= ',' (otherlv_14= 'current' otherlv_15= '=' )? ( (lv_currentWeight_16_0= ruleEDouble ) ) (otherlv_17= ',' (otherlv_18= 'lastImpact' otherlv_19= '=' )? ( ( ruleEString ) ) )? otherlv_21= ')'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2819:2: ( (lv_name_0_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2820:1: (lv_name_0_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2820:1: (lv_name_0_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2821:3: lv_name_0_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getNameEStringParserRuleCall_0_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightedTactic6151);
+            lv_name_0_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_0_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2837:2: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt51=2;
+            int LA51_0 = input.LA(1);
+
+            if ( (LA51_0==12) ) {
+                alt51=1;
+            }
+            switch (alt51) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2837:4: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleWeightedTactic6164); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getWeightedTacticAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2841:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2842:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2842:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2843:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightedTactic6185);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleWeightedTactic6197); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getWeightedTacticAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightedTactic6211); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_2());
+                
+            otherlv_5=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleWeightedTactic6223); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getWeightedTacticAccess().getLeftParenthesisKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2871:1: (otherlv_6= 'tactic' otherlv_7= '=' )?
+            int alt52=2;
+            int LA52_0 = input.LA(1);
+
+            if ( (LA52_0==74) ) {
+                alt52=1;
+            }
+            switch (alt52) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2871:3: otherlv_6= 'tactic' otherlv_7= '='
+                    {
+                    otherlv_6=(Token)match(input,74,FollowSets000.FOLLOW_74_in_ruleWeightedTactic6236); 
+
+                        	newLeafNode(otherlv_6, grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0());
+                        
+                    otherlv_7=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightedTactic6248); 
+
+                        	newLeafNode(otherlv_7, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2879:3: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2880:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2880:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2881:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getWeightedTacticRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getUsedTacticTacticCrossReference_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightedTactic6273);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_9=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleWeightedTactic6285); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getWeightedTacticAccess().getCommaKeyword_6());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2898:1: (otherlv_10= 'default' otherlv_11= '=' )?
+            int alt53=2;
+            int LA53_0 = input.LA(1);
+
+            if ( (LA53_0==75) ) {
+                alt53=1;
+            }
+            switch (alt53) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2898:3: otherlv_10= 'default' otherlv_11= '='
+                    {
+                    otherlv_10=(Token)match(input,75,FollowSets000.FOLLOW_75_in_ruleWeightedTactic6298); 
+
+                        	newLeafNode(otherlv_10, grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0());
+                        
+                    otherlv_11=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightedTactic6310); 
+
+                        	newLeafNode(otherlv_11, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2906:3: ( (lv_defaultWeight_12_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2907:1: (lv_defaultWeight_12_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2907:1: (lv_defaultWeight_12_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2908:3: lv_defaultWeight_12_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_8_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleWeightedTactic6333);
+            lv_defaultWeight_12_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"defaultWeight",
+                    		lv_defaultWeight_12_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_13=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleWeightedTactic6345); 
+
+                	newLeafNode(otherlv_13, grammarAccess.getWeightedTacticAccess().getCommaKeyword_9());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2928:1: (otherlv_14= 'current' otherlv_15= '=' )?
+            int alt54=2;
+            int LA54_0 = input.LA(1);
+
+            if ( (LA54_0==76) ) {
+                alt54=1;
+            }
+            switch (alt54) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2928:3: otherlv_14= 'current' otherlv_15= '='
+                    {
+                    otherlv_14=(Token)match(input,76,FollowSets000.FOLLOW_76_in_ruleWeightedTactic6358); 
+
+                        	newLeafNode(otherlv_14, grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0());
+                        
+                    otherlv_15=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightedTactic6370); 
+
+                        	newLeafNode(otherlv_15, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2936:3: ( (lv_currentWeight_16_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2937:1: (lv_currentWeight_16_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2937:1: (lv_currentWeight_16_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2938:3: lv_currentWeight_16_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_11_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleWeightedTactic6393);
+            lv_currentWeight_16_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"currentWeight",
+                    		lv_currentWeight_16_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2954:2: (otherlv_17= ',' (otherlv_18= 'lastImpact' otherlv_19= '=' )? ( ( ruleEString ) ) )?
+            int alt56=2;
+            int LA56_0 = input.LA(1);
+
+            if ( (LA56_0==17) ) {
+                alt56=1;
+            }
+            switch (alt56) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2954:4: otherlv_17= ',' (otherlv_18= 'lastImpact' otherlv_19= '=' )? ( ( ruleEString ) )
+                    {
+                    otherlv_17=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleWeightedTactic6406); 
+
+                        	newLeafNode(otherlv_17, grammarAccess.getWeightedTacticAccess().getCommaKeyword_12_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2958:1: (otherlv_18= 'lastImpact' otherlv_19= '=' )?
+                    int alt55=2;
+                    int LA55_0 = input.LA(1);
+
+                    if ( (LA55_0==77) ) {
+                        alt55=1;
+                    }
+                    switch (alt55) {
+                        case 1 :
+                            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2958:3: otherlv_18= 'lastImpact' otherlv_19= '='
+                            {
+                            otherlv_18=(Token)match(input,77,FollowSets000.FOLLOW_77_in_ruleWeightedTactic6419); 
+
+                                	newLeafNode(otherlv_18, grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0());
+                                
+                            otherlv_19=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightedTactic6431); 
+
+                                	newLeafNode(otherlv_19, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1());
+                                
+
+                            }
+                            break;
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2966:3: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2967:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2967:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2968:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getWeightedTacticRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getLastImpactImpactCrossReference_12_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightedTactic6456);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_21=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleWeightedTactic6470); 
+
+                	newLeafNode(otherlv_21, grammarAccess.getWeightedTacticAccess().getRightParenthesisKeyword_13());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleWeightedTactic"
+
+
+    // $ANTLR start "entryRuleWeightingFunction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2993:1: entryRuleWeightingFunction returns [EObject current=null] : iv_ruleWeightingFunction= ruleWeightingFunction EOF ;
+    public final EObject entryRuleWeightingFunction() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleWeightingFunction = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2994:2: (iv_ruleWeightingFunction= ruleWeightingFunction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:2995:2: iv_ruleWeightingFunction= ruleWeightingFunction EOF
+            {
+             newCompositeNode(grammarAccess.getWeightingFunctionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightingFunction_in_entryRuleWeightingFunction6506);
+            iv_ruleWeightingFunction=ruleWeightingFunction();
+
+            state._fsp--;
+
+             current =iv_ruleWeightingFunction; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightingFunction6516); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleWeightingFunction"
+
+
+    // $ANTLR start "ruleWeightingFunction"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3002:1: ruleWeightingFunction returns [EObject current=null] : ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' otherlv_6= 'weightingFunctionImplementation' otherlv_7= '=' ( (lv_weightingFunctionImplementation_8_0= ruleEString ) ) otherlv_9= 'weightedMetrics' otherlv_10= '=' otherlv_11= '(' ( (lv_weightedMetrics_12_0= ruleWeightedMetric ) ) (otherlv_13= ',' ( (lv_weightedMetrics_14_0= ruleWeightedMetric ) ) )* otherlv_15= ')' otherlv_16= ')' ) ;
+    public final EObject ruleWeightingFunction() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        Token otherlv_15=null;
+        Token otherlv_16=null;
+        AntlrDatatypeRuleToken lv_name_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+        AntlrDatatypeRuleToken lv_weightingFunctionImplementation_8_0 = null;
+
+        EObject lv_weightedMetrics_12_0 = null;
+
+        EObject lv_weightedMetrics_14_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3005:28: ( ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' otherlv_6= 'weightingFunctionImplementation' otherlv_7= '=' ( (lv_weightingFunctionImplementation_8_0= ruleEString ) ) otherlv_9= 'weightedMetrics' otherlv_10= '=' otherlv_11= '(' ( (lv_weightedMetrics_12_0= ruleWeightedMetric ) ) (otherlv_13= ',' ( (lv_weightedMetrics_14_0= ruleWeightedMetric ) ) )* otherlv_15= ')' otherlv_16= ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3006:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' otherlv_6= 'weightingFunctionImplementation' otherlv_7= '=' ( (lv_weightingFunctionImplementation_8_0= ruleEString ) ) otherlv_9= 'weightedMetrics' otherlv_10= '=' otherlv_11= '(' ( (lv_weightedMetrics_12_0= ruleWeightedMetric ) ) (otherlv_13= ',' ( (lv_weightedMetrics_14_0= ruleWeightedMetric ) ) )* otherlv_15= ')' otherlv_16= ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3006:1: ( ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' otherlv_6= 'weightingFunctionImplementation' otherlv_7= '=' ( (lv_weightingFunctionImplementation_8_0= ruleEString ) ) otherlv_9= 'weightedMetrics' otherlv_10= '=' otherlv_11= '(' ( (lv_weightedMetrics_12_0= ruleWeightedMetric ) ) (otherlv_13= ',' ( (lv_weightedMetrics_14_0= ruleWeightedMetric ) ) )* otherlv_15= ')' otherlv_16= ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3006:2: ( (lv_name_0_0= ruleEString ) ) (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )? otherlv_4= '=' otherlv_5= '(' otherlv_6= 'weightingFunctionImplementation' otherlv_7= '=' ( (lv_weightingFunctionImplementation_8_0= ruleEString ) ) otherlv_9= 'weightedMetrics' otherlv_10= '=' otherlv_11= '(' ( (lv_weightedMetrics_12_0= ruleWeightedMetric ) ) (otherlv_13= ',' ( (lv_weightedMetrics_14_0= ruleWeightedMetric ) ) )* otherlv_15= ')' otherlv_16= ')'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3006:2: ( (lv_name_0_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3007:1: (lv_name_0_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3007:1: (lv_name_0_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3008:3: lv_name_0_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getNameEStringParserRuleCall_0_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightingFunction6562);
+            lv_name_0_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_0_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3024:2: (otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']' )?
+            int alt57=2;
+            int LA57_0 = input.LA(1);
+
+            if ( (LA57_0==12) ) {
+                alt57=1;
+            }
+            switch (alt57) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3024:4: otherlv_1= '[id:' ( (lv_id_2_0= ruleEString ) ) otherlv_3= ']'
+                    {
+                    otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleWeightingFunction6575); 
+
+                        	newLeafNode(otherlv_1, grammarAccess.getWeightingFunctionAccess().getIdKeyword_1_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3028:1: ( (lv_id_2_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3029:1: (lv_id_2_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3029:1: (lv_id_2_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3030:3: lv_id_2_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getIdEStringParserRuleCall_1_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightingFunction6596);
+                    lv_id_2_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_2_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleWeightingFunction6608); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getWeightingFunctionAccess().getRightSquareBracketKeyword_1_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightingFunction6622); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_2());
+                
+            otherlv_5=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleWeightingFunction6634); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_3());
+                
+            otherlv_6=(Token)match(input,78,FollowSets000.FOLLOW_78_in_ruleWeightingFunction6646); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationKeyword_4());
+                
+            otherlv_7=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightingFunction6658); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_5());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3066:1: ( (lv_weightingFunctionImplementation_8_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3067:1: (lv_weightingFunctionImplementation_8_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3067:1: (lv_weightingFunctionImplementation_8_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3068:3: lv_weightingFunctionImplementation_8_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionImplementationEStringParserRuleCall_6_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightingFunction6679);
+            lv_weightingFunctionImplementation_8_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"weightingFunctionImplementation",
+                    		lv_weightingFunctionImplementation_8_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_9=(Token)match(input,79,FollowSets000.FOLLOW_79_in_ruleWeightingFunction6691); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getWeightingFunctionAccess().getWeightedMetricsKeyword_7());
+                
+            otherlv_10=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightingFunction6703); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getWeightingFunctionAccess().getEqualsSignKeyword_8());
+                
+            otherlv_11=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleWeightingFunction6715); 
+
+                	newLeafNode(otherlv_11, grammarAccess.getWeightingFunctionAccess().getLeftParenthesisKeyword_9());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3096:1: ( (lv_weightedMetrics_12_0= ruleWeightedMetric ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3097:1: (lv_weightedMetrics_12_0= ruleWeightedMetric )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3097:1: (lv_weightedMetrics_12_0= ruleWeightedMetric )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3098:3: lv_weightedMetrics_12_0= ruleWeightedMetric
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_10_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedMetric_in_ruleWeightingFunction6736);
+            lv_weightedMetrics_12_0=ruleWeightedMetric();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"weightedMetrics",
+                    		lv_weightedMetrics_12_0, 
+                    		"WeightedMetric");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3114:2: (otherlv_13= ',' ( (lv_weightedMetrics_14_0= ruleWeightedMetric ) ) )*
+            loop58:
+            do {
+                int alt58=2;
+                int LA58_0 = input.LA(1);
+
+                if ( (LA58_0==17) ) {
+                    alt58=1;
+                }
+
+
+                switch (alt58) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3114:4: otherlv_13= ',' ( (lv_weightedMetrics_14_0= ruleWeightedMetric ) )
+            	    {
+            	    otherlv_13=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleWeightingFunction6749); 
+
+            	        	newLeafNode(otherlv_13, grammarAccess.getWeightingFunctionAccess().getCommaKeyword_11_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3118:1: ( (lv_weightedMetrics_14_0= ruleWeightedMetric ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3119:1: (lv_weightedMetrics_14_0= ruleWeightedMetric )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3119:1: (lv_weightedMetrics_14_0= ruleWeightedMetric )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3120:3: lv_weightedMetrics_14_0= ruleWeightedMetric
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getWeightedMetricsWeightedMetricParserRuleCall_11_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleWeightedMetric_in_ruleWeightingFunction6770);
+            	    lv_weightedMetrics_14_0=ruleWeightedMetric();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"weightedMetrics",
+            	            		lv_weightedMetrics_14_0, 
+            	            		"WeightedMetric");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop58;
+                }
+            } while (true);
+
+            otherlv_15=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleWeightingFunction6784); 
+
+                	newLeafNode(otherlv_15, grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_12());
+                
+            otherlv_16=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleWeightingFunction6796); 
+
+                	newLeafNode(otherlv_16, grammarAccess.getWeightingFunctionAccess().getRightParenthesisKeyword_13());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleWeightingFunction"
+
+
+    // $ANTLR start "entryRuleSpecification"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3152:1: entryRuleSpecification returns [EObject current=null] : iv_ruleSpecification= ruleSpecification EOF ;
+    public final EObject entryRuleSpecification() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSpecification = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3153:2: (iv_ruleSpecification= ruleSpecification EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3154:2: iv_ruleSpecification= ruleSpecification EOF
+            {
+             newCompositeNode(grammarAccess.getSpecificationRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSpecification_in_entryRuleSpecification6832);
+            iv_ruleSpecification=ruleSpecification();
+
+            state._fsp--;
+
+             current =iv_ruleSpecification; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSpecification6842); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSpecification"
+
+
+    // $ANTLR start "ruleSpecification"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3161:1: ruleSpecification returns [EObject current=null] : ( (otherlv_0= 'Specification' )? otherlv_1= '(' (otherlv_2= 'metricType' )? ( ( ruleEString ) ) otherlv_4= ',' (otherlv_5= 'relationalOperator' )? ( (lv_relationalOperator_6_0= ruleRelationalOperator ) ) otherlv_7= ',' (otherlv_8= 'value' )? ( (lv_value_9_0= ruleEDouble ) ) otherlv_10= ')' ) ;
+    public final EObject ruleSpecification() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Enumerator lv_relationalOperator_6_0 = null;
+
+        AntlrDatatypeRuleToken lv_value_9_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3164:28: ( ( (otherlv_0= 'Specification' )? otherlv_1= '(' (otherlv_2= 'metricType' )? ( ( ruleEString ) ) otherlv_4= ',' (otherlv_5= 'relationalOperator' )? ( (lv_relationalOperator_6_0= ruleRelationalOperator ) ) otherlv_7= ',' (otherlv_8= 'value' )? ( (lv_value_9_0= ruleEDouble ) ) otherlv_10= ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3165:1: ( (otherlv_0= 'Specification' )? otherlv_1= '(' (otherlv_2= 'metricType' )? ( ( ruleEString ) ) otherlv_4= ',' (otherlv_5= 'relationalOperator' )? ( (lv_relationalOperator_6_0= ruleRelationalOperator ) ) otherlv_7= ',' (otherlv_8= 'value' )? ( (lv_value_9_0= ruleEDouble ) ) otherlv_10= ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3165:1: ( (otherlv_0= 'Specification' )? otherlv_1= '(' (otherlv_2= 'metricType' )? ( ( ruleEString ) ) otherlv_4= ',' (otherlv_5= 'relationalOperator' )? ( (lv_relationalOperator_6_0= ruleRelationalOperator ) ) otherlv_7= ',' (otherlv_8= 'value' )? ( (lv_value_9_0= ruleEDouble ) ) otherlv_10= ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3165:2: (otherlv_0= 'Specification' )? otherlv_1= '(' (otherlv_2= 'metricType' )? ( ( ruleEString ) ) otherlv_4= ',' (otherlv_5= 'relationalOperator' )? ( (lv_relationalOperator_6_0= ruleRelationalOperator ) ) otherlv_7= ',' (otherlv_8= 'value' )? ( (lv_value_9_0= ruleEDouble ) ) otherlv_10= ')'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3165:2: (otherlv_0= 'Specification' )?
+            int alt59=2;
+            int LA59_0 = input.LA(1);
+
+            if ( (LA59_0==80) ) {
+                alt59=1;
+            }
+            switch (alt59) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3165:4: otherlv_0= 'Specification'
+                    {
+                    otherlv_0=(Token)match(input,80,FollowSets000.FOLLOW_80_in_ruleSpecification6880); 
+
+                        	newLeafNode(otherlv_0, grammarAccess.getSpecificationAccess().getSpecificationKeyword_0());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_1=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleSpecification6894); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_1());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3173:1: (otherlv_2= 'metricType' )?
+            int alt60=2;
+            int LA60_0 = input.LA(1);
+
+            if ( (LA60_0==81) ) {
+                alt60=1;
+            }
+            switch (alt60) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3173:3: otherlv_2= 'metricType'
+                    {
+                    otherlv_2=(Token)match(input,81,FollowSets000.FOLLOW_81_in_ruleSpecification6907); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3177:3: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3178:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3178:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3179:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getSpecificationRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeCrossReference_3_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSpecification6932);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleSpecification6944); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getSpecificationAccess().getCommaKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3196:1: (otherlv_5= 'relationalOperator' )?
+            int alt61=2;
+            int LA61_0 = input.LA(1);
+
+            if ( (LA61_0==82) ) {
+                alt61=1;
+            }
+            switch (alt61) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3196:3: otherlv_5= 'relationalOperator'
+                    {
+                    otherlv_5=(Token)match(input,82,FollowSets000.FOLLOW_82_in_ruleSpecification6957); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3200:3: ( (lv_relationalOperator_6_0= ruleRelationalOperator ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3201:1: (lv_relationalOperator_6_0= ruleRelationalOperator )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3201:1: (lv_relationalOperator_6_0= ruleRelationalOperator )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3202:3: lv_relationalOperator_6_0= ruleRelationalOperator
+            {
+             
+            	        newCompositeNode(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleRelationalOperator_in_ruleSpecification6980);
+            lv_relationalOperator_6_0=ruleRelationalOperator();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getSpecificationRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"relationalOperator",
+                    		lv_relationalOperator_6_0, 
+                    		"RelationalOperator");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_7=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleSpecification6992); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getSpecificationAccess().getCommaKeyword_7());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3222:1: (otherlv_8= 'value' )?
+            int alt62=2;
+            int LA62_0 = input.LA(1);
+
+            if ( (LA62_0==37) ) {
+                alt62=1;
+            }
+            switch (alt62) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3222:3: otherlv_8= 'value'
+                    {
+                    otherlv_8=(Token)match(input,37,FollowSets000.FOLLOW_37_in_ruleSpecification7005); 
+
+                        	newLeafNode(otherlv_8, grammarAccess.getSpecificationAccess().getValueKeyword_8());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3226:3: ( (lv_value_9_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3227:1: (lv_value_9_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3227:1: (lv_value_9_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3228:3: lv_value_9_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleSpecification7028);
+            lv_value_9_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getSpecificationRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"value",
+                    		lv_value_9_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_10=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleSpecification7040); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_10());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSpecification"
+
+
+    // $ANTLR start "entryRuleEDate"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3262:1: entryRuleEDate returns [String current=null] : iv_ruleEDate= ruleEDate EOF ;
+    public final String entryRuleEDate() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleEDate = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3263:2: (iv_ruleEDate= ruleEDate EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3264:2: iv_ruleEDate= ruleEDate EOF
+            {
+             newCompositeNode(grammarAccess.getEDateRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDate_in_entryRuleEDate7083);
+            iv_ruleEDate=ruleEDate();
+
+            state._fsp--;
+
+             current =iv_ruleEDate.getText(); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEDate7094); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleEDate"
+
+
+    // $ANTLR start "ruleEDate"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3271:1: ruleEDate returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= 'EDate' ;
+    public final AntlrDatatypeRuleToken ruleEDate() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3274:28: (kw= 'EDate' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3276:2: kw= 'EDate'
+            {
+            kw=(Token)match(input,83,FollowSets000.FOLLOW_83_in_ruleEDate7131); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getEDateAccess().getEDateKeyword()); 
+                
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleEDate"
+
+
+    // $ANTLR start "entryRuleMetricValue"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3289:1: entryRuleMetricValue returns [EObject current=null] : iv_ruleMetricValue= ruleMetricValue EOF ;
+    public final EObject entryRuleMetricValue() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleMetricValue = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3290:2: (iv_ruleMetricValue= ruleMetricValue EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3291:2: iv_ruleMetricValue= ruleMetricValue EOF
+            {
+             newCompositeNode(grammarAccess.getMetricValueRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleMetricValue_in_entryRuleMetricValue7170);
+            iv_ruleMetricValue=ruleMetricValue();
+
+            state._fsp--;
+
+             current =iv_ruleMetricValue; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleMetricValue7180); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleMetricValue"
+
+
+    // $ANTLR start "ruleMetricValue"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3298:1: ruleMetricValue returns [EObject current=null] : (otherlv_0= 'MetricValue' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'value' ( (lv_value_7_0= ruleEDouble ) ) otherlv_8= 'measuredEntity' ( ( ruleEString ) ) otherlv_10= 'metricType' ( ( ruleEString ) ) otherlv_12= '}' ) ;
+    public final EObject ruleMetricValue() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_3_0 = null;
+
+        AntlrDatatypeRuleToken lv_value_7_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3301:28: ( (otherlv_0= 'MetricValue' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'value' ( (lv_value_7_0= ruleEDouble ) ) otherlv_8= 'measuredEntity' ( ( ruleEString ) ) otherlv_10= 'metricType' ( ( ruleEString ) ) otherlv_12= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3302:1: (otherlv_0= 'MetricValue' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'value' ( (lv_value_7_0= ruleEDouble ) ) otherlv_8= 'measuredEntity' ( ( ruleEString ) ) otherlv_10= 'metricType' ( ( ruleEString ) ) otherlv_12= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3302:1: (otherlv_0= 'MetricValue' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'value' ( (lv_value_7_0= ruleEDouble ) ) otherlv_8= 'measuredEntity' ( ( ruleEString ) ) otherlv_10= 'metricType' ( ( ruleEString ) ) otherlv_12= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3302:3: otherlv_0= 'MetricValue' ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '{' otherlv_6= 'value' ( (lv_value_7_0= ruleEDouble ) ) otherlv_8= 'measuredEntity' ( ( ruleEString ) ) otherlv_10= 'metricType' ( ( ruleEString ) ) otherlv_12= '}'
+            {
+            otherlv_0=(Token)match(input,84,FollowSets000.FOLLOW_84_in_ruleMetricValue7217); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getMetricValueAccess().getMetricValueKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3306:1: ( (lv_name_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3307:1: (lv_name_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3307:1: (lv_name_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3308:3: lv_name_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getMetricValueAccess().getNameEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleMetricValue7238);
+            lv_name_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getMetricValueRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3324:2: (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )?
+            int alt63=2;
+            int LA63_0 = input.LA(1);
+
+            if ( (LA63_0==12) ) {
+                alt63=1;
+            }
+            switch (alt63) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3324:4: otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']'
+                    {
+                    otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleMetricValue7251); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getMetricValueAccess().getIdKeyword_2_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3328:1: ( (lv_id_3_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3329:1: (lv_id_3_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3329:1: (lv_id_3_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3330:3: lv_id_3_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getMetricValueAccess().getIdEStringParserRuleCall_2_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleMetricValue7272);
+                    lv_id_3_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getMetricValueRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_3_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_4=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleMetricValue7284); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getMetricValueAccess().getRightSquareBracketKeyword_2_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleMetricValue7298); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getMetricValueAccess().getLeftCurlyBracketKeyword_3());
+                
+            otherlv_6=(Token)match(input,37,FollowSets000.FOLLOW_37_in_ruleMetricValue7310); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getMetricValueAccess().getValueKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3358:1: ( (lv_value_7_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3359:1: (lv_value_7_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3359:1: (lv_value_7_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3360:3: lv_value_7_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getMetricValueAccess().getValueEDoubleParserRuleCall_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleMetricValue7331);
+            lv_value_7_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getMetricValueRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"value",
+                    		lv_value_7_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,85,FollowSets000.FOLLOW_85_in_ruleMetricValue7343); 
+
+                	newLeafNode(otherlv_8, grammarAccess.getMetricValueAccess().getMeasuredEntityKeyword_6());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3380:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3381:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3381:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3382:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getMetricValueRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getMetricValueAccess().getMeasuredEntityMeasuredEntityCrossReference_7_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleMetricValue7366);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_10=(Token)match(input,81,FollowSets000.FOLLOW_81_in_ruleMetricValue7378); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getMetricValueAccess().getMetricTypeKeyword_8());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3399:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3400:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3400:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3401:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getMetricValueRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getMetricValueAccess().getMetricTypeMetricTypeCrossReference_9_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleMetricValue7401);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_12=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleMetricValue7413); 
+
+                	newLeafNode(otherlv_12, grammarAccess.getMetricValueAccess().getRightCurlyBracketKeyword_10());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleMetricValue"
+
+
+    // $ANTLR start "entryRuleWeightedMetric"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3428:1: entryRuleWeightedMetric returns [EObject current=null] : iv_ruleWeightedMetric= ruleWeightedMetric EOF ;
+    public final EObject entryRuleWeightedMetric() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleWeightedMetric = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3429:2: (iv_ruleWeightedMetric= ruleWeightedMetric EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3430:2: iv_ruleWeightedMetric= ruleWeightedMetric EOF
+            {
+             newCompositeNode(grammarAccess.getWeightedMetricRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedMetric_in_entryRuleWeightedMetric7451);
+            iv_ruleWeightedMetric=ruleWeightedMetric();
+
+            state._fsp--;
+
+             current =iv_ruleWeightedMetric; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightedMetric7461); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleWeightedMetric"
+
+
+    // $ANTLR start "ruleWeightedMetric"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3437:1: ruleWeightedMetric returns [EObject current=null] : ( (otherlv_0= 'WeightedMetric' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '=' otherlv_6= '(' (otherlv_7= 'metricType' otherlv_8= '=' )? ( ( ruleEString ) ) otherlv_10= ',' (otherlv_11= 'weight' otherlv_12= '=' )? ( (lv_weight_13_0= ruleEDouble ) ) otherlv_14= ')' ) ;
+    public final EObject ruleWeightedMetric() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token otherlv_14=null;
+        AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_id_3_0 = null;
+
+        AntlrDatatypeRuleToken lv_weight_13_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3440:28: ( ( (otherlv_0= 'WeightedMetric' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '=' otherlv_6= '(' (otherlv_7= 'metricType' otherlv_8= '=' )? ( ( ruleEString ) ) otherlv_10= ',' (otherlv_11= 'weight' otherlv_12= '=' )? ( (lv_weight_13_0= ruleEDouble ) ) otherlv_14= ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3441:1: ( (otherlv_0= 'WeightedMetric' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '=' otherlv_6= '(' (otherlv_7= 'metricType' otherlv_8= '=' )? ( ( ruleEString ) ) otherlv_10= ',' (otherlv_11= 'weight' otherlv_12= '=' )? ( (lv_weight_13_0= ruleEDouble ) ) otherlv_14= ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3441:1: ( (otherlv_0= 'WeightedMetric' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '=' otherlv_6= '(' (otherlv_7= 'metricType' otherlv_8= '=' )? ( ( ruleEString ) ) otherlv_10= ',' (otherlv_11= 'weight' otherlv_12= '=' )? ( (lv_weight_13_0= ruleEDouble ) ) otherlv_14= ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3441:2: (otherlv_0= 'WeightedMetric' )? ( (lv_name_1_0= ruleEString ) ) (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )? otherlv_5= '=' otherlv_6= '(' (otherlv_7= 'metricType' otherlv_8= '=' )? ( ( ruleEString ) ) otherlv_10= ',' (otherlv_11= 'weight' otherlv_12= '=' )? ( (lv_weight_13_0= ruleEDouble ) ) otherlv_14= ')'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3441:2: (otherlv_0= 'WeightedMetric' )?
+            int alt64=2;
+            int LA64_0 = input.LA(1);
+
+            if ( (LA64_0==86) ) {
+                alt64=1;
+            }
+            switch (alt64) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3441:4: otherlv_0= 'WeightedMetric'
+                    {
+                    otherlv_0=(Token)match(input,86,FollowSets000.FOLLOW_86_in_ruleWeightedMetric7499); 
+
+                        	newLeafNode(otherlv_0, grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3445:3: ( (lv_name_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3446:1: (lv_name_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3446:1: (lv_name_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3447:3: lv_name_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getNameEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightedMetric7522);
+            lv_name_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightedMetricRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3463:2: (otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']' )?
+            int alt65=2;
+            int LA65_0 = input.LA(1);
+
+            if ( (LA65_0==12) ) {
+                alt65=1;
+            }
+            switch (alt65) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3463:4: otherlv_2= '[id:' ( (lv_id_3_0= ruleEString ) ) otherlv_4= ']'
+                    {
+                    otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleWeightedMetric7535); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getWeightedMetricAccess().getIdKeyword_2_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3467:1: ( (lv_id_3_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3468:1: (lv_id_3_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3468:1: (lv_id_3_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3469:3: lv_id_3_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getIdEStringParserRuleCall_2_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightedMetric7556);
+                    lv_id_3_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getWeightedMetricRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"id",
+                            		lv_id_3_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    otherlv_4=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleWeightedMetric7568); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getWeightedMetricAccess().getRightSquareBracketKeyword_2_2());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightedMetric7582); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_3());
+                
+            otherlv_6=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleWeightedMetric7594); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getWeightedMetricAccess().getLeftParenthesisKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3497:1: (otherlv_7= 'metricType' otherlv_8= '=' )?
+            int alt66=2;
+            int LA66_0 = input.LA(1);
+
+            if ( (LA66_0==81) ) {
+                alt66=1;
+            }
+            switch (alt66) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3497:3: otherlv_7= 'metricType' otherlv_8= '='
+                    {
+                    otherlv_7=(Token)match(input,81,FollowSets000.FOLLOW_81_in_ruleWeightedMetric7607); 
+
+                        	newLeafNode(otherlv_7, grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0());
+                        
+                    otherlv_8=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightedMetric7619); 
+
+                        	newLeafNode(otherlv_8, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3505:3: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3506:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3506:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3507:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getWeightedMetricRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getMetricTypeMetricTypeCrossReference_6_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightedMetric7644);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_10=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleWeightedMetric7656); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getWeightedMetricAccess().getCommaKeyword_7());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3524:1: (otherlv_11= 'weight' otherlv_12= '=' )?
+            int alt67=2;
+            int LA67_0 = input.LA(1);
+
+            if ( (LA67_0==87) ) {
+                alt67=1;
+            }
+            switch (alt67) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3524:3: otherlv_11= 'weight' otherlv_12= '='
+                    {
+                    otherlv_11=(Token)match(input,87,FollowSets000.FOLLOW_87_in_ruleWeightedMetric7669); 
+
+                        	newLeafNode(otherlv_11, grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0());
+                        
+                    otherlv_12=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleWeightedMetric7681); 
+
+                        	newLeafNode(otherlv_12, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3532:3: ( (lv_weight_13_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3533:1: (lv_weight_13_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3533:1: (lv_weight_13_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3534:3: lv_weight_13_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightedMetricAccess().getWeightEDoubleParserRuleCall_9_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleWeightedMetric7704);
+            lv_weight_13_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightedMetricRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"weight",
+                    		lv_weight_13_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_14=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleWeightedMetric7716); 
+
+                	newLeafNode(otherlv_14, grammarAccess.getWeightedMetricAccess().getRightParenthesisKeyword_10());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleWeightedMetric"
+
+
+    // $ANTLR start "ruleAdaptationScope"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3562:1: ruleAdaptationScope returns [Enumerator current=null] : ( (enumLiteral_0= 'NOT_SET' ) | (enumLiteral_1= 'THIS' ) | (enumLiteral_2= 'LEAST_UTILIZED_FIRST' ) | (enumLiteral_3= 'MOST_UTILIZED_FIRST' ) | (enumLiteral_4= 'RANDOM' ) | (enumLiteral_5= 'ALL' ) ) ;
+    public final Enumerator ruleAdaptationScope() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+        Token enumLiteral_4=null;
+        Token enumLiteral_5=null;
+
+         enterRule(); 
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3564:28: ( ( (enumLiteral_0= 'NOT_SET' ) | (enumLiteral_1= 'THIS' ) | (enumLiteral_2= 'LEAST_UTILIZED_FIRST' ) | (enumLiteral_3= 'MOST_UTILIZED_FIRST' ) | (enumLiteral_4= 'RANDOM' ) | (enumLiteral_5= 'ALL' ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3565:1: ( (enumLiteral_0= 'NOT_SET' ) | (enumLiteral_1= 'THIS' ) | (enumLiteral_2= 'LEAST_UTILIZED_FIRST' ) | (enumLiteral_3= 'MOST_UTILIZED_FIRST' ) | (enumLiteral_4= 'RANDOM' ) | (enumLiteral_5= 'ALL' ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3565:1: ( (enumLiteral_0= 'NOT_SET' ) | (enumLiteral_1= 'THIS' ) | (enumLiteral_2= 'LEAST_UTILIZED_FIRST' ) | (enumLiteral_3= 'MOST_UTILIZED_FIRST' ) | (enumLiteral_4= 'RANDOM' ) | (enumLiteral_5= 'ALL' ) )
+            int alt68=6;
+            switch ( input.LA(1) ) {
+            case 88:
+                {
+                alt68=1;
+                }
+                break;
+            case 89:
+                {
+                alt68=2;
+                }
+                break;
+            case 90:
+                {
+                alt68=3;
+                }
+                break;
+            case 91:
+                {
+                alt68=4;
+                }
+                break;
+            case 92:
+                {
+                alt68=5;
+                }
+                break;
+            case 93:
+                {
+                alt68=6;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 68, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt68) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3565:2: (enumLiteral_0= 'NOT_SET' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3565:2: (enumLiteral_0= 'NOT_SET' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3565:4: enumLiteral_0= 'NOT_SET'
+                    {
+                    enumLiteral_0=(Token)match(input,88,FollowSets000.FOLLOW_88_in_ruleAdaptationScope7766); 
+
+                            current = grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getAdaptationScopeAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3571:6: (enumLiteral_1= 'THIS' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3571:6: (enumLiteral_1= 'THIS' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3571:8: enumLiteral_1= 'THIS'
+                    {
+                    enumLiteral_1=(Token)match(input,89,FollowSets000.FOLLOW_89_in_ruleAdaptationScope7783); 
+
+                            current = grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getAdaptationScopeAccess().getTHISEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3577:6: (enumLiteral_2= 'LEAST_UTILIZED_FIRST' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3577:6: (enumLiteral_2= 'LEAST_UTILIZED_FIRST' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3577:8: enumLiteral_2= 'LEAST_UTILIZED_FIRST'
+                    {
+                    enumLiteral_2=(Token)match(input,90,FollowSets000.FOLLOW_90_in_ruleAdaptationScope7800); 
+
+                            current = grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getAdaptationScopeAccess().getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3583:6: (enumLiteral_3= 'MOST_UTILIZED_FIRST' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3583:6: (enumLiteral_3= 'MOST_UTILIZED_FIRST' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3583:8: enumLiteral_3= 'MOST_UTILIZED_FIRST'
+                    {
+                    enumLiteral_3=(Token)match(input,91,FollowSets000.FOLLOW_91_in_ruleAdaptationScope7817); 
+
+                            current = grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_3, grammarAccess.getAdaptationScopeAccess().getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3589:6: (enumLiteral_4= 'RANDOM' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3589:6: (enumLiteral_4= 'RANDOM' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3589:8: enumLiteral_4= 'RANDOM'
+                    {
+                    enumLiteral_4=(Token)match(input,92,FollowSets000.FOLLOW_92_in_ruleAdaptationScope7834); 
+
+                            current = grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_4, grammarAccess.getAdaptationScopeAccess().getRANDOMEnumLiteralDeclaration_4()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3595:6: (enumLiteral_5= 'ALL' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3595:6: (enumLiteral_5= 'ALL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3595:8: enumLiteral_5= 'ALL'
+                    {
+                    enumLiteral_5=(Token)match(input,93,FollowSets000.FOLLOW_93_in_ruleAdaptationScope7851); 
+
+                            current = grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_5, grammarAccess.getAdaptationScopeAccess().getALLEnumLiteralDeclaration_5()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAdaptationScope"
+
+
+    // $ANTLR start "ruleAdaptationDirection"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3605:1: ruleAdaptationDirection returns [Enumerator current=null] : ( (enumLiteral_0= 'NOT_SET' ) | (enumLiteral_1= 'INCREASE' ) | (enumLiteral_2= 'DECREASE' ) | (enumLiteral_3= 'MIGRATE' ) ) ;
+    public final Enumerator ruleAdaptationDirection() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+
+         enterRule(); 
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3607:28: ( ( (enumLiteral_0= 'NOT_SET' ) | (enumLiteral_1= 'INCREASE' ) | (enumLiteral_2= 'DECREASE' ) | (enumLiteral_3= 'MIGRATE' ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3608:1: ( (enumLiteral_0= 'NOT_SET' ) | (enumLiteral_1= 'INCREASE' ) | (enumLiteral_2= 'DECREASE' ) | (enumLiteral_3= 'MIGRATE' ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3608:1: ( (enumLiteral_0= 'NOT_SET' ) | (enumLiteral_1= 'INCREASE' ) | (enumLiteral_2= 'DECREASE' ) | (enumLiteral_3= 'MIGRATE' ) )
+            int alt69=4;
+            switch ( input.LA(1) ) {
+            case 88:
+                {
+                alt69=1;
+                }
+                break;
+            case 94:
+                {
+                alt69=2;
+                }
+                break;
+            case 95:
+                {
+                alt69=3;
+                }
+                break;
+            case 96:
+                {
+                alt69=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 69, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt69) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3608:2: (enumLiteral_0= 'NOT_SET' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3608:2: (enumLiteral_0= 'NOT_SET' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3608:4: enumLiteral_0= 'NOT_SET'
+                    {
+                    enumLiteral_0=(Token)match(input,88,FollowSets000.FOLLOW_88_in_ruleAdaptationDirection7896); 
+
+                            current = grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getAdaptationDirectionAccess().getNOT_SETEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3614:6: (enumLiteral_1= 'INCREASE' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3614:6: (enumLiteral_1= 'INCREASE' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3614:8: enumLiteral_1= 'INCREASE'
+                    {
+                    enumLiteral_1=(Token)match(input,94,FollowSets000.FOLLOW_94_in_ruleAdaptationDirection7913); 
+
+                            current = grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getAdaptationDirectionAccess().getINCREASEEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3620:6: (enumLiteral_2= 'DECREASE' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3620:6: (enumLiteral_2= 'DECREASE' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3620:8: enumLiteral_2= 'DECREASE'
+                    {
+                    enumLiteral_2=(Token)match(input,95,FollowSets000.FOLLOW_95_in_ruleAdaptationDirection7930); 
+
+                            current = grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getAdaptationDirectionAccess().getDECREASEEnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3626:6: (enumLiteral_3= 'MIGRATE' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3626:6: (enumLiteral_3= 'MIGRATE' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3626:8: enumLiteral_3= 'MIGRATE'
+                    {
+                    enumLiteral_3=(Token)match(input,96,FollowSets000.FOLLOW_96_in_ruleAdaptationDirection7947); 
+
+                            current = grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_3, grammarAccess.getAdaptationDirectionAccess().getMIGRATEEnumLiteralDeclaration_3()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAdaptationDirection"
+
+
+    // $ANTLR start "ruleRelationalOperator"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3636:1: ruleRelationalOperator returns [Enumerator current=null] : ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '>' ) | (enumLiteral_3= '>=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) | (enumLiteral_6= 'EQUAL' ) | (enumLiteral_7= 'NOT_EQUAL' ) | (enumLiteral_8= 'GREATER' ) | (enumLiteral_9= 'GREATER_EQUAL' ) | (enumLiteral_10= 'LESS' ) | (enumLiteral_11= 'LESS_EQUAL' ) ) ;
+    public final Enumerator ruleRelationalOperator() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+        Token enumLiteral_4=null;
+        Token enumLiteral_5=null;
+        Token enumLiteral_6=null;
+        Token enumLiteral_7=null;
+        Token enumLiteral_8=null;
+        Token enumLiteral_9=null;
+        Token enumLiteral_10=null;
+        Token enumLiteral_11=null;
+
+         enterRule(); 
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3638:28: ( ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '>' ) | (enumLiteral_3= '>=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) | (enumLiteral_6= 'EQUAL' ) | (enumLiteral_7= 'NOT_EQUAL' ) | (enumLiteral_8= 'GREATER' ) | (enumLiteral_9= 'GREATER_EQUAL' ) | (enumLiteral_10= 'LESS' ) | (enumLiteral_11= 'LESS_EQUAL' ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3639:1: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '>' ) | (enumLiteral_3= '>=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) | (enumLiteral_6= 'EQUAL' ) | (enumLiteral_7= 'NOT_EQUAL' ) | (enumLiteral_8= 'GREATER' ) | (enumLiteral_9= 'GREATER_EQUAL' ) | (enumLiteral_10= 'LESS' ) | (enumLiteral_11= 'LESS_EQUAL' ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3639:1: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '>' ) | (enumLiteral_3= '>=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) | (enumLiteral_6= 'EQUAL' ) | (enumLiteral_7= 'NOT_EQUAL' ) | (enumLiteral_8= 'GREATER' ) | (enumLiteral_9= 'GREATER_EQUAL' ) | (enumLiteral_10= 'LESS' ) | (enumLiteral_11= 'LESS_EQUAL' ) )
+            int alt70=12;
+            switch ( input.LA(1) ) {
+            case 97:
+                {
+                alt70=1;
+                }
+                break;
+            case 98:
+                {
+                alt70=2;
+                }
+                break;
+            case 99:
+                {
+                alt70=3;
+                }
+                break;
+            case 100:
+                {
+                alt70=4;
+                }
+                break;
+            case 101:
+                {
+                alt70=5;
+                }
+                break;
+            case 102:
+                {
+                alt70=6;
+                }
+                break;
+            case 103:
+                {
+                alt70=7;
+                }
+                break;
+            case 104:
+                {
+                alt70=8;
+                }
+                break;
+            case 105:
+                {
+                alt70=9;
+                }
+                break;
+            case 106:
+                {
+                alt70=10;
+                }
+                break;
+            case 107:
+                {
+                alt70=11;
+                }
+                break;
+            case 108:
+                {
+                alt70=12;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 70, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt70) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3639:2: (enumLiteral_0= '==' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3639:2: (enumLiteral_0= '==' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3639:4: enumLiteral_0= '=='
+                    {
+                    enumLiteral_0=(Token)match(input,97,FollowSets000.FOLLOW_97_in_ruleRelationalOperator7992); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_0, grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_0()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3645:6: (enumLiteral_1= '!=' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3645:6: (enumLiteral_1= '!=' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3645:8: enumLiteral_1= '!='
+                    {
+                    enumLiteral_1=(Token)match(input,98,FollowSets000.FOLLOW_98_in_ruleRelationalOperator8009); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_1, grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_1()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3651:6: (enumLiteral_2= '>' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3651:6: (enumLiteral_2= '>' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3651:8: enumLiteral_2= '>'
+                    {
+                    enumLiteral_2=(Token)match(input,99,FollowSets000.FOLLOW_99_in_ruleRelationalOperator8026); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_2, grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_2()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3657:6: (enumLiteral_3= '>=' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3657:6: (enumLiteral_3= '>=' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3657:8: enumLiteral_3= '>='
+                    {
+                    enumLiteral_3=(Token)match(input,100,FollowSets000.FOLLOW_100_in_ruleRelationalOperator8043); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_3, grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_3()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3663:6: (enumLiteral_4= '<' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3663:6: (enumLiteral_4= '<' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3663:8: enumLiteral_4= '<'
+                    {
+                    enumLiteral_4=(Token)match(input,101,FollowSets000.FOLLOW_101_in_ruleRelationalOperator8060); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_4, grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_4()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3669:6: (enumLiteral_5= '<=' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3669:6: (enumLiteral_5= '<=' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3669:8: enumLiteral_5= '<='
+                    {
+                    enumLiteral_5=(Token)match(input,102,FollowSets000.FOLLOW_102_in_ruleRelationalOperator8077); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_5, grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_5()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3675:6: (enumLiteral_6= 'EQUAL' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3675:6: (enumLiteral_6= 'EQUAL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3675:8: enumLiteral_6= 'EQUAL'
+                    {
+                    enumLiteral_6=(Token)match(input,103,FollowSets000.FOLLOW_103_in_ruleRelationalOperator8094); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_6, grammarAccess.getRelationalOperatorAccess().getEQUALEnumLiteralDeclaration_6()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3681:6: (enumLiteral_7= 'NOT_EQUAL' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3681:6: (enumLiteral_7= 'NOT_EQUAL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3681:8: enumLiteral_7= 'NOT_EQUAL'
+                    {
+                    enumLiteral_7=(Token)match(input,104,FollowSets000.FOLLOW_104_in_ruleRelationalOperator8111); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_7, grammarAccess.getRelationalOperatorAccess().getNOT_EQUALEnumLiteralDeclaration_7()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 9 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3687:6: (enumLiteral_8= 'GREATER' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3687:6: (enumLiteral_8= 'GREATER' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3687:8: enumLiteral_8= 'GREATER'
+                    {
+                    enumLiteral_8=(Token)match(input,105,FollowSets000.FOLLOW_105_in_ruleRelationalOperator8128); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_8, grammarAccess.getRelationalOperatorAccess().getGREATEREnumLiteralDeclaration_8()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 10 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3693:6: (enumLiteral_9= 'GREATER_EQUAL' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3693:6: (enumLiteral_9= 'GREATER_EQUAL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3693:8: enumLiteral_9= 'GREATER_EQUAL'
+                    {
+                    enumLiteral_9=(Token)match(input,106,FollowSets000.FOLLOW_106_in_ruleRelationalOperator8145); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_9, grammarAccess.getRelationalOperatorAccess().getGREATER_EQUALEnumLiteralDeclaration_9()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 11 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3699:6: (enumLiteral_10= 'LESS' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3699:6: (enumLiteral_10= 'LESS' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3699:8: enumLiteral_10= 'LESS'
+                    {
+                    enumLiteral_10=(Token)match(input,107,FollowSets000.FOLLOW_107_in_ruleRelationalOperator8162); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_10, grammarAccess.getRelationalOperatorAccess().getLESSEnumLiteralDeclaration_10()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+                case 12 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3705:6: (enumLiteral_11= 'LESS_EQUAL' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3705:6: (enumLiteral_11= 'LESS_EQUAL' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/parser/antlr/internal/InternalStaLang.g:3705:8: enumLiteral_11= 'LESS_EQUAL'
+                    {
+                    enumLiteral_11=(Token)match(input,108,FollowSets000.FOLLOW_108_in_ruleRelationalOperator8179); 
+
+                            current = grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
+                            newLeafNode(enumLiteral_11, grammarAccess.getRelationalOperatorAccess().getLESS_EQUALEnumLiteralDeclaration_11()); 
+                        
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleRelationalOperator"
+
+    // Delegated rules
+
+
+    protected DFA8 dfa8 = new DFA8(this);
+    static final String DFA8_eotS =
+        "\12\uffff";
+    static final String DFA8_eofS =
+        "\12\uffff";
+    static final String DFA8_minS =
+        "\1\14\3\uffff\1\4\2\uffff\2\15\1\54";
+    static final String DFA8_maxS =
+        "\1\64\3\uffff\1\5\2\uffff\2\15\1\57";
+    static final String DFA8_acceptS =
+        "\1\uffff\1\1\1\2\1\3\1\uffff\1\4\1\5\3\uffff";
+    static final String DFA8_specialS =
+        "\12\uffff}>";
+    static final String[] DFA8_transitionS = {
+            "\1\4\34\uffff\1\1\1\2\2\3\1\uffff\2\5\4\uffff\1\6",
+            "",
+            "",
+            "",
+            "\1\7\1\10",
+            "",
+            "",
+            "\1\11",
+            "\1\11",
+            "\1\3\2\uffff\1\5"
+    };
+
+    static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS);
+    static final short[] DFA8_eof = DFA.unpackEncodedString(DFA8_eofS);
+    static final char[] DFA8_min = DFA.unpackEncodedStringToUnsignedChars(DFA8_minS);
+    static final char[] DFA8_max = DFA.unpackEncodedStringToUnsignedChars(DFA8_maxS);
+    static final short[] DFA8_accept = DFA.unpackEncodedString(DFA8_acceptS);
+    static final short[] DFA8_special = DFA.unpackEncodedString(DFA8_specialS);
+    static final short[][] DFA8_transition;
+
+    static {
+        int numStates = DFA8_transitionS.length;
+        DFA8_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA8_transition[i] = DFA.unpackEncodedString(DFA8_transitionS[i]);
+        }
+    }
+
+    class DFA8 extends DFA {
+
+        public DFA8(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 8;
+            this.eot = DFA8_eot;
+            this.eof = DFA8_eof;
+            this.min = DFA8_min;
+            this.max = DFA8_max;
+            this.accept = DFA8_accept;
+            this.special = DFA8_special;
+            this.transition = DFA8_transition;
+        }
+        public String getDescription() {
+            return "396:1: (this_StartAction_0= ruleStartAction | this_StopAction_1= ruleStopAction | this_LoopAction_2= ruleLoopAction | this_BranchAction_3= ruleBranchAction | this_ActionReference_4= ruleActionReference )";
+        }
+    }
+ 
+
+    
+    private static class FollowSets000 {
+        public static final BitSet FOLLOW_ruleAdaptationProcess_in_entryRuleAdaptationProcess75 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAdaptationProcess85 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleImportDeclaration_in_ruleAdaptationProcess131 = new BitSet(new long[]{0x0000010000000800L});
+        public static final BitSet FOLLOW_11_in_ruleAdaptationProcess144 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAdaptationProcess165 = new BitSet(new long[]{0x0000000000005000L});
+        public static final BitSet FOLLOW_12_in_ruleAdaptationProcess178 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAdaptationProcess199 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleAdaptationProcess211 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleAdaptationProcess225 = new BitSet(new long[]{0x0000000000048000L});
+        public static final BitSet FOLLOW_15_in_ruleAdaptationProcess238 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleAdaptationProcess250 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleParameter_in_ruleAdaptationProcess271 = new BitSet(new long[]{0x0000000000060000L});
+        public static final BitSet FOLLOW_17_in_ruleAdaptationProcess284 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleParameter_in_ruleAdaptationProcess305 = new BitSet(new long[]{0x0000000000060000L});
+        public static final BitSet FOLLOW_18_in_ruleAdaptationProcess321 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleAdaptationProcess333 = new BitSet(new long[]{0x0000004000000000L});
+        public static final BitSet FOLLOW_ruleOverallGoal_in_ruleAdaptationProcess354 = new BitSet(new long[]{0x0000000000080000L});
+        public static final BitSet FOLLOW_19_in_ruleAdaptationProcess366 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleAdaptationProcess378 = new BitSet(new long[]{0x0000000040000030L});
+        public static final BitSet FOLLOW_ruleAction_in_ruleAdaptationProcess399 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_17_in_ruleAdaptationProcess412 = new BitSet(new long[]{0x0000000040000030L});
+        public static final BitSet FOLLOW_ruleAction_in_ruleAdaptationProcess433 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_20_in_ruleAdaptationProcess447 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleAdaptationProcess459 = new BitSet(new long[]{0x0000000000800030L});
+        public static final BitSet FOLLOW_ruleTactic_in_ruleAdaptationProcess480 = new BitSet(new long[]{0x0000000000220000L});
+        public static final BitSet FOLLOW_17_in_ruleAdaptationProcess493 = new BitSet(new long[]{0x0000000000800030L});
+        public static final BitSet FOLLOW_ruleTactic_in_ruleAdaptationProcess514 = new BitSet(new long[]{0x0000000000220000L});
+        public static final BitSet FOLLOW_21_in_ruleAdaptationProcess528 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleAdaptationProcess540 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleStrategy_in_ruleAdaptationProcess561 = new BitSet(new long[]{0x0000000000420000L});
+        public static final BitSet FOLLOW_17_in_ruleAdaptationProcess574 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleStrategy_in_ruleAdaptationProcess595 = new BitSet(new long[]{0x0000000000420000L});
+        public static final BitSet FOLLOW_22_in_ruleAdaptationProcess609 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_entryRuleAbstractControlFlowElement647 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAbstractControlFlowElement657 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStartAction_in_ruleAbstractControlFlowElement704 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStopAction_in_ruleAbstractControlFlowElement731 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoopAction_in_ruleAbstractControlFlowElement758 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranchAction_in_ruleAbstractControlFlowElement785 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleActionReference_in_ruleAbstractControlFlowElement812 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVariationType_in_entryRuleVariationType847 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleVariationType857 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePropertyRange_in_ruleVariationType904 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSetOfConfigurations_in_ruleVariationType931 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_entryRuleEString967 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEString978 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_STRING_in_ruleEString1018 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_ruleEString1044 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTactic_in_entryRuleTactic1089 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleTactic1099 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_ruleTactic1137 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1160 = new BitSet(new long[]{0x0000000000005000L});
+        public static final BitSet FOLLOW_12_in_ruleTactic1173 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1194 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleTactic1206 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleTactic1220 = new BitSet(new long[]{0x0000000001000000L});
+        public static final BitSet FOLLOW_24_in_ruleTactic1232 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_ruleTactic1253 = new BitSet(new long[]{0x0000000022400000L});
+        public static final BitSet FOLLOW_25_in_ruleTactic1266 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleTactic1278 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleTactic1290 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1313 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_17_in_ruleTactic1326 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1349 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_28_in_ruleTactic1363 = new BitSet(new long[]{0x0000000020400000L});
+        public static final BitSet FOLLOW_29_in_ruleTactic1378 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleTactic1390 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1413 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleTactic1427 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAction_in_entryRuleAction1463 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAction1473 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_30_in_ruleAction1511 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1534 = new BitSet(new long[]{0x0000000000005000L});
+        public static final BitSet FOLLOW_12_in_ruleAction1547 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1568 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleAction1580 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleAction1594 = new BitSet(new long[]{0x0000000080000000L});
+        public static final BitSet FOLLOW_31_in_ruleAction1606 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleAction1618 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_ruleAdaptationActionOperation_in_ruleAction1639 = new BitSet(new long[]{0x0000000100000000L});
+        public static final BitSet FOLLOW_32_in_ruleAction1651 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleAction1663 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1686 = new BitSet(new long[]{0x0000000022400000L});
+        public static final BitSet FOLLOW_25_in_ruleAction1699 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleAction1711 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleAction1723 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1746 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_17_in_ruleAction1759 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1782 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_28_in_ruleAction1796 = new BitSet(new long[]{0x0000000020400000L});
+        public static final BitSet FOLLOW_29_in_ruleAction1811 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleAction1823 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1846 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleAction1860 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStrategy_in_entryRuleStrategy1896 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStrategy1906 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStrategy1952 = new BitSet(new long[]{0x0000000000005000L});
+        public static final BitSet FOLLOW_12_in_ruleStrategy1965 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStrategy1986 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleStrategy1998 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleStrategy2012 = new BitSet(new long[]{0x0000000200000000L});
+        public static final BitSet FOLLOW_33_in_ruleStrategy2024 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleStrategy2036 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStrategy2059 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_34_in_ruleStrategy2071 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleStrategy2083 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEvent_in_ruleStrategy2104 = new BitSet(new long[]{0x0000000000100000L});
+        public static final BitSet FOLLOW_20_in_ruleStrategy2116 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleStrategy2128 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleStrategy2140 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_ruleStrategy2161 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_17_in_ruleStrategy2174 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_ruleStrategy2195 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_28_in_ruleStrategy2209 = new BitSet(new long[]{0x0000000800000030L});
+        public static final BitSet FOLLOW_35_in_ruleStrategy2222 = new BitSet(new long[]{0x0000000800000030L});
+        public static final BitSet FOLLOW_ruleWeightingFunction_in_ruleStrategy2245 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleStrategy2257 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleParameter_in_entryRuleParameter2293 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleParameter2303 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleParameter2349 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleParameter2361 = new BitSet(new long[]{0x0000001000000030L});
+        public static final BitSet FOLLOW_36_in_ruleParameter2374 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleParameter2386 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleParameter2409 = new BitSet(new long[]{0x0000000000420000L});
+        public static final BitSet FOLLOW_17_in_ruleParameter2422 = new BitSet(new long[]{0x0000002000000030L});
+        public static final BitSet FOLLOW_37_in_ruleParameter2435 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleParameter2447 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleParameter2470 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleParameter2484 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleOverallGoal_in_entryRuleOverallGoal2520 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleOverallGoal2530 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_38_in_ruleOverallGoal2567 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleOverallGoal2588 = new BitSet(new long[]{0x0000008000000000L});
+        public static final BitSet FOLLOW_39_in_ruleOverallGoal2600 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleOverallGoal2612 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleOverallGoal2624 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleObjective_in_ruleOverallGoal2645 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_17_in_ruleOverallGoal2658 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleObjective_in_ruleOverallGoal2679 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_28_in_ruleOverallGoal2693 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleImportDeclaration_in_entryRuleImportDeclaration2729 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleImportDeclaration2739 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_ruleImportDeclaration2776 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleImportDeclaration2797 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_entryRuleAdaptationPlan2833 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAdaptationPlan2843 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAdaptationPlan2889 = new BitSet(new long[]{0x0000000004001000L});
+        public static final BitSet FOLLOW_12_in_ruleAdaptationPlan2902 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAdaptationPlan2923 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleAdaptationPlan2935 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleAdaptationPlan2949 = new BitSet(new long[]{0x0000000008000002L});
+        public static final BitSet FOLLOW_27_in_ruleAdaptationPlan2962 = new BitSet(new long[]{0x0010DE0000001000L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_ruleAdaptationPlan2983 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_17_in_ruleAdaptationPlan2996 = new BitSet(new long[]{0x0010DE0000001000L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_ruleAdaptationPlan3017 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_28_in_ruleAdaptationPlan3031 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStartAction_in_entryRuleStartAction3069 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStartAction3079 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_41_in_ruleStartAction3125 = new BitSet(new long[]{0x0000000000001002L});
+        public static final BitSet FOLLOW_12_in_ruleStartAction3138 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStartAction3159 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleStartAction3171 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStopAction_in_entryRuleStopAction3209 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStopAction3219 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_ruleStopAction3265 = new BitSet(new long[]{0x0000000000001002L});
+        public static final BitSet FOLLOW_12_in_ruleStopAction3278 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStopAction3299 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleStopAction3311 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoopAction_in_entryRuleLoopAction3349 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleLoopAction3359 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_ruleLoopAction3397 = new BitSet(new long[]{0x0000100000001000L});
+        public static final BitSet FOLLOW_12_in_ruleLoopAction3412 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleLoopAction3433 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleLoopAction3445 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_44_in_ruleLoopAction3459 = new BitSet(new long[]{0x0000200000000000L});
+        public static final BitSet FOLLOW_45_in_ruleLoopAction3471 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleLoopAction3483 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleLoopAction3506 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleLoopAction3518 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_ruleLoopAction3539 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleLoopAction3551 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranchAction_in_entryRuleBranchAction3587 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleBranchAction3597 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_ruleBranchAction3635 = new BitSet(new long[]{0x0000800000001000L});
+        public static final BitSet FOLLOW_12_in_ruleBranchAction3650 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleBranchAction3671 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleBranchAction3683 = new BitSet(new long[]{0x0000800000000000L});
+        public static final BitSet FOLLOW_47_in_ruleBranchAction3697 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleBranchAction3709 = new BitSet(new long[]{0x0001000000000000L});
+        public static final BitSet FOLLOW_48_in_ruleBranchAction3721 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleBranchAction3733 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleBranchAction3756 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_17_in_ruleBranchAction3768 = new BitSet(new long[]{0x0002000000000000L});
+        public static final BitSet FOLLOW_49_in_ruleBranchAction3780 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleBranchAction3792 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleBranchAction3813 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleBranchAction3825 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_50_in_ruleBranchAction3837 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleBranchAction3849 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_ruleBranchAction3870 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleBranchAction3882 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_51_in_ruleBranchAction3894 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleBranchAction3906 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_ruleBranchAction3927 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleBranchAction3939 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleActionReference_in_entryRuleActionReference3975 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleActionReference3985 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_ruleActionReference4022 = new BitSet(new long[]{0x0000000008001000L});
+        public static final BitSet FOLLOW_12_in_ruleActionReference4035 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleActionReference4056 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleActionReference4068 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleActionReference4082 = new BitSet(new long[]{0x0020000000000000L});
+        public static final BitSet FOLLOW_53_in_ruleActionReference4094 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleActionReference4117 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleActionReference4129 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationActionOperation_in_entryRuleAdaptationActionOperation4165 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAdaptationActionOperation4175 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_27_in_ruleAdaptationActionOperation4212 = new BitSet(new long[]{0x0000000000000000L,0x00000001C1000000L});
+        public static final BitSet FOLLOW_ruleAdaptationDirection_in_ruleAdaptationActionOperation4233 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_17_in_ruleAdaptationActionOperation4245 = new BitSet(new long[]{0x0000000000000000L,0x000000003F000000L});
+        public static final BitSet FOLLOW_ruleAdaptationScope_in_ruleAdaptationActionOperation4266 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleAdaptationActionOperation4278 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleModelVariableConfigurationRange_in_entryRuleModelVariableConfigurationRange4314 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleModelVariableConfigurationRange4324 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_54_in_ruleModelVariableConfigurationRange4361 = new BitSet(new long[]{0x0000000000005000L});
+        public static final BitSet FOLLOW_12_in_ruleModelVariableConfigurationRange4374 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange4395 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleModelVariableConfigurationRange4407 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleModelVariableConfigurationRange4421 = new BitSet(new long[]{0x0080000000000000L});
+        public static final BitSet FOLLOW_55_in_ruleModelVariableConfigurationRange4433 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange4454 = new BitSet(new long[]{0x0100000000000000L});
+        public static final BitSet FOLLOW_56_in_ruleModelVariableConfigurationRange4466 = new BitSet(new long[]{0x6000000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleModelVariableConfigurationRange4487 = new BitSet(new long[]{0x0200000000000000L});
+        public static final BitSet FOLLOW_57_in_ruleModelVariableConfigurationRange4499 = new BitSet(new long[]{0x6000000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleModelVariableConfigurationRange4520 = new BitSet(new long[]{0x0400000000000000L});
+        public static final BitSet FOLLOW_58_in_ruleModelVariableConfigurationRange4532 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange4555 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleModelVariableConfigurationRange4567 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleModelEntityConfigurationRange_in_entryRuleModelEntityConfigurationRange4603 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleModelEntityConfigurationRange4613 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_59_in_ruleModelEntityConfigurationRange4650 = new BitSet(new long[]{0x0000000000005000L});
+        public static final BitSet FOLLOW_12_in_ruleModelEntityConfigurationRange4663 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4684 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleModelEntityConfigurationRange4696 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleModelEntityConfigurationRange4710 = new BitSet(new long[]{0x0080000000000000L});
+        public static final BitSet FOLLOW_55_in_ruleModelEntityConfigurationRange4722 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4743 = new BitSet(new long[]{0x0400000000000000L});
+        public static final BitSet FOLLOW_58_in_ruleModelEntityConfigurationRange4755 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4778 = new BitSet(new long[]{0x1000000000000000L});
+        public static final BitSet FOLLOW_60_in_ruleModelEntityConfigurationRange4790 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000012L});
+        public static final BitSet FOLLOW_ruleVariationType_in_ruleModelEntityConfigurationRange4811 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleModelEntityConfigurationRange4823 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_entryRuleEDouble4860 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEDouble4871 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_61_in_ruleEDouble4910 = new BitSet(new long[]{0x4000000000000040L});
+        public static final BitSet FOLLOW_RULE_INT_in_ruleEDouble4928 = new BitSet(new long[]{0x4000000000000000L});
+        public static final BitSet FOLLOW_62_in_ruleEDouble4948 = new BitSet(new long[]{0x0000000000000040L});
+        public static final BitSet FOLLOW_RULE_INT_in_ruleEDouble4963 = new BitSet(new long[]{0x8000000000000002L,0x0000000000000001L});
+        public static final BitSet FOLLOW_63_in_ruleEDouble4983 = new BitSet(new long[]{0x2000000000000040L});
+        public static final BitSet FOLLOW_64_in_ruleEDouble5002 = new BitSet(new long[]{0x2000000000000040L});
+        public static final BitSet FOLLOW_61_in_ruleEDouble5017 = new BitSet(new long[]{0x0000000000000040L});
+        public static final BitSet FOLLOW_RULE_INT_in_ruleEDouble5034 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePropertyRange_in_entryRulePropertyRange5081 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePropertyRange5091 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rulePropertyRange5128 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_rulePropertyRange5140 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+        public static final BitSet FOLLOW_66_in_rulePropertyRange5152 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+        public static final BitSet FOLLOW_ruleOclConstraint_in_rulePropertyRange5173 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+        public static final BitSet FOLLOW_67_in_rulePropertyRange5185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+        public static final BitSet FOLLOW_ruleOclConstraint_in_rulePropertyRange5206 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_rulePropertyRange5218 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSetOfConfigurations_in_entryRuleSetOfConfigurations5254 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleSetOfConfigurations5264 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_68_in_ruleSetOfConfigurations5301 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleSetOfConfigurations5313 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000060L});
+        public static final BitSet FOLLOW_69_in_ruleSetOfConfigurations5326 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleSetOfConfigurations5338 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleSetOfConfigurations5361 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_17_in_ruleSetOfConfigurations5374 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleSetOfConfigurations5397 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_28_in_ruleSetOfConfigurations5411 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+        public static final BitSet FOLLOW_70_in_ruleSetOfConfigurations5425 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+        public static final BitSet FOLLOW_ruleOclConstraint_in_ruleSetOfConfigurations5446 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleSetOfConfigurations5458 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleOclConstraint_in_entryRuleOclConstraint5494 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleOclConstraint5504 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_71_in_ruleOclConstraint5541 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleOclConstraint5562 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleOclConstraint5574 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+        public static final BitSet FOLLOW_72_in_ruleOclConstraint5586 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleOclConstraint5607 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleOclConstraint5619 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleObjective_in_entryRuleObjective5655 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleObjective5665 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleObjective5711 = new BitSet(new long[]{0x0000000000005000L});
+        public static final BitSet FOLLOW_12_in_ruleObjective5724 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleObjective5745 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleObjective5757 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleObjective5771 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+        public static final BitSet FOLLOW_73_in_ruleObjective5783 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleObjective5795 = new BitSet(new long[]{0x0000000008000000L,0x0000000000010000L});
+        public static final BitSet FOLLOW_ruleSpecification_in_ruleObjective5817 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_27_in_ruleObjective5836 = new BitSet(new long[]{0x0000000008000000L,0x0000000000010000L});
+        public static final BitSet FOLLOW_ruleSpecification_in_ruleObjective5857 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_17_in_ruleObjective5870 = new BitSet(new long[]{0x0000000008000000L,0x0000000000010000L});
+        public static final BitSet FOLLOW_ruleSpecification_in_ruleObjective5891 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_28_in_ruleObjective5905 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleObjective5919 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent5955 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEvent5965 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleEvent6011 = new BitSet(new long[]{0x0000000000001002L});
+        public static final BitSet FOLLOW_12_in_ruleEvent6024 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleEvent6045 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleEvent6057 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_entryRuleWeightedTactic6095 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightedTactic6105 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightedTactic6151 = new BitSet(new long[]{0x0000000004001000L});
+        public static final BitSet FOLLOW_12_in_ruleWeightedTactic6164 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightedTactic6185 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleWeightedTactic6197 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightedTactic6211 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleWeightedTactic6223 = new BitSet(new long[]{0x0000000000000030L,0x0000000000000400L});
+        public static final BitSet FOLLOW_74_in_ruleWeightedTactic6236 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightedTactic6248 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightedTactic6273 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_17_in_ruleWeightedTactic6285 = new BitSet(new long[]{0x6000000000000040L,0x0000000000000800L});
+        public static final BitSet FOLLOW_75_in_ruleWeightedTactic6298 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightedTactic6310 = new BitSet(new long[]{0x6000000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleWeightedTactic6333 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_17_in_ruleWeightedTactic6345 = new BitSet(new long[]{0x6000000000000040L,0x0000000000001000L});
+        public static final BitSet FOLLOW_76_in_ruleWeightedTactic6358 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightedTactic6370 = new BitSet(new long[]{0x6000000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleWeightedTactic6393 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_17_in_ruleWeightedTactic6406 = new BitSet(new long[]{0x0000000000000030L,0x0000000000002000L});
+        public static final BitSet FOLLOW_77_in_ruleWeightedTactic6419 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightedTactic6431 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightedTactic6456 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleWeightedTactic6470 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightingFunction_in_entryRuleWeightingFunction6506 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightingFunction6516 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightingFunction6562 = new BitSet(new long[]{0x0000000004001000L});
+        public static final BitSet FOLLOW_12_in_ruleWeightingFunction6575 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightingFunction6596 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleWeightingFunction6608 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightingFunction6622 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleWeightingFunction6634 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+        public static final BitSet FOLLOW_78_in_ruleWeightingFunction6646 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightingFunction6658 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightingFunction6679 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+        public static final BitSet FOLLOW_79_in_ruleWeightingFunction6691 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightingFunction6703 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleWeightingFunction6715 = new BitSet(new long[]{0x0000000000000030L,0x0000000000400000L});
+        public static final BitSet FOLLOW_ruleWeightedMetric_in_ruleWeightingFunction6736 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_17_in_ruleWeightingFunction6749 = new BitSet(new long[]{0x0000000000000030L,0x0000000000400000L});
+        public static final BitSet FOLLOW_ruleWeightedMetric_in_ruleWeightingFunction6770 = new BitSet(new long[]{0x0000000010020000L});
+        public static final BitSet FOLLOW_28_in_ruleWeightingFunction6784 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleWeightingFunction6796 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpecification_in_entryRuleSpecification6832 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleSpecification6842 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_80_in_ruleSpecification6880 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleSpecification6894 = new BitSet(new long[]{0x0000000000000030L,0x0000000000020000L});
+        public static final BitSet FOLLOW_81_in_ruleSpecification6907 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleSpecification6932 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_17_in_ruleSpecification6944 = new BitSet(new long[]{0x0000000000000000L,0x00001FFE00040000L});
+        public static final BitSet FOLLOW_82_in_ruleSpecification6957 = new BitSet(new long[]{0x0000000000000000L,0x00001FFE00040000L});
+        public static final BitSet FOLLOW_ruleRelationalOperator_in_ruleSpecification6980 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_17_in_ruleSpecification6992 = new BitSet(new long[]{0x6000002000000040L});
+        public static final BitSet FOLLOW_37_in_ruleSpecification7005 = new BitSet(new long[]{0x6000000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleSpecification7028 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleSpecification7040 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDate_in_entryRuleEDate7083 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEDate7094 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_83_in_ruleEDate7131 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleMetricValue_in_entryRuleMetricValue7170 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleMetricValue7180 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_84_in_ruleMetricValue7217 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleMetricValue7238 = new BitSet(new long[]{0x0000000000005000L});
+        public static final BitSet FOLLOW_12_in_ruleMetricValue7251 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleMetricValue7272 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleMetricValue7284 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleMetricValue7298 = new BitSet(new long[]{0x0000002000000000L});
+        public static final BitSet FOLLOW_37_in_ruleMetricValue7310 = new BitSet(new long[]{0x6000000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleMetricValue7331 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+        public static final BitSet FOLLOW_85_in_ruleMetricValue7343 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleMetricValue7366 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+        public static final BitSet FOLLOW_81_in_ruleMetricValue7378 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleMetricValue7401 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleMetricValue7413 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedMetric_in_entryRuleWeightedMetric7451 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightedMetric7461 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_86_in_ruleWeightedMetric7499 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightedMetric7522 = new BitSet(new long[]{0x0000000004001000L});
+        public static final BitSet FOLLOW_12_in_ruleWeightedMetric7535 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightedMetric7556 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleWeightedMetric7568 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightedMetric7582 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleWeightedMetric7594 = new BitSet(new long[]{0x0000000000000030L,0x0000000000020000L});
+        public static final BitSet FOLLOW_81_in_ruleWeightedMetric7607 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightedMetric7619 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightedMetric7644 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_17_in_ruleWeightedMetric7656 = new BitSet(new long[]{0x6000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_87_in_ruleWeightedMetric7669 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_26_in_ruleWeightedMetric7681 = new BitSet(new long[]{0x6000000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleWeightedMetric7704 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_28_in_ruleWeightedMetric7716 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_88_in_ruleAdaptationScope7766 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_89_in_ruleAdaptationScope7783 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_90_in_ruleAdaptationScope7800 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_91_in_ruleAdaptationScope7817 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_92_in_ruleAdaptationScope7834 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_93_in_ruleAdaptationScope7851 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_88_in_ruleAdaptationDirection7896 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_94_in_ruleAdaptationDirection7913 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_95_in_ruleAdaptationDirection7930 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_96_in_ruleAdaptationDirection7947 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_97_in_ruleRelationalOperator7992 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_98_in_ruleRelationalOperator8009 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_99_in_ruleRelationalOperator8026 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_100_in_ruleRelationalOperator8043 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_101_in_ruleRelationalOperator8060 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_102_in_ruleRelationalOperator8077 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_103_in_ruleRelationalOperator8094 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_104_in_ruleRelationalOperator8111 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_105_in_ruleRelationalOperator8128 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_106_in_ruleRelationalOperator8145 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_107_in_ruleRelationalOperator8162 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_108_in_ruleRelationalOperator8179 = new BitSet(new long[]{0x0000000000000002L});
+    }
+
+
+}
\ No newline at end of file
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSemanticSequencer.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSemanticSequencer.java
new file mode 100644
index 0000000000000000000000000000000000000000..8e1a00c1cddcba15ab406cf8defd6240e6926abb
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSemanticSequencer.java
@@ -0,0 +1,614 @@
+package edu.kit.ipd.descartes.mm.adaptation.sta.serializer;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import edu.kit.ipd.descartes.mm.adaptation.Action;
+import edu.kit.ipd.descartes.mm.adaptation.ActionReference;
+import edu.kit.ipd.descartes.mm.adaptation.AdaptationActionOperation;
+import edu.kit.ipd.descartes.mm.adaptation.AdaptationPackage;
+import edu.kit.ipd.descartes.mm.adaptation.AdaptationPlan;
+import edu.kit.ipd.descartes.mm.adaptation.AdaptationProcess;
+import edu.kit.ipd.descartes.mm.adaptation.BranchAction;
+import edu.kit.ipd.descartes.mm.adaptation.Event;
+import edu.kit.ipd.descartes.mm.adaptation.ImportDeclaration;
+import edu.kit.ipd.descartes.mm.adaptation.LoopAction;
+import edu.kit.ipd.descartes.mm.adaptation.Objective;
+import edu.kit.ipd.descartes.mm.adaptation.OverallGoal;
+import edu.kit.ipd.descartes.mm.adaptation.Parameter;
+import edu.kit.ipd.descartes.mm.adaptation.Specification;
+import edu.kit.ipd.descartes.mm.adaptation.StartAction;
+import edu.kit.ipd.descartes.mm.adaptation.StopAction;
+import edu.kit.ipd.descartes.mm.adaptation.Strategy;
+import edu.kit.ipd.descartes.mm.adaptation.Tactic;
+import edu.kit.ipd.descartes.mm.adaptation.WeightedMetric;
+import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic;
+import edu.kit.ipd.descartes.mm.adaptation.WeightingFunction;
+import edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+import edu.kit.ipd.descartes.mm.adaptationpoints.AdaptationpointsPackage;
+import edu.kit.ipd.descartes.mm.adaptationpoints.ModelEntityConfigurationRange;
+import edu.kit.ipd.descartes.mm.adaptationpoints.ModelVariableConfigurationRange;
+import edu.kit.ipd.descartes.mm.adaptationpoints.OclConstraint;
+import edu.kit.ipd.descartes.mm.adaptationpoints.PropertyRange;
+import edu.kit.ipd.descartes.mm.adaptationpoints.SetOfConfigurations;
+import edu.kit.ipd.descartes.perfdatarepo.Impact;
+import edu.kit.ipd.descartes.perfdatarepo.MeasuredEntity;
+import edu.kit.ipd.descartes.perfdatarepo.MetricType;
+import edu.kit.ipd.descartes.perfdatarepo.MetricValue;
+import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoPackage;
+import edu.kit.ipd.descartes.perfdatarepo.Result;
+import org.eclipse.emf.ecore.EObject;
+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.AbstractDelegatingSemanticSequencer;
+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("all")
+public abstract class AbstractStaLangSemanticSequencer extends AbstractDelegatingSemanticSequencer {
+
+	@Inject
+	private StaLangGrammarAccess grammarAccess;
+	
+	public void createSequence(EObject context, EObject semanticObject) {
+		if(semanticObject.eClass().getEPackage() == AdaptationPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case AdaptationPackage.ACTION:
+				if(context == grammarAccess.getActionRule()) {
+					sequence_Action(context, (Action) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.ACTION_REFERENCE:
+				if(context == grammarAccess.getAbstractControlFlowElementRule() ||
+				   context == grammarAccess.getActionReferenceRule()) {
+					sequence_ActionReference(context, (ActionReference) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.ADAPTATION_ACTION_OPERATION:
+				if(context == grammarAccess.getAdaptationActionOperationRule()) {
+					sequence_AdaptationActionOperation(context, (AdaptationActionOperation) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.ADAPTATION_PLAN:
+				if(context == grammarAccess.getAdaptationPlanRule()) {
+					sequence_AdaptationPlan(context, (AdaptationPlan) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.ADAPTATION_PROCESS:
+				if(context == grammarAccess.getAdaptationProcessRule()) {
+					sequence_AdaptationProcess(context, (AdaptationProcess) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.BRANCH_ACTION:
+				if(context == grammarAccess.getAbstractControlFlowElementRule() ||
+				   context == grammarAccess.getBranchActionRule()) {
+					sequence_BranchAction(context, (BranchAction) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.EVENT:
+				if(context == grammarAccess.getEventRule()) {
+					sequence_Event(context, (Event) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.IMPORT_DECLARATION:
+				if(context == grammarAccess.getImportDeclarationRule()) {
+					sequence_ImportDeclaration(context, (ImportDeclaration) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.LOOP_ACTION:
+				if(context == grammarAccess.getAbstractControlFlowElementRule() ||
+				   context == grammarAccess.getLoopActionRule()) {
+					sequence_LoopAction(context, (LoopAction) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.OBJECTIVE:
+				if(context == grammarAccess.getObjectiveRule()) {
+					sequence_Objective(context, (Objective) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.OVERALL_GOAL:
+				if(context == grammarAccess.getOverallGoalRule()) {
+					sequence_OverallGoal(context, (OverallGoal) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.PARAMETER:
+				if(context == grammarAccess.getParameterRule()) {
+					sequence_Parameter(context, (Parameter) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.SPECIFICATION:
+				if(context == grammarAccess.getSpecificationRule()) {
+					sequence_Specification(context, (Specification) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.START_ACTION:
+				if(context == grammarAccess.getAbstractControlFlowElementRule() ||
+				   context == grammarAccess.getStartActionRule()) {
+					sequence_StartAction(context, (StartAction) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.STOP_ACTION:
+				if(context == grammarAccess.getAbstractControlFlowElementRule() ||
+				   context == grammarAccess.getStopActionRule()) {
+					sequence_StopAction(context, (StopAction) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.STRATEGY:
+				if(context == grammarAccess.getStrategyRule()) {
+					sequence_Strategy(context, (Strategy) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.TACTIC:
+				if(context == grammarAccess.getTacticRule()) {
+					sequence_Tactic(context, (Tactic) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.WEIGHTED_METRIC:
+				if(context == grammarAccess.getWeightedMetricRule()) {
+					sequence_WeightedMetric(context, (WeightedMetric) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.WEIGHTED_TACTIC:
+				if(context == grammarAccess.getWeightedTacticRule()) {
+					sequence_WeightedTactic(context, (WeightedTactic) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationPackage.WEIGHTING_FUNCTION:
+				if(context == grammarAccess.getWeightingFunctionRule()) {
+					sequence_WeightingFunction(context, (WeightingFunction) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == AdaptationpointsPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case AdaptationpointsPackage.MODEL_ENTITY_CONFIGURATION_RANGE:
+				if(context == grammarAccess.getAdaptationPointRule() ||
+				   context == grammarAccess.getModelEntityConfigurationRangeRule()) {
+					sequence_ModelEntityConfigurationRange(context, (ModelEntityConfigurationRange) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationpointsPackage.MODEL_VARIABLE_CONFIGURATION_RANGE:
+				if(context == grammarAccess.getAdaptationPointRule() ||
+				   context == grammarAccess.getModelVariableConfigurationRangeRule()) {
+					sequence_ModelVariableConfigurationRange(context, (ModelVariableConfigurationRange) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationpointsPackage.OCL_CONSTRAINT:
+				if(context == grammarAccess.getOclConstraintRule()) {
+					sequence_OclConstraint(context, (OclConstraint) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationpointsPackage.PROPERTY_RANGE:
+				if(context == grammarAccess.getPropertyRangeRule() ||
+				   context == grammarAccess.getVariationTypeRule()) {
+					sequence_PropertyRange(context, (PropertyRange) semanticObject); 
+					return; 
+				}
+				else break;
+			case AdaptationpointsPackage.SET_OF_CONFIGURATIONS:
+				if(context == grammarAccess.getSetOfConfigurationsRule() ||
+				   context == grammarAccess.getVariationTypeRule()) {
+					sequence_SetOfConfigurations(context, (SetOfConfigurations) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == PerfdatarepoPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case PerfdatarepoPackage.IMPACT:
+				if(context == grammarAccess.getImpactRule()) {
+					sequence_Impact(context, (Impact) semanticObject); 
+					return; 
+				}
+				else break;
+			case PerfdatarepoPackage.MEASURED_ENTITY:
+				if(context == grammarAccess.getMeasuredEntityRule()) {
+					sequence_MeasuredEntity(context, (MeasuredEntity) semanticObject); 
+					return; 
+				}
+				else break;
+			case PerfdatarepoPackage.METRIC_TYPE:
+				if(context == grammarAccess.getMetricTypeRule()) {
+					sequence_MetricType(context, (MetricType) semanticObject); 
+					return; 
+				}
+				else break;
+			case PerfdatarepoPackage.METRIC_VALUE:
+				if(context == grammarAccess.getMetricValueRule()) {
+					sequence_MetricValue(context, (MetricValue) semanticObject); 
+					return; 
+				}
+				else break;
+			case PerfdatarepoPackage.RESULT:
+				if(context == grammarAccess.getResultRule()) {
+					sequence_Result(context, (Result) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+	}
+	
+	/**
+	 * Constraint:
+	 *     (id=EString? refersTo=[Action|EString])
+	 */
+	protected void sequence_ActionReference(EObject context, ActionReference semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=EString 
+	 *         id=EString? 
+	 *         adaptationActionOperation=AdaptationActionOperation 
+	 *         referredAdaptationPoint=[AdaptationPoint|EString] 
+	 *         (inputParams+=[Parameter|EString] inputParams+=[Parameter|EString]*)? 
+	 *         outputParam=[Parameter|EString]?
+	 *     )
+	 */
+	protected void sequence_Action(EObject context, Action semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (adaptationOperationDirection=AdaptationDirection adaptationOperationScope=AdaptationScope)
+	 */
+	protected void sequence_AdaptationActionOperation(EObject context, AdaptationActionOperation semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, AdaptationPackage.Literals.ADAPTATION_ACTION_OPERATION__ADAPTATION_OPERATION_SCOPE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationPackage.Literals.ADAPTATION_ACTION_OPERATION__ADAPTATION_OPERATION_SCOPE));
+			if(transientValues.isValueTransient(semanticObject, AdaptationPackage.Literals.ADAPTATION_ACTION_OPERATION__ADAPTATION_OPERATION_DIRECTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationPackage.Literals.ADAPTATION_ACTION_OPERATION__ADAPTATION_OPERATION_DIRECTION));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0(), semanticObject.getAdaptationOperationDirection());
+		feeder.accept(grammarAccess.getAdaptationActionOperationAccess().getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0(), semanticObject.getAdaptationOperationScope());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=EString id=EString? (steps+=AbstractControlFlowElement steps+=AbstractControlFlowElement*)?)
+	 */
+	protected void sequence_AdaptationPlan(EObject context, AdaptationPlan semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         importDeclaration+=ImportDeclaration* 
+	 *         name=EString 
+	 *         id=EString? 
+	 *         (parameters+=Parameter parameters+=Parameter*)? 
+	 *         goal=OverallGoal 
+	 *         actions+=Action 
+	 *         actions+=Action* 
+	 *         tactics+=Tactic 
+	 *         tactics+=Tactic* 
+	 *         strategies+=Strategy 
+	 *         strategies+=Strategy*
+	 *     )
+	 */
+	protected void sequence_AdaptationProcess(EObject context, AdaptationProcess semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (id=EString? context=[Entity|EString] condition=EString conditionTrueBranch=AdaptationPlan conditionFalseBranch=AdaptationPlan)
+	 */
+	protected void sequence_BranchAction(EObject context, BranchAction semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=EString id=EString?)
+	 */
+	protected void sequence_Event(EObject context, Event semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (id=EString? name=EString before=[Result|EString] after=[Result|EString])
+	 */
+	protected void sequence_Impact(EObject context, Impact semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     importURI=EString
+	 */
+	protected void sequence_ImportDeclaration(EObject context, ImportDeclaration semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, AdaptationPackage.Literals.IMPORT_DECLARATION__IMPORT_URI) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationPackage.Literals.IMPORT_DECLARATION__IMPORT_URI));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getImportDeclarationAccess().getImportURIEStringParserRuleCall_1_0(), semanticObject.getImportURI());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (id=EString? counter=[Parameter|EString] body=AdaptationPlan)
+	 */
+	protected void sequence_LoopAction(EObject context, LoopAction semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=EString id=EString? metricTypes+=[MetricType|EString] metricTypes+=[MetricType|EString]*)
+	 */
+	protected void sequence_MeasuredEntity(EObject context, MeasuredEntity semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (id=EString? name=EString)
+	 */
+	protected void sequence_MetricType(EObject context, MetricType semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=EString id=EString? value=EDouble measuredEntity=[MeasuredEntity|EString] metricType=[MetricType|EString])
+	 */
+	protected void sequence_MetricValue(EObject context, MetricValue semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (id=EString? name=EString adaptableEntity=[Entity|EString] variationPossibility=VariationType)
+	 */
+	protected void sequence_ModelEntityConfigurationRange(EObject context, ModelEntityConfigurationRange semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (id=EString? name=EString minValue=EDouble maxValue=EDouble adaptableEntity=[AdaptableEntity|EString])
+	 */
+	protected void sequence_ModelVariableConfigurationRange(EObject context, ModelVariableConfigurationRange semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=EString id=EString? (specifications+=Specification | (specifications+=Specification specifications+=Specification*)))
+	 */
+	protected void sequence_Objective(EObject context, Objective semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=EString oclString=EString)
+	 */
+	protected void sequence_OclConstraint(EObject context, OclConstraint semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, AdaptationpointsPackage.Literals.OCL_CONSTRAINT__OCL_STRING) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationpointsPackage.Literals.OCL_CONSTRAINT__OCL_STRING));
+			if(transientValues.isValueTransient(semanticObject, AdaptationpointsPackage.Literals.OCL_CONSTRAINT__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationpointsPackage.Literals.OCL_CONSTRAINT__NAME));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getOclConstraintAccess().getNameEStringParserRuleCall_1_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_4_0(), semanticObject.getOclString());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (description=EString objectives+=Objective objectives+=Objective*)
+	 */
+	protected void sequence_OverallGoal(EObject context, OverallGoal semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=EString type=EString value=EString?)
+	 */
+	protected void sequence_Parameter(EObject context, Parameter semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (minValueConstraint=OclConstraint maxValueConstraint=OclConstraint)
+	 */
+	protected void sequence_PropertyRange(EObject context, PropertyRange semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, AdaptationpointsPackage.Literals.PROPERTY_RANGE__MIN_VALUE_CONSTRAINT) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationpointsPackage.Literals.PROPERTY_RANGE__MIN_VALUE_CONSTRAINT));
+			if(transientValues.isValueTransient(semanticObject, AdaptationpointsPackage.Literals.PROPERTY_RANGE__MAX_VALUE_CONSTRAINT) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationpointsPackage.Literals.PROPERTY_RANGE__MAX_VALUE_CONSTRAINT));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintParserRuleCall_3_0(), semanticObject.getMinValueConstraint());
+		feeder.accept(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintParserRuleCall_5_0(), semanticObject.getMaxValueConstraint());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (id=EString? name=EString timestamp=EDate metricValues+=MetricValue metricValues+=MetricValue*)
+	 */
+	protected void sequence_Result(EObject context, Result semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     ((variants+=[Entity|EString] variants+=[Entity|EString]*)? valueConstraint=OclConstraint)
+	 */
+	protected void sequence_SetOfConfigurations(EObject context, SetOfConfigurations semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (metricType=[MetricType|EString] relationalOperator=RelationalOperator value=EDouble)
+	 */
+	protected void sequence_Specification(EObject context, Specification semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, AdaptationPackage.Literals.SPECIFICATION__METRIC_TYPE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationPackage.Literals.SPECIFICATION__METRIC_TYPE));
+			if(transientValues.isValueTransient(semanticObject, AdaptationPackage.Literals.SPECIFICATION__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationPackage.Literals.SPECIFICATION__VALUE));
+			if(transientValues.isValueTransient(semanticObject, AdaptationPackage.Literals.SPECIFICATION__RELATIONAL_OPERATOR) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, AdaptationPackage.Literals.SPECIFICATION__RELATIONAL_OPERATOR));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getSpecificationAccess().getMetricTypeMetricTypeEStringParserRuleCall_3_0_1(), semanticObject.getMetricType());
+		feeder.accept(grammarAccess.getSpecificationAccess().getRelationalOperatorRelationalOperatorEnumRuleCall_6_0(), semanticObject.getRelationalOperator());
+		feeder.accept(grammarAccess.getSpecificationAccess().getValueEDoubleParserRuleCall_9_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (id=EString?)
+	 */
+	protected void sequence_StartAction(EObject context, StartAction semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (id=EString?)
+	 */
+	protected void sequence_StopAction(EObject context, StopAction semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=EString 
+	 *         id=EString? 
+	 *         objective=[Objective|EString] 
+	 *         triggeringEvents=Event 
+	 *         tactics+=WeightedTactic 
+	 *         tactics+=WeightedTactic* 
+	 *         weightingFunction=WeightingFunction
+	 *     )
+	 */
+	protected void sequence_Strategy(EObject context, Strategy semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=EString 
+	 *         id=EString? 
+	 *         implementedPlan=AdaptationPlan 
+	 *         (inputParams+=[Parameter|EString] inputParams+=[Parameter|EString]*)? 
+	 *         outputParam=[Parameter|EString]?
+	 *     )
+	 */
+	protected void sequence_Tactic(EObject context, Tactic semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=EString id=EString? metricType=[MetricType|EString] weight=EDouble)
+	 */
+	protected void sequence_WeightedMetric(EObject context, WeightedMetric semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=EString 
+	 *         id=EString? 
+	 *         usedTactic=[Tactic|EString] 
+	 *         defaultWeight=EDouble 
+	 *         currentWeight=EDouble 
+	 *         lastImpact=[Impact|EString]?
+	 *     )
+	 */
+	protected void sequence_WeightedTactic(EObject context, WeightedTactic semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=EString id=EString? weightingFunctionImplementation=EString weightedMetrics+=WeightedMetric weightedMetrics+=WeightedMetric*)
+	 */
+	protected void sequence_WeightingFunction(EObject context, WeightingFunction semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSyntacticSequencer.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSyntacticSequencer.java
new file mode 100644
index 0000000000000000000000000000000000000000..866ec5af32da88a88d8a30447226b13edc3265a0
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/AbstractStaLangSyntacticSequencer.java
@@ -0,0 +1,259 @@
+package edu.kit.ipd.descartes.mm.adaptation.sta.serializer;
+
+import com.google.inject.Inject;
+import edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+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.GrammarAlias.GroupAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+
+@SuppressWarnings("all")
+public abstract class AbstractStaLangSyntacticSequencer extends AbstractSyntacticSequencer {
+
+	protected StaLangGrammarAccess grammarAccess;
+	protected AbstractElementAlias match_Action_ActionKeyword_0_q;
+	protected AbstractElementAlias match_BranchAction_BranchActionKeyword_0_q;
+	protected AbstractElementAlias match_LoopAction_LoopActionKeyword_0_q;
+	protected AbstractElementAlias match_Parameter___TypeKeyword_2_0_EqualsSignKeyword_2_1__q;
+	protected AbstractElementAlias match_Parameter___ValueKeyword_4_1_0_EqualsSignKeyword_4_1_1__q;
+	protected AbstractElementAlias match_Specification_MetricTypeKeyword_2_q;
+	protected AbstractElementAlias match_Specification_RelationalOperatorKeyword_5_q;
+	protected AbstractElementAlias match_Specification_SpecificationKeyword_0_q;
+	protected AbstractElementAlias match_Specification_ValueKeyword_8_q;
+	protected AbstractElementAlias match_Strategy_WeightingFunctionKeyword_15_q;
+	protected AbstractElementAlias match_Tactic_TacticKeyword_0_q;
+	protected AbstractElementAlias match_WeightedMetric_WeightedMetricKeyword_0_q;
+	protected AbstractElementAlias match_WeightedMetric___MetricTypeKeyword_5_0_EqualsSignKeyword_5_1__q;
+	protected AbstractElementAlias match_WeightedMetric___WeightKeyword_8_0_EqualsSignKeyword_8_1__q;
+	protected AbstractElementAlias match_WeightedTactic___CurrentKeyword_10_0_EqualsSignKeyword_10_1__q;
+	protected AbstractElementAlias match_WeightedTactic___DefaultKeyword_7_0_EqualsSignKeyword_7_1__q;
+	protected AbstractElementAlias match_WeightedTactic___LastImpactKeyword_12_1_0_EqualsSignKeyword_12_1_1__q;
+	protected AbstractElementAlias match_WeightedTactic___TacticKeyword_4_0_EqualsSignKeyword_4_1__q;
+	
+	@Inject
+	protected void init(IGrammarAccess access) {
+		grammarAccess = (StaLangGrammarAccess) access;
+		match_Action_ActionKeyword_0_q = new TokenAlias(false, true, grammarAccess.getActionAccess().getActionKeyword_0());
+		match_BranchAction_BranchActionKeyword_0_q = new TokenAlias(false, true, grammarAccess.getBranchActionAccess().getBranchActionKeyword_0());
+		match_LoopAction_LoopActionKeyword_0_q = new TokenAlias(false, true, grammarAccess.getLoopActionAccess().getLoopActionKeyword_0());
+		match_Parameter___TypeKeyword_2_0_EqualsSignKeyword_2_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getParameterAccess().getTypeKeyword_2_0()), new TokenAlias(false, false, grammarAccess.getParameterAccess().getEqualsSignKeyword_2_1()));
+		match_Parameter___ValueKeyword_4_1_0_EqualsSignKeyword_4_1_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getParameterAccess().getValueKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getParameterAccess().getEqualsSignKeyword_4_1_1()));
+		match_Specification_MetricTypeKeyword_2_q = new TokenAlias(false, true, grammarAccess.getSpecificationAccess().getMetricTypeKeyword_2());
+		match_Specification_RelationalOperatorKeyword_5_q = new TokenAlias(false, true, grammarAccess.getSpecificationAccess().getRelationalOperatorKeyword_5());
+		match_Specification_SpecificationKeyword_0_q = new TokenAlias(false, true, grammarAccess.getSpecificationAccess().getSpecificationKeyword_0());
+		match_Specification_ValueKeyword_8_q = new TokenAlias(false, true, grammarAccess.getSpecificationAccess().getValueKeyword_8());
+		match_Strategy_WeightingFunctionKeyword_15_q = new TokenAlias(false, true, grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_15());
+		match_Tactic_TacticKeyword_0_q = new TokenAlias(false, true, grammarAccess.getTacticAccess().getTacticKeyword_0());
+		match_WeightedMetric_WeightedMetricKeyword_0_q = new TokenAlias(false, true, grammarAccess.getWeightedMetricAccess().getWeightedMetricKeyword_0());
+		match_WeightedMetric___MetricTypeKeyword_5_0_EqualsSignKeyword_5_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getWeightedMetricAccess().getMetricTypeKeyword_5_0()), new TokenAlias(false, false, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_5_1()));
+		match_WeightedMetric___WeightKeyword_8_0_EqualsSignKeyword_8_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getWeightedMetricAccess().getWeightKeyword_8_0()), new TokenAlias(false, false, grammarAccess.getWeightedMetricAccess().getEqualsSignKeyword_8_1()));
+		match_WeightedTactic___CurrentKeyword_10_0_EqualsSignKeyword_10_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getWeightedTacticAccess().getCurrentKeyword_10_0()), new TokenAlias(false, false, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_10_1()));
+		match_WeightedTactic___DefaultKeyword_7_0_EqualsSignKeyword_7_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getWeightedTacticAccess().getDefaultKeyword_7_0()), new TokenAlias(false, false, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_7_1()));
+		match_WeightedTactic___LastImpactKeyword_12_1_0_EqualsSignKeyword_12_1_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getWeightedTacticAccess().getLastImpactKeyword_12_1_0()), new TokenAlias(false, false, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_12_1_1()));
+		match_WeightedTactic___TacticKeyword_4_0_EqualsSignKeyword_4_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getWeightedTacticAccess().getTacticKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getWeightedTacticAccess().getEqualsSignKeyword_4_1()));
+	}
+	
+	@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);
+			if(match_Action_ActionKeyword_0_q.equals(syntax))
+				emit_Action_ActionKeyword_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_BranchAction_BranchActionKeyword_0_q.equals(syntax))
+				emit_BranchAction_BranchActionKeyword_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_LoopAction_LoopActionKeyword_0_q.equals(syntax))
+				emit_LoopAction_LoopActionKeyword_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Parameter___TypeKeyword_2_0_EqualsSignKeyword_2_1__q.equals(syntax))
+				emit_Parameter___TypeKeyword_2_0_EqualsSignKeyword_2_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Parameter___ValueKeyword_4_1_0_EqualsSignKeyword_4_1_1__q.equals(syntax))
+				emit_Parameter___ValueKeyword_4_1_0_EqualsSignKeyword_4_1_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Specification_MetricTypeKeyword_2_q.equals(syntax))
+				emit_Specification_MetricTypeKeyword_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Specification_RelationalOperatorKeyword_5_q.equals(syntax))
+				emit_Specification_RelationalOperatorKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Specification_SpecificationKeyword_0_q.equals(syntax))
+				emit_Specification_SpecificationKeyword_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Specification_ValueKeyword_8_q.equals(syntax))
+				emit_Specification_ValueKeyword_8_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Strategy_WeightingFunctionKeyword_15_q.equals(syntax))
+				emit_Strategy_WeightingFunctionKeyword_15_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Tactic_TacticKeyword_0_q.equals(syntax))
+				emit_Tactic_TacticKeyword_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_WeightedMetric_WeightedMetricKeyword_0_q.equals(syntax))
+				emit_WeightedMetric_WeightedMetricKeyword_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_WeightedMetric___MetricTypeKeyword_5_0_EqualsSignKeyword_5_1__q.equals(syntax))
+				emit_WeightedMetric___MetricTypeKeyword_5_0_EqualsSignKeyword_5_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_WeightedMetric___WeightKeyword_8_0_EqualsSignKeyword_8_1__q.equals(syntax))
+				emit_WeightedMetric___WeightKeyword_8_0_EqualsSignKeyword_8_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_WeightedTactic___CurrentKeyword_10_0_EqualsSignKeyword_10_1__q.equals(syntax))
+				emit_WeightedTactic___CurrentKeyword_10_0_EqualsSignKeyword_10_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_WeightedTactic___DefaultKeyword_7_0_EqualsSignKeyword_7_1__q.equals(syntax))
+				emit_WeightedTactic___DefaultKeyword_7_0_EqualsSignKeyword_7_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_WeightedTactic___LastImpactKeyword_12_1_0_EqualsSignKeyword_12_1_1__q.equals(syntax))
+				emit_WeightedTactic___LastImpactKeyword_12_1_0_EqualsSignKeyword_12_1_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_WeightedTactic___TacticKeyword_4_0_EqualsSignKeyword_4_1__q.equals(syntax))
+				emit_WeightedTactic___TacticKeyword_4_0_EqualsSignKeyword_4_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else acceptNodes(getLastNavigableState(), syntaxNodes);
+		}
+	}
+
+	/**
+	 * Syntax:
+	 *     'Action'?
+	 */
+	protected void emit_Action_ActionKeyword_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     'BranchAction'?
+	 */
+	protected void emit_BranchAction_BranchActionKeyword_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     'LoopAction'?
+	 */
+	protected void emit_LoopAction_LoopActionKeyword_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('type' '=')?
+	 */
+	protected void emit_Parameter___TypeKeyword_2_0_EqualsSignKeyword_2_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('value' '=')?
+	 */
+	protected void emit_Parameter___ValueKeyword_4_1_0_EqualsSignKeyword_4_1_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     'metricType'?
+	 */
+	protected void emit_Specification_MetricTypeKeyword_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     'relationalOperator'?
+	 */
+	protected void emit_Specification_RelationalOperatorKeyword_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     'Specification'?
+	 */
+	protected void emit_Specification_SpecificationKeyword_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     'value'?
+	 */
+	protected void emit_Specification_ValueKeyword_8_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     'weightingFunction'?
+	 */
+	protected void emit_Strategy_WeightingFunctionKeyword_15_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     'Tactic'?
+	 */
+	protected void emit_Tactic_TacticKeyword_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     'WeightedMetric'?
+	 */
+	protected void emit_WeightedMetric_WeightedMetricKeyword_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('metricType' '=')?
+	 */
+	protected void emit_WeightedMetric___MetricTypeKeyword_5_0_EqualsSignKeyword_5_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('weight' '=')?
+	 */
+	protected void emit_WeightedMetric___WeightKeyword_8_0_EqualsSignKeyword_8_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('current' '=')?
+	 */
+	protected void emit_WeightedTactic___CurrentKeyword_10_0_EqualsSignKeyword_10_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('default' '=')?
+	 */
+	protected void emit_WeightedTactic___DefaultKeyword_7_0_EqualsSignKeyword_7_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('lastImpact' '=')?
+	 */
+	protected void emit_WeightedTactic___LastImpactKeyword_12_1_0_EqualsSignKeyword_12_1_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('tactic' '=')?
+	 */
+	protected void emit_WeightedTactic___TacticKeyword_4_0_EqualsSignKeyword_4_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess.java
new file mode 100644
index 0000000000000000000000000000000000000000..4bae33685402b5948d6c47e3f91b55dc976db369
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/services/StaLangGrammarAccess.java
@@ -0,0 +1,3712 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import java.util.List;
+
+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 StaLangGrammarAccess extends AbstractGrammarElementFinder {
+	
+	
+	public class AdaptationProcessElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AdaptationProcess");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cImportDeclarationAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cImportDeclarationImportDeclarationParserRuleCall_0_0 = (RuleCall)cImportDeclarationAssignment_0.eContents().get(0);
+		private final Keyword cAdaptationProcessKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cIdKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cIdAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_3_1_0 = (RuleCall)cIdAssignment_3_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cParametersKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Keyword cColonKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
+		private final Assignment cParametersAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2);
+		private final RuleCall cParametersParameterParserRuleCall_5_2_0 = (RuleCall)cParametersAssignment_5_2.eContents().get(0);
+		private final Group cGroup_5_3 = (Group)cGroup_5.eContents().get(3);
+		private final Keyword cCommaKeyword_5_3_0 = (Keyword)cGroup_5_3.eContents().get(0);
+		private final Assignment cParametersAssignment_5_3_1 = (Assignment)cGroup_5_3.eContents().get(1);
+		private final RuleCall cParametersParameterParserRuleCall_5_3_1_0 = (RuleCall)cParametersAssignment_5_3_1.eContents().get(0);
+		private final Keyword cGoalKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Keyword cColonKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cGoalAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cGoalOverallGoalParserRuleCall_8_0 = (RuleCall)cGoalAssignment_8.eContents().get(0);
+		private final Keyword cActionsKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Keyword cColonKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		private final Assignment cActionsAssignment_11 = (Assignment)cGroup.eContents().get(11);
+		private final RuleCall cActionsActionParserRuleCall_11_0 = (RuleCall)cActionsAssignment_11.eContents().get(0);
+		private final Group cGroup_12 = (Group)cGroup.eContents().get(12);
+		private final Keyword cCommaKeyword_12_0 = (Keyword)cGroup_12.eContents().get(0);
+		private final Assignment cActionsAssignment_12_1 = (Assignment)cGroup_12.eContents().get(1);
+		private final RuleCall cActionsActionParserRuleCall_12_1_0 = (RuleCall)cActionsAssignment_12_1.eContents().get(0);
+		private final Keyword cTacticsKeyword_13 = (Keyword)cGroup.eContents().get(13);
+		private final Keyword cColonKeyword_14 = (Keyword)cGroup.eContents().get(14);
+		private final Assignment cTacticsAssignment_15 = (Assignment)cGroup.eContents().get(15);
+		private final RuleCall cTacticsTacticParserRuleCall_15_0 = (RuleCall)cTacticsAssignment_15.eContents().get(0);
+		private final Group cGroup_16 = (Group)cGroup.eContents().get(16);
+		private final Keyword cCommaKeyword_16_0 = (Keyword)cGroup_16.eContents().get(0);
+		private final Assignment cTacticsAssignment_16_1 = (Assignment)cGroup_16.eContents().get(1);
+		private final RuleCall cTacticsTacticParserRuleCall_16_1_0 = (RuleCall)cTacticsAssignment_16_1.eContents().get(0);
+		private final Keyword cStrategiesKeyword_17 = (Keyword)cGroup.eContents().get(17);
+		private final Keyword cColonKeyword_18 = (Keyword)cGroup.eContents().get(18);
+		private final Assignment cStrategiesAssignment_19 = (Assignment)cGroup.eContents().get(19);
+		private final RuleCall cStrategiesStrategyParserRuleCall_19_0 = (RuleCall)cStrategiesAssignment_19.eContents().get(0);
+		private final Group cGroup_20 = (Group)cGroup.eContents().get(20);
+		private final Keyword cCommaKeyword_20_0 = (Keyword)cGroup_20.eContents().get(0);
+		private final Assignment cStrategiesAssignment_20_1 = (Assignment)cGroup_20.eContents().get(1);
+		private final RuleCall cStrategiesStrategyParserRuleCall_20_1_0 = (RuleCall)cStrategiesAssignment_20_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_21 = (Keyword)cGroup.eContents().get(21);
+		
+		//AdaptationProcess:
+		//	importDeclaration+=ImportDeclaration* "AdaptationProcess" name=EString ("[id:" id=EString "]")? "{" ("parameters" ":"
+		//	parameters+=Parameter ("," parameters+=Parameter)*)? "goal" ":" goal=OverallGoal "actions" ":" actions+=Action (","
+		//	actions+=Action)* "tactics" ":" tactics+=Tactic ("," tactics+=Tactic)* "strategies" ":" strategies+=Strategy (","
+		//	strategies+=Strategy)* "}";
+		public ParserRule getRule() { return rule; }
+
+		//importDeclaration+=ImportDeclaration* "AdaptationProcess" name=EString ("[id:" id=EString "]")? "{" ("parameters" ":"
+		//parameters+=Parameter ("," parameters+=Parameter)*)? "goal" ":" goal=OverallGoal "actions" ":" actions+=Action (","
+		//actions+=Action)* "tactics" ":" tactics+=Tactic ("," tactics+=Tactic)* "strategies" ":" strategies+=Strategy (","
+		//strategies+=Strategy)* "}"
+		public Group getGroup() { return cGroup; }
+
+		//importDeclaration+=ImportDeclaration*
+		public Assignment getImportDeclarationAssignment_0() { return cImportDeclarationAssignment_0; }
+
+		//ImportDeclaration
+		public RuleCall getImportDeclarationImportDeclarationParserRuleCall_0_0() { return cImportDeclarationImportDeclarationParserRuleCall_0_0; }
+
+		//"AdaptationProcess"
+		public Keyword getAdaptationProcessKeyword_1() { return cAdaptationProcessKeyword_1; }
+
+		//name=EString
+		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"[id:"
+		public Keyword getIdKeyword_3_0() { return cIdKeyword_3_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_3_1() { return cIdAssignment_3_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_3_1_0() { return cIdEStringParserRuleCall_3_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_3_2() { return cRightSquareBracketKeyword_3_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+		//("parameters" ":" parameters+=Parameter ("," parameters+=Parameter)*)?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"parameters"
+		public Keyword getParametersKeyword_5_0() { return cParametersKeyword_5_0; }
+
+		//":"
+		public Keyword getColonKeyword_5_1() { return cColonKeyword_5_1; }
+
+		//parameters+=Parameter
+		public Assignment getParametersAssignment_5_2() { return cParametersAssignment_5_2; }
+
+		//Parameter
+		public RuleCall getParametersParameterParserRuleCall_5_2_0() { return cParametersParameterParserRuleCall_5_2_0; }
+
+		//("," parameters+=Parameter)*
+		public Group getGroup_5_3() { return cGroup_5_3; }
+
+		//","
+		public Keyword getCommaKeyword_5_3_0() { return cCommaKeyword_5_3_0; }
+
+		//parameters+=Parameter
+		public Assignment getParametersAssignment_5_3_1() { return cParametersAssignment_5_3_1; }
+
+		//Parameter
+		public RuleCall getParametersParameterParserRuleCall_5_3_1_0() { return cParametersParameterParserRuleCall_5_3_1_0; }
+
+		//"goal"
+		public Keyword getGoalKeyword_6() { return cGoalKeyword_6; }
+
+		//":"
+		public Keyword getColonKeyword_7() { return cColonKeyword_7; }
+
+		//goal=OverallGoal
+		public Assignment getGoalAssignment_8() { return cGoalAssignment_8; }
+
+		//OverallGoal
+		public RuleCall getGoalOverallGoalParserRuleCall_8_0() { return cGoalOverallGoalParserRuleCall_8_0; }
+
+		//"actions"
+		public Keyword getActionsKeyword_9() { return cActionsKeyword_9; }
+
+		//":"
+		public Keyword getColonKeyword_10() { return cColonKeyword_10; }
+
+		//actions+=Action
+		public Assignment getActionsAssignment_11() { return cActionsAssignment_11; }
+
+		//Action
+		public RuleCall getActionsActionParserRuleCall_11_0() { return cActionsActionParserRuleCall_11_0; }
+
+		//("," actions+=Action)*
+		public Group getGroup_12() { return cGroup_12; }
+
+		//","
+		public Keyword getCommaKeyword_12_0() { return cCommaKeyword_12_0; }
+
+		//actions+=Action
+		public Assignment getActionsAssignment_12_1() { return cActionsAssignment_12_1; }
+
+		//Action
+		public RuleCall getActionsActionParserRuleCall_12_1_0() { return cActionsActionParserRuleCall_12_1_0; }
+
+		//"tactics"
+		public Keyword getTacticsKeyword_13() { return cTacticsKeyword_13; }
+
+		//":"
+		public Keyword getColonKeyword_14() { return cColonKeyword_14; }
+
+		//tactics+=Tactic
+		public Assignment getTacticsAssignment_15() { return cTacticsAssignment_15; }
+
+		//Tactic
+		public RuleCall getTacticsTacticParserRuleCall_15_0() { return cTacticsTacticParserRuleCall_15_0; }
+
+		//("," tactics+=Tactic)*
+		public Group getGroup_16() { return cGroup_16; }
+
+		//","
+		public Keyword getCommaKeyword_16_0() { return cCommaKeyword_16_0; }
+
+		//tactics+=Tactic
+		public Assignment getTacticsAssignment_16_1() { return cTacticsAssignment_16_1; }
+
+		//Tactic
+		public RuleCall getTacticsTacticParserRuleCall_16_1_0() { return cTacticsTacticParserRuleCall_16_1_0; }
+
+		//"strategies"
+		public Keyword getStrategiesKeyword_17() { return cStrategiesKeyword_17; }
+
+		//":"
+		public Keyword getColonKeyword_18() { return cColonKeyword_18; }
+
+		//strategies+=Strategy
+		public Assignment getStrategiesAssignment_19() { return cStrategiesAssignment_19; }
+
+		//Strategy
+		public RuleCall getStrategiesStrategyParserRuleCall_19_0() { return cStrategiesStrategyParserRuleCall_19_0; }
+
+		//("," strategies+=Strategy)*
+		public Group getGroup_20() { return cGroup_20; }
+
+		//","
+		public Keyword getCommaKeyword_20_0() { return cCommaKeyword_20_0; }
+
+		//strategies+=Strategy
+		public Assignment getStrategiesAssignment_20_1() { return cStrategiesAssignment_20_1; }
+
+		//Strategy
+		public RuleCall getStrategiesStrategyParserRuleCall_20_1_0() { return cStrategiesStrategyParserRuleCall_20_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_21() { return cRightCurlyBracketKeyword_21; }
+	}
+
+	public class AdaptationPointElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AdaptationPoint");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cModelVariableConfigurationRangeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cModelEntityConfigurationRangeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//AdaptationPoint returns adaptationpoints::AdaptationPoint:
+		//	ModelVariableConfigurationRange | ModelEntityConfigurationRange;
+		public ParserRule getRule() { return rule; }
+
+		//ModelVariableConfigurationRange | ModelEntityConfigurationRange
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//ModelVariableConfigurationRange
+		public RuleCall getModelVariableConfigurationRangeParserRuleCall_0() { return cModelVariableConfigurationRangeParserRuleCall_0; }
+
+		//ModelEntityConfigurationRange
+		public RuleCall getModelEntityConfigurationRangeParserRuleCall_1() { return cModelEntityConfigurationRangeParserRuleCall_1; }
+	}
+
+	public class AbstractControlFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AbstractControlFlowElement");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cStartActionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cStopActionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cLoopActionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cBranchActionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cActionReferenceParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+		
+		//AbstractControlFlowElement:
+		//	StartAction | StopAction | LoopAction | BranchAction | ActionReference;
+		public ParserRule getRule() { return rule; }
+
+		//StartAction | StopAction | LoopAction | BranchAction | ActionReference
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//StartAction
+		public RuleCall getStartActionParserRuleCall_0() { return cStartActionParserRuleCall_0; }
+
+		//StopAction
+		public RuleCall getStopActionParserRuleCall_1() { return cStopActionParserRuleCall_1; }
+
+		//LoopAction
+		public RuleCall getLoopActionParserRuleCall_2() { return cLoopActionParserRuleCall_2; }
+
+		//BranchAction
+		public RuleCall getBranchActionParserRuleCall_3() { return cBranchActionParserRuleCall_3; }
+
+		//ActionReference
+		public RuleCall getActionReferenceParserRuleCall_4() { return cActionReferenceParserRuleCall_4; }
+	}
+
+	public class VariationTypeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "VariationType");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cPropertyRangeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cSetOfConfigurationsParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//VariationType returns adaptationpoints::VariationType:
+		//	PropertyRange | SetOfConfigurations;
+		public ParserRule getRule() { return rule; }
+
+		//PropertyRange | SetOfConfigurations
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//PropertyRange
+		public RuleCall getPropertyRangeParserRuleCall_0() { return cPropertyRangeParserRuleCall_0; }
+
+		//SetOfConfigurations
+		public RuleCall getSetOfConfigurationsParserRuleCall_1() { return cSetOfConfigurationsParserRuleCall_1; }
+	}
+
+	public class EStringElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EString");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cSTRINGTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cIDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//EString returns ecore::EString:
+		//	STRING | ID;
+		public ParserRule getRule() { return rule; }
+
+		//STRING | ID
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//STRING
+		public RuleCall getSTRINGTerminalRuleCall_0() { return cSTRINGTerminalRuleCall_0; }
+
+		//ID
+		public RuleCall getIDTerminalRuleCall_1() { return cIDTerminalRuleCall_1; }
+	}
+
+	public class TacticElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Tactic");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cTacticKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cIdKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cIdAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_2_1_0 = (RuleCall)cIdAssignment_2_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cImplementedPlanKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cImplementedPlanAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cImplementedPlanAdaptationPlanParserRuleCall_5_0 = (RuleCall)cImplementedPlanAssignment_5.eContents().get(0);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Keyword cInputKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
+		private final Keyword cLeftParenthesisKeyword_6_2 = (Keyword)cGroup_6.eContents().get(2);
+		private final Assignment cInputParamsAssignment_6_3 = (Assignment)cGroup_6.eContents().get(3);
+		private final CrossReference cInputParamsParameterCrossReference_6_3_0 = (CrossReference)cInputParamsAssignment_6_3.eContents().get(0);
+		private final RuleCall cInputParamsParameterEStringParserRuleCall_6_3_0_1 = (RuleCall)cInputParamsParameterCrossReference_6_3_0.eContents().get(1);
+		private final Group cGroup_6_4 = (Group)cGroup_6.eContents().get(4);
+		private final Keyword cCommaKeyword_6_4_0 = (Keyword)cGroup_6_4.eContents().get(0);
+		private final Assignment cInputParamsAssignment_6_4_1 = (Assignment)cGroup_6_4.eContents().get(1);
+		private final CrossReference cInputParamsParameterCrossReference_6_4_1_0 = (CrossReference)cInputParamsAssignment_6_4_1.eContents().get(0);
+		private final RuleCall cInputParamsParameterEStringParserRuleCall_6_4_1_0_1 = (RuleCall)cInputParamsParameterCrossReference_6_4_1_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_6_5 = (Keyword)cGroup_6.eContents().get(5);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Keyword cOutputKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
+		private final Assignment cOutputParamAssignment_7_2 = (Assignment)cGroup_7.eContents().get(2);
+		private final CrossReference cOutputParamParameterCrossReference_7_2_0 = (CrossReference)cOutputParamAssignment_7_2.eContents().get(0);
+		private final RuleCall cOutputParamParameterEStringParserRuleCall_7_2_0_1 = (RuleCall)cOutputParamParameterCrossReference_7_2_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		
+		//Tactic:
+		//	"Tactic"? name=EString ("[id:" id=EString "]")? "{" "implementedPlan" implementedPlan=AdaptationPlan ("input" "=" "("
+		//	inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")? ("output" "="
+		//	outputParam=[Parameter|EString])? "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Tactic"? name=EString ("[id:" id=EString "]")? "{" "implementedPlan" implementedPlan=AdaptationPlan ("input" "=" "("
+		//inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")? ("output" "="
+		//outputParam=[Parameter|EString])? "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Tactic"?
+		public Keyword getTacticKeyword_0() { return cTacticKeyword_0; }
+
+		//name=EString
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"[id:"
+		public Keyword getIdKeyword_2_0() { return cIdKeyword_2_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_2_1() { return cIdAssignment_2_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_2_1_0() { return cIdEStringParserRuleCall_2_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+		//"implementedPlan"
+		public Keyword getImplementedPlanKeyword_4() { return cImplementedPlanKeyword_4; }
+
+		//implementedPlan=AdaptationPlan
+		public Assignment getImplementedPlanAssignment_5() { return cImplementedPlanAssignment_5; }
+
+		//AdaptationPlan
+		public RuleCall getImplementedPlanAdaptationPlanParserRuleCall_5_0() { return cImplementedPlanAdaptationPlanParserRuleCall_5_0; }
+
+		//("input" "=" "(" inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")?
+		public Group getGroup_6() { return cGroup_6; }
+
+		//"input"
+		public Keyword getInputKeyword_6_0() { return cInputKeyword_6_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_6_1() { return cEqualsSignKeyword_6_1; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_6_2() { return cLeftParenthesisKeyword_6_2; }
+
+		//inputParams+=[Parameter|EString]
+		public Assignment getInputParamsAssignment_6_3() { return cInputParamsAssignment_6_3; }
+
+		//[Parameter|EString]
+		public CrossReference getInputParamsParameterCrossReference_6_3_0() { return cInputParamsParameterCrossReference_6_3_0; }
+
+		//EString
+		public RuleCall getInputParamsParameterEStringParserRuleCall_6_3_0_1() { return cInputParamsParameterEStringParserRuleCall_6_3_0_1; }
+
+		//("," inputParams+=[Parameter|EString])*
+		public Group getGroup_6_4() { return cGroup_6_4; }
+
+		//","
+		public Keyword getCommaKeyword_6_4_0() { return cCommaKeyword_6_4_0; }
+
+		//inputParams+=[Parameter|EString]
+		public Assignment getInputParamsAssignment_6_4_1() { return cInputParamsAssignment_6_4_1; }
+
+		//[Parameter|EString]
+		public CrossReference getInputParamsParameterCrossReference_6_4_1_0() { return cInputParamsParameterCrossReference_6_4_1_0; }
+
+		//EString
+		public RuleCall getInputParamsParameterEStringParserRuleCall_6_4_1_0_1() { return cInputParamsParameterEStringParserRuleCall_6_4_1_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_6_5() { return cRightParenthesisKeyword_6_5; }
+
+		//("output" "=" outputParam=[Parameter|EString])?
+		public Group getGroup_7() { return cGroup_7; }
+
+		//"output"
+		public Keyword getOutputKeyword_7_0() { return cOutputKeyword_7_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_7_1() { return cEqualsSignKeyword_7_1; }
+
+		//outputParam=[Parameter|EString]
+		public Assignment getOutputParamAssignment_7_2() { return cOutputParamAssignment_7_2; }
+
+		//[Parameter|EString]
+		public CrossReference getOutputParamParameterCrossReference_7_2_0() { return cOutputParamParameterCrossReference_7_2_0; }
+
+		//EString
+		public RuleCall getOutputParamParameterEStringParserRuleCall_7_2_0_1() { return cOutputParamParameterEStringParserRuleCall_7_2_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
+	}
+
+	public class ActionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Action");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cIdKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cIdAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_2_1_0 = (RuleCall)cIdAssignment_2_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cOperationKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cEqualsSignKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cAdaptationActionOperationAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0 = (RuleCall)cAdaptationActionOperationAssignment_6.eContents().get(0);
+		private final Keyword cReferredAdaptationPointKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Keyword cEqualsSignKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cReferredAdaptationPointAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final CrossReference cReferredAdaptationPointAdaptationPointCrossReference_9_0 = (CrossReference)cReferredAdaptationPointAssignment_9.eContents().get(0);
+		private final RuleCall cReferredAdaptationPointAdaptationPointEStringParserRuleCall_9_0_1 = (RuleCall)cReferredAdaptationPointAdaptationPointCrossReference_9_0.eContents().get(1);
+		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
+		private final Keyword cInputKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_10_1 = (Keyword)cGroup_10.eContents().get(1);
+		private final Keyword cLeftParenthesisKeyword_10_2 = (Keyword)cGroup_10.eContents().get(2);
+		private final Assignment cInputParamsAssignment_10_3 = (Assignment)cGroup_10.eContents().get(3);
+		private final CrossReference cInputParamsParameterCrossReference_10_3_0 = (CrossReference)cInputParamsAssignment_10_3.eContents().get(0);
+		private final RuleCall cInputParamsParameterEStringParserRuleCall_10_3_0_1 = (RuleCall)cInputParamsParameterCrossReference_10_3_0.eContents().get(1);
+		private final Group cGroup_10_4 = (Group)cGroup_10.eContents().get(4);
+		private final Keyword cCommaKeyword_10_4_0 = (Keyword)cGroup_10_4.eContents().get(0);
+		private final Assignment cInputParamsAssignment_10_4_1 = (Assignment)cGroup_10_4.eContents().get(1);
+		private final CrossReference cInputParamsParameterCrossReference_10_4_1_0 = (CrossReference)cInputParamsAssignment_10_4_1.eContents().get(0);
+		private final RuleCall cInputParamsParameterEStringParserRuleCall_10_4_1_0_1 = (RuleCall)cInputParamsParameterCrossReference_10_4_1_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_10_5 = (Keyword)cGroup_10.eContents().get(5);
+		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
+		private final Keyword cOutputKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_11_1 = (Keyword)cGroup_11.eContents().get(1);
+		private final Assignment cOutputParamAssignment_11_2 = (Assignment)cGroup_11.eContents().get(2);
+		private final CrossReference cOutputParamParameterCrossReference_11_2_0 = (CrossReference)cOutputParamAssignment_11_2.eContents().get(0);
+		private final RuleCall cOutputParamParameterEStringParserRuleCall_11_2_0_1 = (RuleCall)cOutputParamParameterCrossReference_11_2_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12);
+		
+		//Action:
+		//	"Action"? name=EString ("[id:" id=EString "]")? "{" "operation" "="
+		//	adaptationActionOperation=AdaptationActionOperation "referredAdaptationPoint" "="
+		//	referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString] ("input" "=" "(" inputParams+=[Parameter|EString]
+		//	("," inputParams+=[Parameter|EString])* ")")? ("output" "=" outputParam=[Parameter|EString])? "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Action"? name=EString ("[id:" id=EString "]")? "{" "operation" "=" adaptationActionOperation=AdaptationActionOperation
+		//"referredAdaptationPoint" "=" referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString] ("input" "=" "("
+		//inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")? ("output" "="
+		//outputParam=[Parameter|EString])? "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Action"?
+		public Keyword getActionKeyword_0() { return cActionKeyword_0; }
+
+		//name=EString
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"[id:"
+		public Keyword getIdKeyword_2_0() { return cIdKeyword_2_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_2_1() { return cIdAssignment_2_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_2_1_0() { return cIdEStringParserRuleCall_2_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+		//"operation"
+		public Keyword getOperationKeyword_4() { return cOperationKeyword_4; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_5() { return cEqualsSignKeyword_5; }
+
+		//adaptationActionOperation=AdaptationActionOperation
+		public Assignment getAdaptationActionOperationAssignment_6() { return cAdaptationActionOperationAssignment_6; }
+
+		//AdaptationActionOperation
+		public RuleCall getAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0() { return cAdaptationActionOperationAdaptationActionOperationParserRuleCall_6_0; }
+
+		//"referredAdaptationPoint"
+		public Keyword getReferredAdaptationPointKeyword_7() { return cReferredAdaptationPointKeyword_7; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_8() { return cEqualsSignKeyword_8; }
+
+		//referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString]
+		public Assignment getReferredAdaptationPointAssignment_9() { return cReferredAdaptationPointAssignment_9; }
+
+		//[adaptationpoints::AdaptationPoint|EString]
+		public CrossReference getReferredAdaptationPointAdaptationPointCrossReference_9_0() { return cReferredAdaptationPointAdaptationPointCrossReference_9_0; }
+
+		//EString
+		public RuleCall getReferredAdaptationPointAdaptationPointEStringParserRuleCall_9_0_1() { return cReferredAdaptationPointAdaptationPointEStringParserRuleCall_9_0_1; }
+
+		//("input" "=" "(" inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")?
+		public Group getGroup_10() { return cGroup_10; }
+
+		//"input"
+		public Keyword getInputKeyword_10_0() { return cInputKeyword_10_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_10_1() { return cEqualsSignKeyword_10_1; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_10_2() { return cLeftParenthesisKeyword_10_2; }
+
+		//inputParams+=[Parameter|EString]
+		public Assignment getInputParamsAssignment_10_3() { return cInputParamsAssignment_10_3; }
+
+		//[Parameter|EString]
+		public CrossReference getInputParamsParameterCrossReference_10_3_0() { return cInputParamsParameterCrossReference_10_3_0; }
+
+		//EString
+		public RuleCall getInputParamsParameterEStringParserRuleCall_10_3_0_1() { return cInputParamsParameterEStringParserRuleCall_10_3_0_1; }
+
+		//("," inputParams+=[Parameter|EString])*
+		public Group getGroup_10_4() { return cGroup_10_4; }
+
+		//","
+		public Keyword getCommaKeyword_10_4_0() { return cCommaKeyword_10_4_0; }
+
+		//inputParams+=[Parameter|EString]
+		public Assignment getInputParamsAssignment_10_4_1() { return cInputParamsAssignment_10_4_1; }
+
+		//[Parameter|EString]
+		public CrossReference getInputParamsParameterCrossReference_10_4_1_0() { return cInputParamsParameterCrossReference_10_4_1_0; }
+
+		//EString
+		public RuleCall getInputParamsParameterEStringParserRuleCall_10_4_1_0_1() { return cInputParamsParameterEStringParserRuleCall_10_4_1_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_10_5() { return cRightParenthesisKeyword_10_5; }
+
+		//("output" "=" outputParam=[Parameter|EString])?
+		public Group getGroup_11() { return cGroup_11; }
+
+		//"output"
+		public Keyword getOutputKeyword_11_0() { return cOutputKeyword_11_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_11_1() { return cEqualsSignKeyword_11_1; }
+
+		//outputParam=[Parameter|EString]
+		public Assignment getOutputParamAssignment_11_2() { return cOutputParamAssignment_11_2; }
+
+		//[Parameter|EString]
+		public CrossReference getOutputParamParameterCrossReference_11_2_0() { return cOutputParamParameterCrossReference_11_2_0; }
+
+		//EString
+		public RuleCall getOutputParamParameterEStringParserRuleCall_11_2_0_1() { return cOutputParamParameterEStringParserRuleCall_11_2_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; }
+	}
+
+	public class StrategyElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Strategy");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cNameEStringParserRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cObjectiveKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cEqualsSignKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cObjectiveAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final CrossReference cObjectiveObjectiveCrossReference_5_0 = (CrossReference)cObjectiveAssignment_5.eContents().get(0);
+		private final RuleCall cObjectiveObjectiveEStringParserRuleCall_5_0_1 = (RuleCall)cObjectiveObjectiveCrossReference_5_0.eContents().get(1);
+		private final Keyword cTriggeringEventKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Keyword cEqualsSignKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cTriggeringEventsAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cTriggeringEventsEventParserRuleCall_8_0 = (RuleCall)cTriggeringEventsAssignment_8.eContents().get(0);
+		private final Keyword cTacticsKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Keyword cEqualsSignKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		private final Keyword cLeftParenthesisKeyword_11 = (Keyword)cGroup.eContents().get(11);
+		private final Assignment cTacticsAssignment_12 = (Assignment)cGroup.eContents().get(12);
+		private final RuleCall cTacticsWeightedTacticParserRuleCall_12_0 = (RuleCall)cTacticsAssignment_12.eContents().get(0);
+		private final Group cGroup_13 = (Group)cGroup.eContents().get(13);
+		private final Keyword cCommaKeyword_13_0 = (Keyword)cGroup_13.eContents().get(0);
+		private final Assignment cTacticsAssignment_13_1 = (Assignment)cGroup_13.eContents().get(1);
+		private final RuleCall cTacticsWeightedTacticParserRuleCall_13_1_0 = (RuleCall)cTacticsAssignment_13_1.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_14 = (Keyword)cGroup.eContents().get(14);
+		private final Keyword cWeightingFunctionKeyword_15 = (Keyword)cGroup.eContents().get(15);
+		private final Assignment cWeightingFunctionAssignment_16 = (Assignment)cGroup.eContents().get(16);
+		private final RuleCall cWeightingFunctionWeightingFunctionParserRuleCall_16_0 = (RuleCall)cWeightingFunctionAssignment_16.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_17 = (Keyword)cGroup.eContents().get(17);
+		
+		//Strategy:
+		//	name=EString ("[id:" id=EString "]")? "{" "objective" "=" objective=[Objective|EString] "triggeringEvent" "="
+		//	triggeringEvents=Event "tactics" "=" "(" tactics+=WeightedTactic ("," tactics+=WeightedTactic)* ")"
+		//	"weightingFunction"? weightingFunction=WeightingFunction "}";
+		public ParserRule getRule() { return rule; }
+
+		//name=EString ("[id:" id=EString "]")? "{" "objective" "=" objective=[Objective|EString] "triggeringEvent" "="
+		//triggeringEvents=Event "tactics" "=" "(" tactics+=WeightedTactic ("," tactics+=WeightedTactic)* ")"
+		//"weightingFunction"? weightingFunction=WeightingFunction "}"
+		public Group getGroup() { return cGroup; }
+
+		//name=EString
+		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_0_0() { return cNameEStringParserRuleCall_0_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"objective"
+		public Keyword getObjectiveKeyword_3() { return cObjectiveKeyword_3; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_4() { return cEqualsSignKeyword_4; }
+
+		//objective=[Objective|EString]
+		public Assignment getObjectiveAssignment_5() { return cObjectiveAssignment_5; }
+
+		//[Objective|EString]
+		public CrossReference getObjectiveObjectiveCrossReference_5_0() { return cObjectiveObjectiveCrossReference_5_0; }
+
+		//EString
+		public RuleCall getObjectiveObjectiveEStringParserRuleCall_5_0_1() { return cObjectiveObjectiveEStringParserRuleCall_5_0_1; }
+
+		//"triggeringEvent"
+		public Keyword getTriggeringEventKeyword_6() { return cTriggeringEventKeyword_6; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_7() { return cEqualsSignKeyword_7; }
+
+		//triggeringEvents=Event
+		public Assignment getTriggeringEventsAssignment_8() { return cTriggeringEventsAssignment_8; }
+
+		//Event
+		public RuleCall getTriggeringEventsEventParserRuleCall_8_0() { return cTriggeringEventsEventParserRuleCall_8_0; }
+
+		//"tactics"
+		public Keyword getTacticsKeyword_9() { return cTacticsKeyword_9; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_10() { return cEqualsSignKeyword_10; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_11() { return cLeftParenthesisKeyword_11; }
+
+		//tactics+=WeightedTactic
+		public Assignment getTacticsAssignment_12() { return cTacticsAssignment_12; }
+
+		//WeightedTactic
+		public RuleCall getTacticsWeightedTacticParserRuleCall_12_0() { return cTacticsWeightedTacticParserRuleCall_12_0; }
+
+		//("," tactics+=WeightedTactic)*
+		public Group getGroup_13() { return cGroup_13; }
+
+		//","
+		public Keyword getCommaKeyword_13_0() { return cCommaKeyword_13_0; }
+
+		//tactics+=WeightedTactic
+		public Assignment getTacticsAssignment_13_1() { return cTacticsAssignment_13_1; }
+
+		//WeightedTactic
+		public RuleCall getTacticsWeightedTacticParserRuleCall_13_1_0() { return cTacticsWeightedTacticParserRuleCall_13_1_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_14() { return cRightParenthesisKeyword_14; }
+
+		//"weightingFunction"?
+		public Keyword getWeightingFunctionKeyword_15() { return cWeightingFunctionKeyword_15; }
+
+		//weightingFunction=WeightingFunction
+		public Assignment getWeightingFunctionAssignment_16() { return cWeightingFunctionAssignment_16; }
+
+		//WeightingFunction
+		public RuleCall getWeightingFunctionWeightingFunctionParserRuleCall_16_0() { return cWeightingFunctionWeightingFunctionParserRuleCall_16_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_17() { return cRightCurlyBracketKeyword_17; }
+	}
+
+	public class ParameterElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Parameter");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cNameEStringParserRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cTypeKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1);
+		private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cTypeEStringParserRuleCall_3_0 = (RuleCall)cTypeAssignment_3.eContents().get(0);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cCommaKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
+		private final Keyword cValueKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_4_1_1 = (Keyword)cGroup_4_1.eContents().get(1);
+		private final Assignment cValueAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
+		private final RuleCall cValueEStringParserRuleCall_4_2_0 = (RuleCall)cValueAssignment_4_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//Parameter:
+		//	name=EString "{" ("type" "=")? type=EString ("," ("value" "=")? value=EString)? "}";
+		public ParserRule getRule() { return rule; }
+
+		//name=EString "{" ("type" "=")? type=EString ("," ("value" "=")? value=EString)? "}"
+		public Group getGroup() { return cGroup; }
+
+		//name=EString
+		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_0_0() { return cNameEStringParserRuleCall_0_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//("type" "=")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"type"
+		public Keyword getTypeKeyword_2_0() { return cTypeKeyword_2_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_2_1() { return cEqualsSignKeyword_2_1; }
+
+		//type=EString
+		public Assignment getTypeAssignment_3() { return cTypeAssignment_3; }
+
+		//EString
+		public RuleCall getTypeEStringParserRuleCall_3_0() { return cTypeEStringParserRuleCall_3_0; }
+
+		//("," ("value" "=")? value=EString)?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//","
+		public Keyword getCommaKeyword_4_0() { return cCommaKeyword_4_0; }
+
+		//("value" "=")?
+		public Group getGroup_4_1() { return cGroup_4_1; }
+
+		//"value"
+		public Keyword getValueKeyword_4_1_0() { return cValueKeyword_4_1_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_4_1_1() { return cEqualsSignKeyword_4_1_1; }
+
+		//value=EString
+		public Assignment getValueAssignment_4_2() { return cValueAssignment_4_2; }
+
+		//EString
+		public RuleCall getValueEStringParserRuleCall_4_2_0() { return cValueEStringParserRuleCall_4_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	public class OverallGoalElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "OverallGoal");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cDescriptionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cDescriptionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cDescriptionEStringParserRuleCall_1_0 = (RuleCall)cDescriptionAssignment_1.eContents().get(0);
+		private final Keyword cObjectivesKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cLeftParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cObjectivesAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cObjectivesObjectiveParserRuleCall_5_0 = (RuleCall)cObjectivesAssignment_5.eContents().get(0);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Keyword cCommaKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
+		private final Assignment cObjectivesAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
+		private final RuleCall cObjectivesObjectiveParserRuleCall_6_1_0 = (RuleCall)cObjectivesAssignment_6_1.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		
+		//OverallGoal:
+		//	"description" description=EString "objectives" "=" "(" objectives+=Objective ("," objectives+=Objective)* ")";
+		public ParserRule getRule() { return rule; }
+
+		//"description" description=EString "objectives" "=" "(" objectives+=Objective ("," objectives+=Objective)* ")"
+		public Group getGroup() { return cGroup; }
+
+		//"description"
+		public Keyword getDescriptionKeyword_0() { return cDescriptionKeyword_0; }
+
+		//description=EString
+		public Assignment getDescriptionAssignment_1() { return cDescriptionAssignment_1; }
+
+		//EString
+		public RuleCall getDescriptionEStringParserRuleCall_1_0() { return cDescriptionEStringParserRuleCall_1_0; }
+
+		//"objectives"
+		public Keyword getObjectivesKeyword_2() { return cObjectivesKeyword_2; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_4() { return cLeftParenthesisKeyword_4; }
+
+		//objectives+=Objective
+		public Assignment getObjectivesAssignment_5() { return cObjectivesAssignment_5; }
+
+		//Objective
+		public RuleCall getObjectivesObjectiveParserRuleCall_5_0() { return cObjectivesObjectiveParserRuleCall_5_0; }
+
+		//("," objectives+=Objective)*
+		public Group getGroup_6() { return cGroup_6; }
+
+		//","
+		public Keyword getCommaKeyword_6_0() { return cCommaKeyword_6_0; }
+
+		//objectives+=Objective
+		public Assignment getObjectivesAssignment_6_1() { return cObjectivesAssignment_6_1; }
+
+		//Objective
+		public RuleCall getObjectivesObjectiveParserRuleCall_6_1_0() { return cObjectivesObjectiveParserRuleCall_6_1_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_7() { return cRightParenthesisKeyword_7; }
+	}
+
+	public class ImportDeclarationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ImportDeclaration");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cImportDeclarationKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cImportURIAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cImportURIEStringParserRuleCall_1_0 = (RuleCall)cImportURIAssignment_1.eContents().get(0);
+		
+		//ImportDeclaration:
+		//	"ImportDeclaration" importURI=EString;
+		public ParserRule getRule() { return rule; }
+
+		//"ImportDeclaration" importURI=EString
+		public Group getGroup() { return cGroup; }
+
+		//"ImportDeclaration"
+		public Keyword getImportDeclarationKeyword_0() { return cImportDeclarationKeyword_0; }
+
+		//importURI=EString
+		public Assignment getImportURIAssignment_1() { return cImportURIAssignment_1; }
+
+		//EString
+		public RuleCall getImportURIEStringParserRuleCall_1_0() { return cImportURIEStringParserRuleCall_1_0; }
+	}
+
+	public class AdaptationPlanElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AdaptationPlan");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cNameEStringParserRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cLeftParenthesisKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cStepsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cStepsAbstractControlFlowElementParserRuleCall_3_1_0 = (RuleCall)cStepsAssignment_3_1.eContents().get(0);
+		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
+		private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
+		private final Assignment cStepsAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+		private final RuleCall cStepsAbstractControlFlowElementParserRuleCall_3_2_1_0 = (RuleCall)cStepsAssignment_3_2_1.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+		
+		//AdaptationPlan:
+		//	name=EString ("[id:" id=EString "]")? "=" ("(" steps+=AbstractControlFlowElement (","
+		//	steps+=AbstractControlFlowElement)* ")")?;
+		public ParserRule getRule() { return rule; }
+
+		//name=EString ("[id:" id=EString "]")? "=" ("(" steps+=AbstractControlFlowElement (","
+		//steps+=AbstractControlFlowElement)* ")")?
+		public Group getGroup() { return cGroup; }
+
+		//name=EString
+		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_0_0() { return cNameEStringParserRuleCall_0_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_2() { return cEqualsSignKeyword_2; }
+
+		//("(" steps+=AbstractControlFlowElement ("," steps+=AbstractControlFlowElement)* ")")?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_3_0() { return cLeftParenthesisKeyword_3_0; }
+
+		//steps+=AbstractControlFlowElement
+		public Assignment getStepsAssignment_3_1() { return cStepsAssignment_3_1; }
+
+		//AbstractControlFlowElement
+		public RuleCall getStepsAbstractControlFlowElementParserRuleCall_3_1_0() { return cStepsAbstractControlFlowElementParserRuleCall_3_1_0; }
+
+		//("," steps+=AbstractControlFlowElement)*
+		public Group getGroup_3_2() { return cGroup_3_2; }
+
+		//","
+		public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
+
+		//steps+=AbstractControlFlowElement
+		public Assignment getStepsAssignment_3_2_1() { return cStepsAssignment_3_2_1; }
+
+		//AbstractControlFlowElement
+		public RuleCall getStepsAbstractControlFlowElementParserRuleCall_3_2_1_0() { return cStepsAbstractControlFlowElementParserRuleCall_3_2_1_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_3_3() { return cRightParenthesisKeyword_3_3; }
+	}
+
+	public class StartActionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StartAction");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cStartActionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cStartActionKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cIdKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cIdAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_2_1_0 = (RuleCall)cIdAssignment_2_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+		
+		////	Predecessor and successor are in comments, to avoid problems with referencing 
+		////	different Actions an ordered List is used to get predecessor and successor
+		////	('('
+		////		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		////		('successor' successor=[AbstractControlFlowElement|EString])?
+		////	')')?
+		//StartAction:
+		//	{StartAction} "StartAction" ("[id:" id=EString "]")?;
+		public ParserRule getRule() { return rule; }
+
+		//{StartAction} "StartAction" ("[id:" id=EString "]")?
+		public Group getGroup() { return cGroup; }
+
+		//{StartAction}
+		public Action getStartActionAction_0() { return cStartActionAction_0; }
+
+		//"StartAction"
+		public Keyword getStartActionKeyword_1() { return cStartActionKeyword_1; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"[id:"
+		public Keyword getIdKeyword_2_0() { return cIdKeyword_2_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_2_1() { return cIdAssignment_2_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_2_1_0() { return cIdEStringParserRuleCall_2_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
+	}
+
+	public class StopActionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StopAction");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cStopActionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cStopActionKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cIdKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cIdAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_2_1_0 = (RuleCall)cIdAssignment_2_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+		
+		////	Predecessor and successor are in comments, to avoid problems with referencing 
+		////	different Actions an ordered List is used to get predecessor and successor
+		////	('('
+		////		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		////		('successor' successor=[AbstractControlFlowElement|EString])?
+		////	')')?
+		//StopAction:
+		//	{StopAction} "StopAction" ("[id:" id=EString "]")?;
+		public ParserRule getRule() { return rule; }
+
+		//{StopAction} "StopAction" ("[id:" id=EString "]")?
+		public Group getGroup() { return cGroup; }
+
+		//{StopAction}
+		public Action getStopActionAction_0() { return cStopActionAction_0; }
+
+		//"StopAction"
+		public Keyword getStopActionKeyword_1() { return cStopActionKeyword_1; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"[id:"
+		public Keyword getIdKeyword_2_0() { return cIdKeyword_2_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_2_1() { return cIdAssignment_2_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_2_1_0() { return cIdEStringParserRuleCall_2_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
+	}
+
+	public class LoopActionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LoopAction");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cLoopActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cRepeatKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cCounterKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cEqualsSignKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cCounterAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final CrossReference cCounterParameterCrossReference_5_0 = (CrossReference)cCounterAssignment_5.eContents().get(0);
+		private final RuleCall cCounterParameterEStringParserRuleCall_5_0_1 = (RuleCall)cCounterParameterCrossReference_5_0.eContents().get(1);
+		private final Keyword cLeftParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cBodyAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cBodyAdaptationPlanParserRuleCall_7_0 = (RuleCall)cBodyAssignment_7.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		
+		//LoopAction:
+		//	"LoopAction"? ("[id:" id=EString "]")? "repeat" "counter" "=" counter=[Parameter|EString] "(" //	Predecessor and successor are in comments, to avoid problems with referencing 
+		//	//	different Actions an ordered List is used to get predecessor and successor
+		//	//		(predecessor=[AbstractControlFlowElement|EString] ',')?
+		//	body=AdaptationPlan //		(',' successor=[AbstractControlFlowElement|EString])?
+		//	")";
+		public ParserRule getRule() { return rule; }
+
+		//"LoopAction"? ("[id:" id=EString "]")? "repeat" "counter" "=" counter=[Parameter|EString] "(" //	Predecessor and successor are in comments, to avoid problems with referencing 
+		////	different Actions an ordered List is used to get predecessor and successor
+		////		(predecessor=[AbstractControlFlowElement|EString] ',')?
+		//body=AdaptationPlan //		(',' successor=[AbstractControlFlowElement|EString])?
+		//")"
+		public Group getGroup() { return cGroup; }
+
+		//"LoopAction"?
+		public Keyword getLoopActionKeyword_0() { return cLoopActionKeyword_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"repeat"
+		public Keyword getRepeatKeyword_2() { return cRepeatKeyword_2; }
+
+		//"counter"
+		public Keyword getCounterKeyword_3() { return cCounterKeyword_3; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_4() { return cEqualsSignKeyword_4; }
+
+		//counter=[Parameter|EString]
+		public Assignment getCounterAssignment_5() { return cCounterAssignment_5; }
+
+		//[Parameter|EString]
+		public CrossReference getCounterParameterCrossReference_5_0() { return cCounterParameterCrossReference_5_0; }
+
+		//EString
+		public RuleCall getCounterParameterEStringParserRuleCall_5_0_1() { return cCounterParameterEStringParserRuleCall_5_0_1; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_6() { return cLeftParenthesisKeyword_6; }
+
+		////	Predecessor and successor are in comments, to avoid problems with referencing 
+		////	different Actions an ordered List is used to get predecessor and successor
+		////		(predecessor=[AbstractControlFlowElement|EString] ',')?
+		//body=AdaptationPlan
+		public Assignment getBodyAssignment_7() { return cBodyAssignment_7; }
+
+		//AdaptationPlan
+		public RuleCall getBodyAdaptationPlanParserRuleCall_7_0() { return cBodyAdaptationPlanParserRuleCall_7_0; }
+
+		////		(',' successor=[AbstractControlFlowElement|EString])?
+		//")"
+		public Keyword getRightParenthesisKeyword_8() { return cRightParenthesisKeyword_8; }
+	}
+
+	public class BranchActionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BranchAction");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cBranchActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cIfKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cContextKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cEqualsSignKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cContextAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final CrossReference cContextEntityCrossReference_6_0 = (CrossReference)cContextAssignment_6.eContents().get(0);
+		private final RuleCall cContextEntityEStringParserRuleCall_6_0_1 = (RuleCall)cContextEntityCrossReference_6_0.eContents().get(1);
+		private final Keyword cCommaKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Keyword cConditionKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Keyword cEqualsSignKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Assignment cConditionAssignment_10 = (Assignment)cGroup.eContents().get(10);
+		private final RuleCall cConditionEStringParserRuleCall_10_0 = (RuleCall)cConditionAssignment_10.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_11 = (Keyword)cGroup.eContents().get(11);
+		private final Keyword cThenKeyword_12 = (Keyword)cGroup.eContents().get(12);
+		private final Keyword cLeftParenthesisKeyword_13 = (Keyword)cGroup.eContents().get(13);
+		private final Assignment cConditionTrueBranchAssignment_14 = (Assignment)cGroup.eContents().get(14);
+		private final RuleCall cConditionTrueBranchAdaptationPlanParserRuleCall_14_0 = (RuleCall)cConditionTrueBranchAssignment_14.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_15 = (Keyword)cGroup.eContents().get(15);
+		private final Keyword cElseKeyword_16 = (Keyword)cGroup.eContents().get(16);
+		private final Keyword cLeftParenthesisKeyword_17 = (Keyword)cGroup.eContents().get(17);
+		private final Assignment cConditionFalseBranchAssignment_18 = (Assignment)cGroup.eContents().get(18);
+		private final RuleCall cConditionFalseBranchAdaptationPlanParserRuleCall_18_0 = (RuleCall)cConditionFalseBranchAssignment_18.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_19 = (Keyword)cGroup.eContents().get(19);
+		
+		////	no comma to avoid multiple interpretations of the comma (e.g. AdaptationPlan)
+		////		(successor=[AbstractControlFlowElement|EString])?
+		//BranchAction:
+		//	"BranchAction"? ("[id:" id=EString "]")? "if" "(" "context" "=" context=[core::Entity|EString] "," "condition" "="
+		//	condition=EString ")" //	Predecessor and successor are in comments, to avoid problems with referencing 
+		//	//	different Actions an ordered List is used to get predecessor and successor
+		//	//		(predecessor=[AbstractControlFlowElement|EString])?
+		//	"then" "(" conditionTrueBranch=AdaptationPlan ")" "else" "(" conditionFalseBranch=AdaptationPlan ")";
+		public ParserRule getRule() { return rule; }
+
+		//"BranchAction"? ("[id:" id=EString "]")? "if" "(" "context" "=" context=[core::Entity|EString] "," "condition" "="
+		//condition=EString ")" //	Predecessor and successor are in comments, to avoid problems with referencing 
+		////	different Actions an ordered List is used to get predecessor and successor
+		////		(predecessor=[AbstractControlFlowElement|EString])?
+		//"then" "(" conditionTrueBranch=AdaptationPlan ")" "else" "(" conditionFalseBranch=AdaptationPlan ")"
+		public Group getGroup() { return cGroup; }
+
+		//"BranchAction"?
+		public Keyword getBranchActionKeyword_0() { return cBranchActionKeyword_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"if"
+		public Keyword getIfKeyword_2() { return cIfKeyword_2; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
+
+		//"context"
+		public Keyword getContextKeyword_4() { return cContextKeyword_4; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_5() { return cEqualsSignKeyword_5; }
+
+		//context=[core::Entity|EString]
+		public Assignment getContextAssignment_6() { return cContextAssignment_6; }
+
+		//[core::Entity|EString]
+		public CrossReference getContextEntityCrossReference_6_0() { return cContextEntityCrossReference_6_0; }
+
+		//EString
+		public RuleCall getContextEntityEStringParserRuleCall_6_0_1() { return cContextEntityEStringParserRuleCall_6_0_1; }
+
+		//","
+		public Keyword getCommaKeyword_7() { return cCommaKeyword_7; }
+
+		//"condition"
+		public Keyword getConditionKeyword_8() { return cConditionKeyword_8; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_9() { return cEqualsSignKeyword_9; }
+
+		//condition=EString
+		public Assignment getConditionAssignment_10() { return cConditionAssignment_10; }
+
+		//EString
+		public RuleCall getConditionEStringParserRuleCall_10_0() { return cConditionEStringParserRuleCall_10_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_11() { return cRightParenthesisKeyword_11; }
+
+		////	Predecessor and successor are in comments, to avoid problems with referencing 
+		////	different Actions an ordered List is used to get predecessor and successor
+		////		(predecessor=[AbstractControlFlowElement|EString])?
+		//"then"
+		public Keyword getThenKeyword_12() { return cThenKeyword_12; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_13() { return cLeftParenthesisKeyword_13; }
+
+		//conditionTrueBranch=AdaptationPlan
+		public Assignment getConditionTrueBranchAssignment_14() { return cConditionTrueBranchAssignment_14; }
+
+		//AdaptationPlan
+		public RuleCall getConditionTrueBranchAdaptationPlanParserRuleCall_14_0() { return cConditionTrueBranchAdaptationPlanParserRuleCall_14_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_15() { return cRightParenthesisKeyword_15; }
+
+		//"else"
+		public Keyword getElseKeyword_16() { return cElseKeyword_16; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_17() { return cLeftParenthesisKeyword_17; }
+
+		//conditionFalseBranch=AdaptationPlan
+		public Assignment getConditionFalseBranchAssignment_18() { return cConditionFalseBranchAssignment_18; }
+
+		//AdaptationPlan
+		public RuleCall getConditionFalseBranchAdaptationPlanParserRuleCall_18_0() { return cConditionFalseBranchAdaptationPlanParserRuleCall_18_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_19() { return cRightParenthesisKeyword_19; }
+	}
+
+	public class ActionReferenceElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionReference");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cActionReferenceKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cRefersToKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cRefersToAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final CrossReference cRefersToActionCrossReference_4_0 = (CrossReference)cRefersToAssignment_4.eContents().get(0);
+		private final RuleCall cRefersToActionEStringParserRuleCall_4_0_1 = (RuleCall)cRefersToActionCrossReference_4_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//ActionReference:
+		//	"ActionReference" ("[id:" id=EString "]")? "(" //	Predecessor and successor are in comments, to avoid problems with referencing 
+		//	//	different Actions an ordered List is used to get predecessor and successor
+		//	//		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		//	//		('successor' successor=[AbstractControlFlowElement|EString])?
+		//	"refersTo" refersTo=[Action|EString] ")";
+		public ParserRule getRule() { return rule; }
+
+		//"ActionReference" ("[id:" id=EString "]")? "(" //	Predecessor and successor are in comments, to avoid problems with referencing 
+		////	different Actions an ordered List is used to get predecessor and successor
+		////		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		////		('successor' successor=[AbstractControlFlowElement|EString])?
+		//"refersTo" refersTo=[Action|EString] ")"
+		public Group getGroup() { return cGroup; }
+
+		//"ActionReference"
+		public Keyword getActionReferenceKeyword_0() { return cActionReferenceKeyword_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
+
+		////	Predecessor and successor are in comments, to avoid problems with referencing 
+		////	different Actions an ordered List is used to get predecessor and successor
+		////		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		////		('successor' successor=[AbstractControlFlowElement|EString])?
+		//"refersTo"
+		public Keyword getRefersToKeyword_3() { return cRefersToKeyword_3; }
+
+		//refersTo=[Action|EString]
+		public Assignment getRefersToAssignment_4() { return cRefersToAssignment_4; }
+
+		//[Action|EString]
+		public CrossReference getRefersToActionCrossReference_4_0() { return cRefersToActionCrossReference_4_0; }
+
+		//EString
+		public RuleCall getRefersToActionEStringParserRuleCall_4_0_1() { return cRefersToActionEStringParserRuleCall_4_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
+	}
+
+	public class AdaptationActionOperationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AdaptationActionOperation");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cLeftParenthesisKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cAdaptationOperationDirectionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0 = (RuleCall)cAdaptationOperationDirectionAssignment_1.eContents().get(0);
+		private final Keyword cCommaKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cAdaptationOperationScopeAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0 = (RuleCall)cAdaptationOperationScopeAssignment_3.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//AdaptationActionOperation:
+		//	"(" adaptationOperationDirection=AdaptationDirection "," adaptationOperationScope=AdaptationScope ")";
+		public ParserRule getRule() { return rule; }
+
+		//"(" adaptationOperationDirection=AdaptationDirection "," adaptationOperationScope=AdaptationScope ")"
+		public Group getGroup() { return cGroup; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_0() { return cLeftParenthesisKeyword_0; }
+
+		//adaptationOperationDirection=AdaptationDirection
+		public Assignment getAdaptationOperationDirectionAssignment_1() { return cAdaptationOperationDirectionAssignment_1; }
+
+		//AdaptationDirection
+		public RuleCall getAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0() { return cAdaptationOperationDirectionAdaptationDirectionEnumRuleCall_1_0; }
+
+		//","
+		public Keyword getCommaKeyword_2() { return cCommaKeyword_2; }
+
+		//adaptationOperationScope=AdaptationScope
+		public Assignment getAdaptationOperationScopeAssignment_3() { return cAdaptationOperationScopeAssignment_3; }
+
+		//AdaptationScope
+		public RuleCall getAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0() { return cAdaptationOperationScopeAdaptationScopeEnumRuleCall_3_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
+	}
+
+	public class ModelVariableConfigurationRangeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModelVariableConfigurationRange");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cModelVariableConfigurationRangeKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cNameKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cNameEStringParserRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
+		private final Keyword cMinValueKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cMinValueAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cMinValueEDoubleParserRuleCall_6_0 = (RuleCall)cMinValueAssignment_6.eContents().get(0);
+		private final Keyword cMaxValueKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cMaxValueAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cMaxValueEDoubleParserRuleCall_8_0 = (RuleCall)cMaxValueAssignment_8.eContents().get(0);
+		private final Keyword cAdaptableEntityKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Assignment cAdaptableEntityAssignment_10 = (Assignment)cGroup.eContents().get(10);
+		private final CrossReference cAdaptableEntityAdaptableEntityCrossReference_10_0 = (CrossReference)cAdaptableEntityAssignment_10.eContents().get(0);
+		private final RuleCall cAdaptableEntityAdaptableEntityEStringParserRuleCall_10_0_1 = (RuleCall)cAdaptableEntityAdaptableEntityCrossReference_10_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
+		
+		//ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange:
+		//	"ModelVariableConfigurationRange" ("[id:" id=EString "]")? "{" "name" name=EString "minValue" minValue=EDouble
+		//	"maxValue" maxValue=EDouble "adaptableEntity" adaptableEntity=[core::AdaptableEntity|EString] "}";
+		public ParserRule getRule() { return rule; }
+
+		//"ModelVariableConfigurationRange" ("[id:" id=EString "]")? "{" "name" name=EString "minValue" minValue=EDouble
+		//"maxValue" maxValue=EDouble "adaptableEntity" adaptableEntity=[core::AdaptableEntity|EString] "}"
+		public Group getGroup() { return cGroup; }
+
+		//"ModelVariableConfigurationRange"
+		public Keyword getModelVariableConfigurationRangeKeyword_0() { return cModelVariableConfigurationRangeKeyword_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"name"
+		public Keyword getNameKeyword_3() { return cNameKeyword_3; }
+
+		//name=EString
+		public Assignment getNameAssignment_4() { return cNameAssignment_4; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_4_0() { return cNameEStringParserRuleCall_4_0; }
+
+		//"minValue"
+		public Keyword getMinValueKeyword_5() { return cMinValueKeyword_5; }
+
+		//minValue=EDouble
+		public Assignment getMinValueAssignment_6() { return cMinValueAssignment_6; }
+
+		//EDouble
+		public RuleCall getMinValueEDoubleParserRuleCall_6_0() { return cMinValueEDoubleParserRuleCall_6_0; }
+
+		//"maxValue"
+		public Keyword getMaxValueKeyword_7() { return cMaxValueKeyword_7; }
+
+		//maxValue=EDouble
+		public Assignment getMaxValueAssignment_8() { return cMaxValueAssignment_8; }
+
+		//EDouble
+		public RuleCall getMaxValueEDoubleParserRuleCall_8_0() { return cMaxValueEDoubleParserRuleCall_8_0; }
+
+		//"adaptableEntity"
+		public Keyword getAdaptableEntityKeyword_9() { return cAdaptableEntityKeyword_9; }
+
+		//adaptableEntity=[core::AdaptableEntity|EString]
+		public Assignment getAdaptableEntityAssignment_10() { return cAdaptableEntityAssignment_10; }
+
+		//[core::AdaptableEntity|EString]
+		public CrossReference getAdaptableEntityAdaptableEntityCrossReference_10_0() { return cAdaptableEntityAdaptableEntityCrossReference_10_0; }
+
+		//EString
+		public RuleCall getAdaptableEntityAdaptableEntityEStringParserRuleCall_10_0_1() { return cAdaptableEntityAdaptableEntityEStringParserRuleCall_10_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_11() { return cRightCurlyBracketKeyword_11; }
+	}
+
+	public class ModelEntityConfigurationRangeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModelEntityConfigurationRange");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cModelEntityConfigurationRangeKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cNameKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cNameEStringParserRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
+		private final Keyword cAdaptableEntityKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cAdaptableEntityAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final CrossReference cAdaptableEntityEntityCrossReference_6_0 = (CrossReference)cAdaptableEntityAssignment_6.eContents().get(0);
+		private final RuleCall cAdaptableEntityEntityEStringParserRuleCall_6_0_1 = (RuleCall)cAdaptableEntityEntityCrossReference_6_0.eContents().get(1);
+		private final Keyword cVariationPossibilityKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cVariationPossibilityAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cVariationPossibilityVariationTypeParserRuleCall_8_0 = (RuleCall)cVariationPossibilityAssignment_8.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		
+		//ModelEntityConfigurationRange returns adaptationpoints::ModelEntityConfigurationRange:
+		//	"ModelEntityConfigurationRange" ("[id:" id=EString "]")? "{" "name" name=EString "adaptableEntity"
+		//	adaptableEntity=[core::Entity|EString] "variationPossibility" variationPossibility=VariationType "}";
+		public ParserRule getRule() { return rule; }
+
+		//"ModelEntityConfigurationRange" ("[id:" id=EString "]")? "{" "name" name=EString "adaptableEntity"
+		//adaptableEntity=[core::Entity|EString] "variationPossibility" variationPossibility=VariationType "}"
+		public Group getGroup() { return cGroup; }
+
+		//"ModelEntityConfigurationRange"
+		public Keyword getModelEntityConfigurationRangeKeyword_0() { return cModelEntityConfigurationRangeKeyword_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"name"
+		public Keyword getNameKeyword_3() { return cNameKeyword_3; }
+
+		//name=EString
+		public Assignment getNameAssignment_4() { return cNameAssignment_4; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_4_0() { return cNameEStringParserRuleCall_4_0; }
+
+		//"adaptableEntity"
+		public Keyword getAdaptableEntityKeyword_5() { return cAdaptableEntityKeyword_5; }
+
+		//adaptableEntity=[core::Entity|EString]
+		public Assignment getAdaptableEntityAssignment_6() { return cAdaptableEntityAssignment_6; }
+
+		//[core::Entity|EString]
+		public CrossReference getAdaptableEntityEntityCrossReference_6_0() { return cAdaptableEntityEntityCrossReference_6_0; }
+
+		//EString
+		public RuleCall getAdaptableEntityEntityEStringParserRuleCall_6_0_1() { return cAdaptableEntityEntityEStringParserRuleCall_6_0_1; }
+
+		//"variationPossibility"
+		public Keyword getVariationPossibilityKeyword_7() { return cVariationPossibilityKeyword_7; }
+
+		//variationPossibility=VariationType
+		public Assignment getVariationPossibilityAssignment_8() { return cVariationPossibilityAssignment_8; }
+
+		//VariationType
+		public RuleCall getVariationPossibilityVariationTypeParserRuleCall_8_0() { return cVariationPossibilityVariationTypeParserRuleCall_8_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+	}
+
+	public class EDoubleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EDouble");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
+		private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final RuleCall cINTTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Alternatives cAlternatives_4_0 = (Alternatives)cGroup_4.eContents().get(0);
+		private final Keyword cEKeyword_4_0_0 = (Keyword)cAlternatives_4_0.eContents().get(0);
+		private final Keyword cEKeyword_4_0_1 = (Keyword)cAlternatives_4_0.eContents().get(1);
+		private final Keyword cHyphenMinusKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
+		private final RuleCall cINTTerminalRuleCall_4_2 = (RuleCall)cGroup_4.eContents().get(2);
+		
+		//EDouble returns ecore::EDouble:
+		//	"-"? INT? "." INT (("E" | "e") "-"? INT)?;
+		public ParserRule getRule() { return rule; }
+
+		//"-"? INT? "." INT (("E" | "e") "-"? INT)?
+		public Group getGroup() { return cGroup; }
+
+		//"-"?
+		public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
+
+		//INT?
+		public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; }
+
+		//"."
+		public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; }
+
+		//INT
+		public RuleCall getINTTerminalRuleCall_3() { return cINTTerminalRuleCall_3; }
+
+		//(("E" | "e") "-"? INT)?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//"E" | "e"
+		public Alternatives getAlternatives_4_0() { return cAlternatives_4_0; }
+
+		//"E"
+		public Keyword getEKeyword_4_0_0() { return cEKeyword_4_0_0; }
+
+		//"e"
+		public Keyword getEKeyword_4_0_1() { return cEKeyword_4_0_1; }
+
+		//"-"?
+		public Keyword getHyphenMinusKeyword_4_1() { return cHyphenMinusKeyword_4_1; }
+
+		//INT
+		public RuleCall getINTTerminalRuleCall_4_2() { return cINTTerminalRuleCall_4_2; }
+	}
+
+	public class PropertyRangeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyRange");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cPropertyRangeKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cMinValueConstraintKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cMinValueConstraintAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cMinValueConstraintOclConstraintParserRuleCall_3_0 = (RuleCall)cMinValueConstraintAssignment_3.eContents().get(0);
+		private final Keyword cMaxValueConstraintKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cMaxValueConstraintAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cMaxValueConstraintOclConstraintParserRuleCall_5_0 = (RuleCall)cMaxValueConstraintAssignment_5.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//PropertyRange returns adaptationpoints::PropertyRange:
+		//	"PropertyRange" "{" "minValueConstraint" minValueConstraint=OclConstraint "maxValueConstraint"
+		//	maxValueConstraint=OclConstraint "}";
+		public ParserRule getRule() { return rule; }
+
+		//"PropertyRange" "{" "minValueConstraint" minValueConstraint=OclConstraint "maxValueConstraint"
+		//maxValueConstraint=OclConstraint "}"
+		public Group getGroup() { return cGroup; }
+
+		//"PropertyRange"
+		public Keyword getPropertyRangeKeyword_0() { return cPropertyRangeKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//"minValueConstraint"
+		public Keyword getMinValueConstraintKeyword_2() { return cMinValueConstraintKeyword_2; }
+
+		//minValueConstraint=OclConstraint
+		public Assignment getMinValueConstraintAssignment_3() { return cMinValueConstraintAssignment_3; }
+
+		//OclConstraint
+		public RuleCall getMinValueConstraintOclConstraintParserRuleCall_3_0() { return cMinValueConstraintOclConstraintParserRuleCall_3_0; }
+
+		//"maxValueConstraint"
+		public Keyword getMaxValueConstraintKeyword_4() { return cMaxValueConstraintKeyword_4; }
+
+		//maxValueConstraint=OclConstraint
+		public Assignment getMaxValueConstraintAssignment_5() { return cMaxValueConstraintAssignment_5; }
+
+		//OclConstraint
+		public RuleCall getMaxValueConstraintOclConstraintParserRuleCall_5_0() { return cMaxValueConstraintOclConstraintParserRuleCall_5_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+	}
+
+	public class SetOfConfigurationsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SetOfConfigurations");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cSetOfConfigurationsKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cVariantsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Keyword cLeftParenthesisKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1);
+		private final Assignment cVariantsAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2);
+		private final CrossReference cVariantsEntityCrossReference_2_2_0 = (CrossReference)cVariantsAssignment_2_2.eContents().get(0);
+		private final RuleCall cVariantsEntityEStringParserRuleCall_2_2_0_1 = (RuleCall)cVariantsEntityCrossReference_2_2_0.eContents().get(1);
+		private final Group cGroup_2_3 = (Group)cGroup_2.eContents().get(3);
+		private final Keyword cCommaKeyword_2_3_0 = (Keyword)cGroup_2_3.eContents().get(0);
+		private final Assignment cVariantsAssignment_2_3_1 = (Assignment)cGroup_2_3.eContents().get(1);
+		private final CrossReference cVariantsEntityCrossReference_2_3_1_0 = (CrossReference)cVariantsAssignment_2_3_1.eContents().get(0);
+		private final RuleCall cVariantsEntityEStringParserRuleCall_2_3_1_0_1 = (RuleCall)cVariantsEntityCrossReference_2_3_1_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_2_4 = (Keyword)cGroup_2.eContents().get(4);
+		private final Keyword cValueConstraintKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cValueConstraintAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cValueConstraintOclConstraintParserRuleCall_4_0 = (RuleCall)cValueConstraintAssignment_4.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//SetOfConfigurations returns adaptationpoints::SetOfConfigurations:
+		//	"SetOfConfigurations" "{" ("variants" "(" variants+=[core::Entity|EString] ("," variants+=[core::Entity|EString])*
+		//	")")? "valueConstraint" valueConstraint=OclConstraint "}";
+		public ParserRule getRule() { return rule; }
+
+		//"SetOfConfigurations" "{" ("variants" "(" variants+=[core::Entity|EString] ("," variants+=[core::Entity|EString])* ")")?
+		//"valueConstraint" valueConstraint=OclConstraint "}"
+		public Group getGroup() { return cGroup; }
+
+		//"SetOfConfigurations"
+		public Keyword getSetOfConfigurationsKeyword_0() { return cSetOfConfigurationsKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//("variants" "(" variants+=[core::Entity|EString] ("," variants+=[core::Entity|EString])* ")")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"variants"
+		public Keyword getVariantsKeyword_2_0() { return cVariantsKeyword_2_0; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_2_1() { return cLeftParenthesisKeyword_2_1; }
+
+		//variants+=[core::Entity|EString]
+		public Assignment getVariantsAssignment_2_2() { return cVariantsAssignment_2_2; }
+
+		//[core::Entity|EString]
+		public CrossReference getVariantsEntityCrossReference_2_2_0() { return cVariantsEntityCrossReference_2_2_0; }
+
+		//EString
+		public RuleCall getVariantsEntityEStringParserRuleCall_2_2_0_1() { return cVariantsEntityEStringParserRuleCall_2_2_0_1; }
+
+		//("," variants+=[core::Entity|EString])*
+		public Group getGroup_2_3() { return cGroup_2_3; }
+
+		//","
+		public Keyword getCommaKeyword_2_3_0() { return cCommaKeyword_2_3_0; }
+
+		//variants+=[core::Entity|EString]
+		public Assignment getVariantsAssignment_2_3_1() { return cVariantsAssignment_2_3_1; }
+
+		//[core::Entity|EString]
+		public CrossReference getVariantsEntityCrossReference_2_3_1_0() { return cVariantsEntityCrossReference_2_3_1_0; }
+
+		//EString
+		public RuleCall getVariantsEntityEStringParserRuleCall_2_3_1_0_1() { return cVariantsEntityEStringParserRuleCall_2_3_1_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_2_4() { return cRightParenthesisKeyword_2_4; }
+
+		//"valueConstraint"
+		public Keyword getValueConstraintKeyword_3() { return cValueConstraintKeyword_3; }
+
+		//valueConstraint=OclConstraint
+		public Assignment getValueConstraintAssignment_4() { return cValueConstraintAssignment_4; }
+
+		//OclConstraint
+		public RuleCall getValueConstraintOclConstraintParserRuleCall_4_0() { return cValueConstraintOclConstraintParserRuleCall_4_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	public class OclConstraintElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "OclConstraint");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cOclConstraintKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cOclStringKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cOclStringAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cOclStringEStringParserRuleCall_4_0 = (RuleCall)cOclStringAssignment_4.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//OclConstraint returns adaptationpoints::OclConstraint:
+		//	"OclConstraint" name=EString "{" "oclString" oclString=EString "}";
+		public ParserRule getRule() { return rule; }
+
+		//"OclConstraint" name=EString "{" "oclString" oclString=EString "}"
+		public Group getGroup() { return cGroup; }
+
+		//"OclConstraint"
+		public Keyword getOclConstraintKeyword_0() { return cOclConstraintKeyword_0; }
+
+		//name=EString
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"oclString"
+		public Keyword getOclStringKeyword_3() { return cOclStringKeyword_3; }
+
+		//oclString=EString
+		public Assignment getOclStringAssignment_4() { return cOclStringAssignment_4; }
+
+		//EString
+		public RuleCall getOclStringEStringParserRuleCall_4_0() { return cOclStringEStringParserRuleCall_4_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	public class ObjectiveElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Objective");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cNameEStringParserRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cSpecificationKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cEqualsSignKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Alternatives cAlternatives_5 = (Alternatives)cGroup.eContents().get(5);
+		private final Assignment cSpecificationsAssignment_5_0 = (Assignment)cAlternatives_5.eContents().get(0);
+		private final RuleCall cSpecificationsSpecificationParserRuleCall_5_0_0 = (RuleCall)cSpecificationsAssignment_5_0.eContents().get(0);
+		private final Group cGroup_5_1 = (Group)cAlternatives_5.eContents().get(1);
+		private final Keyword cLeftParenthesisKeyword_5_1_0 = (Keyword)cGroup_5_1.eContents().get(0);
+		private final Assignment cSpecificationsAssignment_5_1_1 = (Assignment)cGroup_5_1.eContents().get(1);
+		private final RuleCall cSpecificationsSpecificationParserRuleCall_5_1_1_0 = (RuleCall)cSpecificationsAssignment_5_1_1.eContents().get(0);
+		private final Group cGroup_5_1_2 = (Group)cGroup_5_1.eContents().get(2);
+		private final Keyword cCommaKeyword_5_1_2_0 = (Keyword)cGroup_5_1_2.eContents().get(0);
+		private final Assignment cSpecificationsAssignment_5_1_2_1 = (Assignment)cGroup_5_1_2.eContents().get(1);
+		private final RuleCall cSpecificationsSpecificationParserRuleCall_5_1_2_1_0 = (RuleCall)cSpecificationsAssignment_5_1_2_1.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_5_1_3 = (Keyword)cGroup_5_1.eContents().get(3);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//Objective:
+		//	name=EString ("[id:" id=EString "]")? "{" "specification" "=" (specifications+=Specification | "("
+		//	specifications+=Specification ("," specifications+=Specification)* ")") "}";
+		public ParserRule getRule() { return rule; }
+
+		//name=EString ("[id:" id=EString "]")? "{" "specification" "=" (specifications+=Specification | "("
+		//specifications+=Specification ("," specifications+=Specification)* ")") "}"
+		public Group getGroup() { return cGroup; }
+
+		//name=EString
+		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_0_0() { return cNameEStringParserRuleCall_0_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"specification"
+		public Keyword getSpecificationKeyword_3() { return cSpecificationKeyword_3; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_4() { return cEqualsSignKeyword_4; }
+
+		//specifications+=Specification | "(" specifications+=Specification ("," specifications+=Specification)* ")"
+		public Alternatives getAlternatives_5() { return cAlternatives_5; }
+
+		//specifications+=Specification
+		public Assignment getSpecificationsAssignment_5_0() { return cSpecificationsAssignment_5_0; }
+
+		//Specification
+		public RuleCall getSpecificationsSpecificationParserRuleCall_5_0_0() { return cSpecificationsSpecificationParserRuleCall_5_0_0; }
+
+		//"(" specifications+=Specification ("," specifications+=Specification)* ")"
+		public Group getGroup_5_1() { return cGroup_5_1; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_5_1_0() { return cLeftParenthesisKeyword_5_1_0; }
+
+		//specifications+=Specification
+		public Assignment getSpecificationsAssignment_5_1_1() { return cSpecificationsAssignment_5_1_1; }
+
+		//Specification
+		public RuleCall getSpecificationsSpecificationParserRuleCall_5_1_1_0() { return cSpecificationsSpecificationParserRuleCall_5_1_1_0; }
+
+		//("," specifications+=Specification)*
+		public Group getGroup_5_1_2() { return cGroup_5_1_2; }
+
+		//","
+		public Keyword getCommaKeyword_5_1_2_0() { return cCommaKeyword_5_1_2_0; }
+
+		//specifications+=Specification
+		public Assignment getSpecificationsAssignment_5_1_2_1() { return cSpecificationsAssignment_5_1_2_1; }
+
+		//Specification
+		public RuleCall getSpecificationsSpecificationParserRuleCall_5_1_2_1_0() { return cSpecificationsSpecificationParserRuleCall_5_1_2_1_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_5_1_3() { return cRightParenthesisKeyword_5_1_3; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+	}
+
+	public class EventElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Event");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cNameEStringParserRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		
+		//Event:
+		//	name=EString ("[id:" id=EString "]")?;
+		public ParserRule getRule() { return rule; }
+
+		//name=EString ("[id:" id=EString "]")?
+		public Group getGroup() { return cGroup; }
+
+		//name=EString
+		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_0_0() { return cNameEStringParserRuleCall_0_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+	}
+
+	public class WeightedTacticElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "WeightedTactic");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cNameEStringParserRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cTacticKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
+		private final Assignment cUsedTacticAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final CrossReference cUsedTacticTacticCrossReference_5_0 = (CrossReference)cUsedTacticAssignment_5.eContents().get(0);
+		private final RuleCall cUsedTacticTacticEStringParserRuleCall_5_0_1 = (RuleCall)cUsedTacticTacticCrossReference_5_0.eContents().get(1);
+		private final Keyword cCommaKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Keyword cDefaultKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
+		private final Assignment cDefaultWeightAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cDefaultWeightEDoubleParserRuleCall_8_0 = (RuleCall)cDefaultWeightAssignment_8.eContents().get(0);
+		private final Keyword cCommaKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
+		private final Keyword cCurrentKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_10_1 = (Keyword)cGroup_10.eContents().get(1);
+		private final Assignment cCurrentWeightAssignment_11 = (Assignment)cGroup.eContents().get(11);
+		private final RuleCall cCurrentWeightEDoubleParserRuleCall_11_0 = (RuleCall)cCurrentWeightAssignment_11.eContents().get(0);
+		private final Group cGroup_12 = (Group)cGroup.eContents().get(12);
+		private final Keyword cCommaKeyword_12_0 = (Keyword)cGroup_12.eContents().get(0);
+		private final Group cGroup_12_1 = (Group)cGroup_12.eContents().get(1);
+		private final Keyword cLastImpactKeyword_12_1_0 = (Keyword)cGroup_12_1.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_12_1_1 = (Keyword)cGroup_12_1.eContents().get(1);
+		private final Assignment cLastImpactAssignment_12_2 = (Assignment)cGroup_12.eContents().get(2);
+		private final CrossReference cLastImpactImpactCrossReference_12_2_0 = (CrossReference)cLastImpactAssignment_12_2.eContents().get(0);
+		private final RuleCall cLastImpactImpactEStringParserRuleCall_12_2_0_1 = (RuleCall)cLastImpactImpactCrossReference_12_2_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_13 = (Keyword)cGroup.eContents().get(13);
+		
+		//WeightedTactic:
+		//	name=EString ("[id:" id=EString "]")? "=" "(" ("tactic" "=")? usedTactic=[Tactic|EString] "," ("default" "=")?
+		//	defaultWeight=EDouble "," ("current" "=")? currentWeight=EDouble ("," ("lastImpact" "=")?
+		//	lastImpact=[perfdatarepo::Impact|EString])? ")";
+		public ParserRule getRule() { return rule; }
+
+		//name=EString ("[id:" id=EString "]")? "=" "(" ("tactic" "=")? usedTactic=[Tactic|EString] "," ("default" "=")?
+		//defaultWeight=EDouble "," ("current" "=")? currentWeight=EDouble ("," ("lastImpact" "=")?
+		//lastImpact=[perfdatarepo::Impact|EString])? ")"
+		public Group getGroup() { return cGroup; }
+
+		//name=EString
+		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_0_0() { return cNameEStringParserRuleCall_0_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_2() { return cEqualsSignKeyword_2; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
+
+		//("tactic" "=")?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//"tactic"
+		public Keyword getTacticKeyword_4_0() { return cTacticKeyword_4_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_4_1() { return cEqualsSignKeyword_4_1; }
+
+		//usedTactic=[Tactic|EString]
+		public Assignment getUsedTacticAssignment_5() { return cUsedTacticAssignment_5; }
+
+		//[Tactic|EString]
+		public CrossReference getUsedTacticTacticCrossReference_5_0() { return cUsedTacticTacticCrossReference_5_0; }
+
+		//EString
+		public RuleCall getUsedTacticTacticEStringParserRuleCall_5_0_1() { return cUsedTacticTacticEStringParserRuleCall_5_0_1; }
+
+		//","
+		public Keyword getCommaKeyword_6() { return cCommaKeyword_6; }
+
+		//("default" "=")?
+		public Group getGroup_7() { return cGroup_7; }
+
+		//"default"
+		public Keyword getDefaultKeyword_7_0() { return cDefaultKeyword_7_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_7_1() { return cEqualsSignKeyword_7_1; }
+
+		//defaultWeight=EDouble
+		public Assignment getDefaultWeightAssignment_8() { return cDefaultWeightAssignment_8; }
+
+		//EDouble
+		public RuleCall getDefaultWeightEDoubleParserRuleCall_8_0() { return cDefaultWeightEDoubleParserRuleCall_8_0; }
+
+		//","
+		public Keyword getCommaKeyword_9() { return cCommaKeyword_9; }
+
+		//("current" "=")?
+		public Group getGroup_10() { return cGroup_10; }
+
+		//"current"
+		public Keyword getCurrentKeyword_10_0() { return cCurrentKeyword_10_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_10_1() { return cEqualsSignKeyword_10_1; }
+
+		//currentWeight=EDouble
+		public Assignment getCurrentWeightAssignment_11() { return cCurrentWeightAssignment_11; }
+
+		//EDouble
+		public RuleCall getCurrentWeightEDoubleParserRuleCall_11_0() { return cCurrentWeightEDoubleParserRuleCall_11_0; }
+
+		//("," ("lastImpact" "=")? lastImpact=[perfdatarepo::Impact|EString])?
+		public Group getGroup_12() { return cGroup_12; }
+
+		//","
+		public Keyword getCommaKeyword_12_0() { return cCommaKeyword_12_0; }
+
+		//("lastImpact" "=")?
+		public Group getGroup_12_1() { return cGroup_12_1; }
+
+		//"lastImpact"
+		public Keyword getLastImpactKeyword_12_1_0() { return cLastImpactKeyword_12_1_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_12_1_1() { return cEqualsSignKeyword_12_1_1; }
+
+		//lastImpact=[perfdatarepo::Impact|EString]
+		public Assignment getLastImpactAssignment_12_2() { return cLastImpactAssignment_12_2; }
+
+		//[perfdatarepo::Impact|EString]
+		public CrossReference getLastImpactImpactCrossReference_12_2_0() { return cLastImpactImpactCrossReference_12_2_0; }
+
+		//EString
+		public RuleCall getLastImpactImpactEStringParserRuleCall_12_2_0_1() { return cLastImpactImpactEStringParserRuleCall_12_2_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_13() { return cRightParenthesisKeyword_13; }
+	}
+
+	public class WeightingFunctionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "WeightingFunction");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cNameEStringParserRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cWeightingFunctionImplementationKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cEqualsSignKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cWeightingFunctionImplementationAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cWeightingFunctionImplementationEStringParserRuleCall_6_0 = (RuleCall)cWeightingFunctionImplementationAssignment_6.eContents().get(0);
+		private final Keyword cWeightedMetricsKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Keyword cEqualsSignKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Keyword cLeftParenthesisKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Assignment cWeightedMetricsAssignment_10 = (Assignment)cGroup.eContents().get(10);
+		private final RuleCall cWeightedMetricsWeightedMetricParserRuleCall_10_0 = (RuleCall)cWeightedMetricsAssignment_10.eContents().get(0);
+		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
+		private final Keyword cCommaKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
+		private final Assignment cWeightedMetricsAssignment_11_1 = (Assignment)cGroup_11.eContents().get(1);
+		private final RuleCall cWeightedMetricsWeightedMetricParserRuleCall_11_1_0 = (RuleCall)cWeightedMetricsAssignment_11_1.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_12 = (Keyword)cGroup.eContents().get(12);
+		private final Keyword cRightParenthesisKeyword_13 = (Keyword)cGroup.eContents().get(13);
+		
+		//WeightingFunction:
+		//	name=EString ("[id:" id=EString "]")? "=" "(" "weightingFunctionImplementation" "="
+		//	weightingFunctionImplementation=EString "weightedMetrics" "=" "(" weightedMetrics+=WeightedMetric (","
+		//	weightedMetrics+=WeightedMetric)* ")" ")";
+		public ParserRule getRule() { return rule; }
+
+		//name=EString ("[id:" id=EString "]")? "=" "(" "weightingFunctionImplementation" "="
+		//weightingFunctionImplementation=EString "weightedMetrics" "=" "(" weightedMetrics+=WeightedMetric (","
+		//weightedMetrics+=WeightedMetric)* ")" ")"
+		public Group getGroup() { return cGroup; }
+
+		//name=EString
+		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_0_0() { return cNameEStringParserRuleCall_0_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_2() { return cEqualsSignKeyword_2; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
+
+		//"weightingFunctionImplementation"
+		public Keyword getWeightingFunctionImplementationKeyword_4() { return cWeightingFunctionImplementationKeyword_4; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_5() { return cEqualsSignKeyword_5; }
+
+		//weightingFunctionImplementation=EString
+		public Assignment getWeightingFunctionImplementationAssignment_6() { return cWeightingFunctionImplementationAssignment_6; }
+
+		//EString
+		public RuleCall getWeightingFunctionImplementationEStringParserRuleCall_6_0() { return cWeightingFunctionImplementationEStringParserRuleCall_6_0; }
+
+		//"weightedMetrics"
+		public Keyword getWeightedMetricsKeyword_7() { return cWeightedMetricsKeyword_7; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_8() { return cEqualsSignKeyword_8; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_9() { return cLeftParenthesisKeyword_9; }
+
+		//weightedMetrics+=WeightedMetric
+		public Assignment getWeightedMetricsAssignment_10() { return cWeightedMetricsAssignment_10; }
+
+		//WeightedMetric
+		public RuleCall getWeightedMetricsWeightedMetricParserRuleCall_10_0() { return cWeightedMetricsWeightedMetricParserRuleCall_10_0; }
+
+		//("," weightedMetrics+=WeightedMetric)*
+		public Group getGroup_11() { return cGroup_11; }
+
+		//","
+		public Keyword getCommaKeyword_11_0() { return cCommaKeyword_11_0; }
+
+		//weightedMetrics+=WeightedMetric
+		public Assignment getWeightedMetricsAssignment_11_1() { return cWeightedMetricsAssignment_11_1; }
+
+		//WeightedMetric
+		public RuleCall getWeightedMetricsWeightedMetricParserRuleCall_11_1_0() { return cWeightedMetricsWeightedMetricParserRuleCall_11_1_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_12() { return cRightParenthesisKeyword_12; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_13() { return cRightParenthesisKeyword_13; }
+	}
+
+	public class SpecificationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Specification");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cSpecificationKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cMetricTypeKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cMetricTypeAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final CrossReference cMetricTypeMetricTypeCrossReference_3_0 = (CrossReference)cMetricTypeAssignment_3.eContents().get(0);
+		private final RuleCall cMetricTypeMetricTypeEStringParserRuleCall_3_0_1 = (RuleCall)cMetricTypeMetricTypeCrossReference_3_0.eContents().get(1);
+		private final Keyword cCommaKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cRelationalOperatorKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cRelationalOperatorAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cRelationalOperatorRelationalOperatorEnumRuleCall_6_0 = (RuleCall)cRelationalOperatorAssignment_6.eContents().get(0);
+		private final Keyword cCommaKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Keyword cValueKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cValueAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cValueEDoubleParserRuleCall_9_0 = (RuleCall)cValueAssignment_9.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		
+		//Specification:
+		//	"Specification"? "(" "metricType"? metricType=[perfdatarepo::MetricType|EString] "," "relationalOperator"?
+		//	relationalOperator=RelationalOperator "," "value"? value=EDouble ")";
+		public ParserRule getRule() { return rule; }
+
+		//"Specification"? "(" "metricType"? metricType=[perfdatarepo::MetricType|EString] "," "relationalOperator"?
+		//relationalOperator=RelationalOperator "," "value"? value=EDouble ")"
+		public Group getGroup() { return cGroup; }
+
+		//"Specification"?
+		public Keyword getSpecificationKeyword_0() { return cSpecificationKeyword_0; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
+
+		//"metricType"?
+		public Keyword getMetricTypeKeyword_2() { return cMetricTypeKeyword_2; }
+
+		//metricType=[perfdatarepo::MetricType|EString]
+		public Assignment getMetricTypeAssignment_3() { return cMetricTypeAssignment_3; }
+
+		//[perfdatarepo::MetricType|EString]
+		public CrossReference getMetricTypeMetricTypeCrossReference_3_0() { return cMetricTypeMetricTypeCrossReference_3_0; }
+
+		//EString
+		public RuleCall getMetricTypeMetricTypeEStringParserRuleCall_3_0_1() { return cMetricTypeMetricTypeEStringParserRuleCall_3_0_1; }
+
+		//","
+		public Keyword getCommaKeyword_4() { return cCommaKeyword_4; }
+
+		//"relationalOperator"?
+		public Keyword getRelationalOperatorKeyword_5() { return cRelationalOperatorKeyword_5; }
+
+		//relationalOperator=RelationalOperator
+		public Assignment getRelationalOperatorAssignment_6() { return cRelationalOperatorAssignment_6; }
+
+		//RelationalOperator
+		public RuleCall getRelationalOperatorRelationalOperatorEnumRuleCall_6_0() { return cRelationalOperatorRelationalOperatorEnumRuleCall_6_0; }
+
+		//","
+		public Keyword getCommaKeyword_7() { return cCommaKeyword_7; }
+
+		//"value"?
+		public Keyword getValueKeyword_8() { return cValueKeyword_8; }
+
+		//value=EDouble
+		public Assignment getValueAssignment_9() { return cValueAssignment_9; }
+
+		//EDouble
+		public RuleCall getValueEDoubleParserRuleCall_9_0() { return cValueEDoubleParserRuleCall_9_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_10() { return cRightParenthesisKeyword_10; }
+	}
+
+	public class MetricTypeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MetricType");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cMetricTypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cNameKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cNameEStringParserRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//MetricType returns perfdatarepo::MetricType:
+		//	"MetricType" ("[id:" id=EString "]")? "{" "name" name=EString "}";
+		public ParserRule getRule() { return rule; }
+
+		//"MetricType" ("[id:" id=EString "]")? "{" "name" name=EString "}"
+		public Group getGroup() { return cGroup; }
+
+		//"MetricType"
+		public Keyword getMetricTypeKeyword_0() { return cMetricTypeKeyword_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"name"
+		public Keyword getNameKeyword_3() { return cNameKeyword_3; }
+
+		//name=EString
+		public Assignment getNameAssignment_4() { return cNameAssignment_4; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_4_0() { return cNameEStringParserRuleCall_4_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	public class ImpactElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Impact");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cImpactKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cNameKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cNameEStringParserRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
+		private final Keyword cBeforeKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cBeforeAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final CrossReference cBeforeResultCrossReference_6_0 = (CrossReference)cBeforeAssignment_6.eContents().get(0);
+		private final RuleCall cBeforeResultEStringParserRuleCall_6_0_1 = (RuleCall)cBeforeResultCrossReference_6_0.eContents().get(1);
+		private final Keyword cAfterKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cAfterAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final CrossReference cAfterResultCrossReference_8_0 = (CrossReference)cAfterAssignment_8.eContents().get(0);
+		private final RuleCall cAfterResultEStringParserRuleCall_8_0_1 = (RuleCall)cAfterResultCrossReference_8_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		
+		//Impact returns perfdatarepo::Impact:
+		//	"Impact" ("[id:" id=EString "]")? "{" "name" name=EString "before" before=[perfdatarepo::Result|EString] "after"
+		//	after=[perfdatarepo::Result|EString] "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Impact" ("[id:" id=EString "]")? "{" "name" name=EString "before" before=[perfdatarepo::Result|EString] "after"
+		//after=[perfdatarepo::Result|EString] "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Impact"
+		public Keyword getImpactKeyword_0() { return cImpactKeyword_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"name"
+		public Keyword getNameKeyword_3() { return cNameKeyword_3; }
+
+		//name=EString
+		public Assignment getNameAssignment_4() { return cNameAssignment_4; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_4_0() { return cNameEStringParserRuleCall_4_0; }
+
+		//"before"
+		public Keyword getBeforeKeyword_5() { return cBeforeKeyword_5; }
+
+		//before=[perfdatarepo::Result|EString]
+		public Assignment getBeforeAssignment_6() { return cBeforeAssignment_6; }
+
+		//[perfdatarepo::Result|EString]
+		public CrossReference getBeforeResultCrossReference_6_0() { return cBeforeResultCrossReference_6_0; }
+
+		//EString
+		public RuleCall getBeforeResultEStringParserRuleCall_6_0_1() { return cBeforeResultEStringParserRuleCall_6_0_1; }
+
+		//"after"
+		public Keyword getAfterKeyword_7() { return cAfterKeyword_7; }
+
+		//after=[perfdatarepo::Result|EString]
+		public Assignment getAfterAssignment_8() { return cAfterAssignment_8; }
+
+		//[perfdatarepo::Result|EString]
+		public CrossReference getAfterResultCrossReference_8_0() { return cAfterResultCrossReference_8_0; }
+
+		//EString
+		public RuleCall getAfterResultEStringParserRuleCall_8_0_1() { return cAfterResultEStringParserRuleCall_8_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+	}
+
+	public class ResultElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Result");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cResultKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cIdKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cIdAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_1_0 = (RuleCall)cIdAssignment_1_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cNameKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cNameEStringParserRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
+		private final Keyword cTimestampKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cTimestampAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cTimestampEDateParserRuleCall_6_0 = (RuleCall)cTimestampAssignment_6.eContents().get(0);
+		private final Keyword cMetricValuesKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Keyword cLeftCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cMetricValuesAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cMetricValuesMetricValueParserRuleCall_9_0 = (RuleCall)cMetricValuesAssignment_9.eContents().get(0);
+		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
+		private final Keyword cCommaKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
+		private final Assignment cMetricValuesAssignment_10_1 = (Assignment)cGroup_10.eContents().get(1);
+		private final RuleCall cMetricValuesMetricValueParserRuleCall_10_1_0 = (RuleCall)cMetricValuesAssignment_10_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
+		private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12);
+		
+		//Result returns perfdatarepo::Result:
+		//	"Result" ("[id:" id=EString "]")? "{" "name" name=EString "timestamp" timestamp=EDate "metricValues" "{"
+		//	metricValues+=MetricValue ("," metricValues+=MetricValue)* "}" "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Result" ("[id:" id=EString "]")? "{" "name" name=EString "timestamp" timestamp=EDate "metricValues" "{"
+		//metricValues+=MetricValue ("," metricValues+=MetricValue)* "}" "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Result"
+		public Keyword getResultKeyword_0() { return cResultKeyword_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"[id:"
+		public Keyword getIdKeyword_1_0() { return cIdKeyword_1_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1_1() { return cIdAssignment_1_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_1_0() { return cIdEStringParserRuleCall_1_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_1_2() { return cRightSquareBracketKeyword_1_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"name"
+		public Keyword getNameKeyword_3() { return cNameKeyword_3; }
+
+		//name=EString
+		public Assignment getNameAssignment_4() { return cNameAssignment_4; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_4_0() { return cNameEStringParserRuleCall_4_0; }
+
+		//"timestamp"
+		public Keyword getTimestampKeyword_5() { return cTimestampKeyword_5; }
+
+		//timestamp=EDate
+		public Assignment getTimestampAssignment_6() { return cTimestampAssignment_6; }
+
+		//EDate
+		public RuleCall getTimestampEDateParserRuleCall_6_0() { return cTimestampEDateParserRuleCall_6_0; }
+
+		//"metricValues"
+		public Keyword getMetricValuesKeyword_7() { return cMetricValuesKeyword_7; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_8() { return cLeftCurlyBracketKeyword_8; }
+
+		//metricValues+=MetricValue
+		public Assignment getMetricValuesAssignment_9() { return cMetricValuesAssignment_9; }
+
+		//MetricValue
+		public RuleCall getMetricValuesMetricValueParserRuleCall_9_0() { return cMetricValuesMetricValueParserRuleCall_9_0; }
+
+		//("," metricValues+=MetricValue)*
+		public Group getGroup_10() { return cGroup_10; }
+
+		//","
+		public Keyword getCommaKeyword_10_0() { return cCommaKeyword_10_0; }
+
+		//metricValues+=MetricValue
+		public Assignment getMetricValuesAssignment_10_1() { return cMetricValuesAssignment_10_1; }
+
+		//MetricValue
+		public RuleCall getMetricValuesMetricValueParserRuleCall_10_1_0() { return cMetricValuesMetricValueParserRuleCall_10_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_11() { return cRightCurlyBracketKeyword_11; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; }
+	}
+
+	public class EDateElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EDate");
+		private final Keyword cEDateKeyword = (Keyword)rule.eContents().get(1);
+		
+		/// * TODO: implement this rule and an appropriate IValueConverter * / EDate returns ecore::EDate:
+		//	"EDate";
+		public ParserRule getRule() { return rule; }
+
+		//"EDate"
+		public Keyword getEDateKeyword() { return cEDateKeyword; }
+	}
+
+	public class MetricValueElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MetricValue");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cMetricValueKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cIdKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cIdAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_2_1_0 = (RuleCall)cIdAssignment_2_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cValueKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cValueAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cValueEDoubleParserRuleCall_5_0 = (RuleCall)cValueAssignment_5.eContents().get(0);
+		private final Keyword cMeasuredEntityKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cMeasuredEntityAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final CrossReference cMeasuredEntityMeasuredEntityCrossReference_7_0 = (CrossReference)cMeasuredEntityAssignment_7.eContents().get(0);
+		private final RuleCall cMeasuredEntityMeasuredEntityEStringParserRuleCall_7_0_1 = (RuleCall)cMeasuredEntityMeasuredEntityCrossReference_7_0.eContents().get(1);
+		private final Keyword cMetricTypeKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cMetricTypeAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final CrossReference cMetricTypeMetricTypeCrossReference_9_0 = (CrossReference)cMetricTypeAssignment_9.eContents().get(0);
+		private final RuleCall cMetricTypeMetricTypeEStringParserRuleCall_9_0_1 = (RuleCall)cMetricTypeMetricTypeCrossReference_9_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		
+		//MetricValue returns perfdatarepo::MetricValue:
+		//	"MetricValue" name=EString ("[id:" id=EString "]")? "{" "value" value=EDouble "measuredEntity"
+		//	measuredEntity=[perfdatarepo::MeasuredEntity|EString] "metricType" metricType=[perfdatarepo::MetricType|EString] "}";
+		public ParserRule getRule() { return rule; }
+
+		//"MetricValue" name=EString ("[id:" id=EString "]")? "{" "value" value=EDouble "measuredEntity"
+		//measuredEntity=[perfdatarepo::MeasuredEntity|EString] "metricType" metricType=[perfdatarepo::MetricType|EString] "}"
+		public Group getGroup() { return cGroup; }
+
+		//"MetricValue"
+		public Keyword getMetricValueKeyword_0() { return cMetricValueKeyword_0; }
+
+		//name=EString
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"[id:"
+		public Keyword getIdKeyword_2_0() { return cIdKeyword_2_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_2_1() { return cIdAssignment_2_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_2_1_0() { return cIdEStringParserRuleCall_2_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+		//"value"
+		public Keyword getValueKeyword_4() { return cValueKeyword_4; }
+
+		//value=EDouble
+		public Assignment getValueAssignment_5() { return cValueAssignment_5; }
+
+		//EDouble
+		public RuleCall getValueEDoubleParserRuleCall_5_0() { return cValueEDoubleParserRuleCall_5_0; }
+
+		//"measuredEntity"
+		public Keyword getMeasuredEntityKeyword_6() { return cMeasuredEntityKeyword_6; }
+
+		//measuredEntity=[perfdatarepo::MeasuredEntity|EString]
+		public Assignment getMeasuredEntityAssignment_7() { return cMeasuredEntityAssignment_7; }
+
+		//[perfdatarepo::MeasuredEntity|EString]
+		public CrossReference getMeasuredEntityMeasuredEntityCrossReference_7_0() { return cMeasuredEntityMeasuredEntityCrossReference_7_0; }
+
+		//EString
+		public RuleCall getMeasuredEntityMeasuredEntityEStringParserRuleCall_7_0_1() { return cMeasuredEntityMeasuredEntityEStringParserRuleCall_7_0_1; }
+
+		//"metricType"
+		public Keyword getMetricTypeKeyword_8() { return cMetricTypeKeyword_8; }
+
+		//metricType=[perfdatarepo::MetricType|EString]
+		public Assignment getMetricTypeAssignment_9() { return cMetricTypeAssignment_9; }
+
+		//[perfdatarepo::MetricType|EString]
+		public CrossReference getMetricTypeMetricTypeCrossReference_9_0() { return cMetricTypeMetricTypeCrossReference_9_0; }
+
+		//EString
+		public RuleCall getMetricTypeMetricTypeEStringParserRuleCall_9_0_1() { return cMetricTypeMetricTypeEStringParserRuleCall_9_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }
+	}
+
+	public class MeasuredEntityElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MeasuredEntity");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cMeasuredEntityKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cIdKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cIdAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_2_1_0 = (RuleCall)cIdAssignment_2_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cMetricTypesKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cLeftParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cMetricTypesAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final CrossReference cMetricTypesMetricTypeCrossReference_6_0 = (CrossReference)cMetricTypesAssignment_6.eContents().get(0);
+		private final RuleCall cMetricTypesMetricTypeEStringParserRuleCall_6_0_1 = (RuleCall)cMetricTypesMetricTypeCrossReference_6_0.eContents().get(1);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Keyword cCommaKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+		private final Assignment cMetricTypesAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
+		private final CrossReference cMetricTypesMetricTypeCrossReference_7_1_0 = (CrossReference)cMetricTypesAssignment_7_1.eContents().get(0);
+		private final RuleCall cMetricTypesMetricTypeEStringParserRuleCall_7_1_0_1 = (RuleCall)cMetricTypesMetricTypeCrossReference_7_1_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		
+		//MeasuredEntity returns perfdatarepo::MeasuredEntity:
+		//	"MeasuredEntity" name=EString ("[id:" id=EString "]")? "{" "metricTypes" "("
+		//	metricTypes+=[perfdatarepo::MetricType|EString] ("," metricTypes+=[perfdatarepo::MetricType|EString])* ")" "}";
+		public ParserRule getRule() { return rule; }
+
+		//"MeasuredEntity" name=EString ("[id:" id=EString "]")? "{" "metricTypes" "("
+		//metricTypes+=[perfdatarepo::MetricType|EString] ("," metricTypes+=[perfdatarepo::MetricType|EString])* ")" "}"
+		public Group getGroup() { return cGroup; }
+
+		//"MeasuredEntity"
+		public Keyword getMeasuredEntityKeyword_0() { return cMeasuredEntityKeyword_0; }
+
+		//name=EString
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"[id:"
+		public Keyword getIdKeyword_2_0() { return cIdKeyword_2_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_2_1() { return cIdAssignment_2_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_2_1_0() { return cIdEStringParserRuleCall_2_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+		//"metricTypes"
+		public Keyword getMetricTypesKeyword_4() { return cMetricTypesKeyword_4; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_5() { return cLeftParenthesisKeyword_5; }
+
+		//metricTypes+=[perfdatarepo::MetricType|EString]
+		public Assignment getMetricTypesAssignment_6() { return cMetricTypesAssignment_6; }
+
+		//[perfdatarepo::MetricType|EString]
+		public CrossReference getMetricTypesMetricTypeCrossReference_6_0() { return cMetricTypesMetricTypeCrossReference_6_0; }
+
+		//EString
+		public RuleCall getMetricTypesMetricTypeEStringParserRuleCall_6_0_1() { return cMetricTypesMetricTypeEStringParserRuleCall_6_0_1; }
+
+		//("," metricTypes+=[perfdatarepo::MetricType|EString])*
+		public Group getGroup_7() { return cGroup_7; }
+
+		//","
+		public Keyword getCommaKeyword_7_0() { return cCommaKeyword_7_0; }
+
+		//metricTypes+=[perfdatarepo::MetricType|EString]
+		public Assignment getMetricTypesAssignment_7_1() { return cMetricTypesAssignment_7_1; }
+
+		//[perfdatarepo::MetricType|EString]
+		public CrossReference getMetricTypesMetricTypeCrossReference_7_1_0() { return cMetricTypesMetricTypeCrossReference_7_1_0; }
+
+		//EString
+		public RuleCall getMetricTypesMetricTypeEStringParserRuleCall_7_1_0_1() { return cMetricTypesMetricTypeEStringParserRuleCall_7_1_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_8() { return cRightParenthesisKeyword_8; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+	}
+
+	public class WeightedMetricElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "WeightedMetric");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cWeightedMetricKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cIdKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cIdAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_2_1_0 = (RuleCall)cIdAssignment_2_1.eContents().get(0);
+		private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+		private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cLeftParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cMetricTypeKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
+		private final Assignment cMetricTypeAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final CrossReference cMetricTypeMetricTypeCrossReference_6_0 = (CrossReference)cMetricTypeAssignment_6.eContents().get(0);
+		private final RuleCall cMetricTypeMetricTypeEStringParserRuleCall_6_0_1 = (RuleCall)cMetricTypeMetricTypeCrossReference_6_0.eContents().get(1);
+		private final Keyword cCommaKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+		private final Keyword cWeightKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
+		private final Keyword cEqualsSignKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1);
+		private final Assignment cWeightAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cWeightEDoubleParserRuleCall_9_0 = (RuleCall)cWeightAssignment_9.eContents().get(0);
+		private final Keyword cRightParenthesisKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		
+		//WeightedMetric:
+		//	"WeightedMetric"? name=EString ("[id:" id=EString "]")? "=" "(" ("metricType" "=")?
+		//	metricType=[perfdatarepo::MetricType|EString] "," ("weight" "=")? weight=EDouble ")";
+		public ParserRule getRule() { return rule; }
+
+		//"WeightedMetric"? name=EString ("[id:" id=EString "]")? "=" "(" ("metricType" "=")?
+		//metricType=[perfdatarepo::MetricType|EString] "," ("weight" "=")? weight=EDouble ")"
+		public Group getGroup() { return cGroup; }
+
+		//"WeightedMetric"?
+		public Keyword getWeightedMetricKeyword_0() { return cWeightedMetricKeyword_0; }
+
+		//name=EString
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//EString
+		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
+
+		//("[id:" id=EString "]")?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"[id:"
+		public Keyword getIdKeyword_2_0() { return cIdKeyword_2_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_2_1() { return cIdAssignment_2_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_2_1_0() { return cIdEStringParserRuleCall_2_1_0; }
+
+		//"]"
+		public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_4() { return cLeftParenthesisKeyword_4; }
+
+		//("metricType" "=")?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"metricType"
+		public Keyword getMetricTypeKeyword_5_0() { return cMetricTypeKeyword_5_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_5_1() { return cEqualsSignKeyword_5_1; }
+
+		//metricType=[perfdatarepo::MetricType|EString]
+		public Assignment getMetricTypeAssignment_6() { return cMetricTypeAssignment_6; }
+
+		//[perfdatarepo::MetricType|EString]
+		public CrossReference getMetricTypeMetricTypeCrossReference_6_0() { return cMetricTypeMetricTypeCrossReference_6_0; }
+
+		//EString
+		public RuleCall getMetricTypeMetricTypeEStringParserRuleCall_6_0_1() { return cMetricTypeMetricTypeEStringParserRuleCall_6_0_1; }
+
+		//","
+		public Keyword getCommaKeyword_7() { return cCommaKeyword_7; }
+
+		//("weight" "=")?
+		public Group getGroup_8() { return cGroup_8; }
+
+		//"weight"
+		public Keyword getWeightKeyword_8_0() { return cWeightKeyword_8_0; }
+
+		//"="
+		public Keyword getEqualsSignKeyword_8_1() { return cEqualsSignKeyword_8_1; }
+
+		//weight=EDouble
+		public Assignment getWeightAssignment_9() { return cWeightAssignment_9; }
+
+		//EDouble
+		public RuleCall getWeightEDoubleParserRuleCall_9_0() { return cWeightEDoubleParserRuleCall_9_0; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_10() { return cRightParenthesisKeyword_10; }
+	}
+	
+	
+	public class AdaptationScopeElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "AdaptationScope");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cNOT_SETEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cNOT_SETNOT_SETKeyword_0_0 = (Keyword)cNOT_SETEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cTHISEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cTHISTHISKeyword_1_0 = (Keyword)cTHISEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cLEAST_UTILIZED_FIRSTLEAST_UTILIZED_FIRSTKeyword_2_0 = (Keyword)cLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cMOST_UTILIZED_FIRSTMOST_UTILIZED_FIRSTKeyword_3_0 = (Keyword)cMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cRANDOMEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cRANDOMRANDOMKeyword_4_0 = (Keyword)cRANDOMEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cALLEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cALLALLKeyword_5_0 = (Keyword)cALLEnumLiteralDeclaration_5.eContents().get(0);
+		
+		//enum AdaptationScope:
+		//	NOT_SET | THIS | LEAST_UTILIZED_FIRST | MOST_UTILIZED_FIRST | RANDOM | ALL;
+		public EnumRule getRule() { return rule; }
+
+		//NOT_SET | THIS | LEAST_UTILIZED_FIRST | MOST_UTILIZED_FIRST | RANDOM | ALL
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//NOT_SET
+		public EnumLiteralDeclaration getNOT_SETEnumLiteralDeclaration_0() { return cNOT_SETEnumLiteralDeclaration_0; }
+
+		//"NOT_SET"
+		public Keyword getNOT_SETNOT_SETKeyword_0_0() { return cNOT_SETNOT_SETKeyword_0_0; }
+
+		//THIS
+		public EnumLiteralDeclaration getTHISEnumLiteralDeclaration_1() { return cTHISEnumLiteralDeclaration_1; }
+
+		//"THIS"
+		public Keyword getTHISTHISKeyword_1_0() { return cTHISTHISKeyword_1_0; }
+
+		//LEAST_UTILIZED_FIRST
+		public EnumLiteralDeclaration getLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2() { return cLEAST_UTILIZED_FIRSTEnumLiteralDeclaration_2; }
+
+		//"LEAST_UTILIZED_FIRST"
+		public Keyword getLEAST_UTILIZED_FIRSTLEAST_UTILIZED_FIRSTKeyword_2_0() { return cLEAST_UTILIZED_FIRSTLEAST_UTILIZED_FIRSTKeyword_2_0; }
+
+		//MOST_UTILIZED_FIRST
+		public EnumLiteralDeclaration getMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3() { return cMOST_UTILIZED_FIRSTEnumLiteralDeclaration_3; }
+
+		//"MOST_UTILIZED_FIRST"
+		public Keyword getMOST_UTILIZED_FIRSTMOST_UTILIZED_FIRSTKeyword_3_0() { return cMOST_UTILIZED_FIRSTMOST_UTILIZED_FIRSTKeyword_3_0; }
+
+		//RANDOM
+		public EnumLiteralDeclaration getRANDOMEnumLiteralDeclaration_4() { return cRANDOMEnumLiteralDeclaration_4; }
+
+		//"RANDOM"
+		public Keyword getRANDOMRANDOMKeyword_4_0() { return cRANDOMRANDOMKeyword_4_0; }
+
+		//ALL
+		public EnumLiteralDeclaration getALLEnumLiteralDeclaration_5() { return cALLEnumLiteralDeclaration_5; }
+
+		//"ALL"
+		public Keyword getALLALLKeyword_5_0() { return cALLALLKeyword_5_0; }
+	}
+
+	public class AdaptationDirectionElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "AdaptationDirection");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cNOT_SETEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cNOT_SETNOT_SETKeyword_0_0 = (Keyword)cNOT_SETEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cINCREASEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cINCREASEINCREASEKeyword_1_0 = (Keyword)cINCREASEEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cDECREASEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cDECREASEDECREASEKeyword_2_0 = (Keyword)cDECREASEEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cMIGRATEEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cMIGRATEMIGRATEKeyword_3_0 = (Keyword)cMIGRATEEnumLiteralDeclaration_3.eContents().get(0);
+		
+		//enum AdaptationDirection:
+		//	NOT_SET | INCREASE | DECREASE | MIGRATE;
+		public EnumRule getRule() { return rule; }
+
+		//NOT_SET | INCREASE | DECREASE | MIGRATE
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//NOT_SET
+		public EnumLiteralDeclaration getNOT_SETEnumLiteralDeclaration_0() { return cNOT_SETEnumLiteralDeclaration_0; }
+
+		//"NOT_SET"
+		public Keyword getNOT_SETNOT_SETKeyword_0_0() { return cNOT_SETNOT_SETKeyword_0_0; }
+
+		//INCREASE
+		public EnumLiteralDeclaration getINCREASEEnumLiteralDeclaration_1() { return cINCREASEEnumLiteralDeclaration_1; }
+
+		//"INCREASE"
+		public Keyword getINCREASEINCREASEKeyword_1_0() { return cINCREASEINCREASEKeyword_1_0; }
+
+		//DECREASE
+		public EnumLiteralDeclaration getDECREASEEnumLiteralDeclaration_2() { return cDECREASEEnumLiteralDeclaration_2; }
+
+		//"DECREASE"
+		public Keyword getDECREASEDECREASEKeyword_2_0() { return cDECREASEDECREASEKeyword_2_0; }
+
+		//MIGRATE
+		public EnumLiteralDeclaration getMIGRATEEnumLiteralDeclaration_3() { return cMIGRATEEnumLiteralDeclaration_3; }
+
+		//"MIGRATE"
+		public Keyword getMIGRATEMIGRATEKeyword_3_0() { return cMIGRATEMIGRATEKeyword_3_0; }
+	}
+
+	public class RelationalOperatorElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "RelationalOperator");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cEQUALEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cEQUALEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQUALEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cNOT_EQUALEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cNOT_EQUALExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQUALEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cGREATERGreaterThanSignKeyword_2_0 = (Keyword)cGREATEREnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cGREATER_EQUALEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cGREATER_EQUALGreaterThanSignEqualsSignKeyword_3_0 = (Keyword)cGREATER_EQUALEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cLESSEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cLESSLessThanSignKeyword_4_0 = (Keyword)cLESSEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cLESS_EQUALEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cLESS_EQUALLessThanSignEqualsSignKeyword_5_0 = (Keyword)cLESS_EQUALEnumLiteralDeclaration_5.eContents().get(0);
+		private final EnumLiteralDeclaration cEQUALEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+		private final Keyword cEQUALEQUALKeyword_6_0 = (Keyword)cEQUALEnumLiteralDeclaration_6.eContents().get(0);
+		private final EnumLiteralDeclaration cNOT_EQUALEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
+		private final Keyword cNOT_EQUALNOT_EQUALKeyword_7_0 = (Keyword)cNOT_EQUALEnumLiteralDeclaration_7.eContents().get(0);
+		private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
+		private final Keyword cGREATERGREATERKeyword_8_0 = (Keyword)cGREATEREnumLiteralDeclaration_8.eContents().get(0);
+		private final EnumLiteralDeclaration cGREATER_EQUALEnumLiteralDeclaration_9 = (EnumLiteralDeclaration)cAlternatives.eContents().get(9);
+		private final Keyword cGREATER_EQUALGREATER_EQUALKeyword_9_0 = (Keyword)cGREATER_EQUALEnumLiteralDeclaration_9.eContents().get(0);
+		private final EnumLiteralDeclaration cLESSEnumLiteralDeclaration_10 = (EnumLiteralDeclaration)cAlternatives.eContents().get(10);
+		private final Keyword cLESSLESSKeyword_10_0 = (Keyword)cLESSEnumLiteralDeclaration_10.eContents().get(0);
+		private final EnumLiteralDeclaration cLESS_EQUALEnumLiteralDeclaration_11 = (EnumLiteralDeclaration)cAlternatives.eContents().get(11);
+		private final Keyword cLESS_EQUALLESS_EQUALKeyword_11_0 = (Keyword)cLESS_EQUALEnumLiteralDeclaration_11.eContents().get(0);
+		
+		//enum RelationalOperator:
+		//	EQUAL="==" | NOT_EQUAL="!=" | GREATER=">" | GREATER_EQUAL=">=" | LESS="<" | LESS_EQUAL="<=" | EQUAL | NOT_EQUAL |
+		//	GREATER | GREATER_EQUAL | LESS | LESS_EQUAL;
+		public EnumRule getRule() { return rule; }
+
+		//EQUAL="==" | NOT_EQUAL="!=" | GREATER=">" | GREATER_EQUAL=">=" | LESS="<" | LESS_EQUAL="<=" | EQUAL | NOT_EQUAL |
+		//GREATER | GREATER_EQUAL | LESS | LESS_EQUAL
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//EQUAL="=="
+		public EnumLiteralDeclaration getEQUALEnumLiteralDeclaration_0() { return cEQUALEnumLiteralDeclaration_0; }
+
+		//"=="
+		public Keyword getEQUALEqualsSignEqualsSignKeyword_0_0() { return cEQUALEqualsSignEqualsSignKeyword_0_0; }
+
+		//NOT_EQUAL="!="
+		public EnumLiteralDeclaration getNOT_EQUALEnumLiteralDeclaration_1() { return cNOT_EQUALEnumLiteralDeclaration_1; }
+
+		//"!="
+		public Keyword getNOT_EQUALExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQUALExclamationMarkEqualsSignKeyword_1_0; }
+
+		//GREATER=">"
+		public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_2() { return cGREATEREnumLiteralDeclaration_2; }
+
+		//">"
+		public Keyword getGREATERGreaterThanSignKeyword_2_0() { return cGREATERGreaterThanSignKeyword_2_0; }
+
+		//GREATER_EQUAL=">="
+		public EnumLiteralDeclaration getGREATER_EQUALEnumLiteralDeclaration_3() { return cGREATER_EQUALEnumLiteralDeclaration_3; }
+
+		//">="
+		public Keyword getGREATER_EQUALGreaterThanSignEqualsSignKeyword_3_0() { return cGREATER_EQUALGreaterThanSignEqualsSignKeyword_3_0; }
+
+		//LESS="<"
+		public EnumLiteralDeclaration getLESSEnumLiteralDeclaration_4() { return cLESSEnumLiteralDeclaration_4; }
+
+		//"<"
+		public Keyword getLESSLessThanSignKeyword_4_0() { return cLESSLessThanSignKeyword_4_0; }
+
+		//LESS_EQUAL="<="
+		public EnumLiteralDeclaration getLESS_EQUALEnumLiteralDeclaration_5() { return cLESS_EQUALEnumLiteralDeclaration_5; }
+
+		//"<="
+		public Keyword getLESS_EQUALLessThanSignEqualsSignKeyword_5_0() { return cLESS_EQUALLessThanSignEqualsSignKeyword_5_0; }
+
+		//EQUAL
+		public EnumLiteralDeclaration getEQUALEnumLiteralDeclaration_6() { return cEQUALEnumLiteralDeclaration_6; }
+
+		//"EQUAL"
+		public Keyword getEQUALEQUALKeyword_6_0() { return cEQUALEQUALKeyword_6_0; }
+
+		//NOT_EQUAL
+		public EnumLiteralDeclaration getNOT_EQUALEnumLiteralDeclaration_7() { return cNOT_EQUALEnumLiteralDeclaration_7; }
+
+		//"NOT_EQUAL"
+		public Keyword getNOT_EQUALNOT_EQUALKeyword_7_0() { return cNOT_EQUALNOT_EQUALKeyword_7_0; }
+
+		//GREATER
+		public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_8() { return cGREATEREnumLiteralDeclaration_8; }
+
+		//"GREATER"
+		public Keyword getGREATERGREATERKeyword_8_0() { return cGREATERGREATERKeyword_8_0; }
+
+		//GREATER_EQUAL
+		public EnumLiteralDeclaration getGREATER_EQUALEnumLiteralDeclaration_9() { return cGREATER_EQUALEnumLiteralDeclaration_9; }
+
+		//"GREATER_EQUAL"
+		public Keyword getGREATER_EQUALGREATER_EQUALKeyword_9_0() { return cGREATER_EQUALGREATER_EQUALKeyword_9_0; }
+
+		//LESS
+		public EnumLiteralDeclaration getLESSEnumLiteralDeclaration_10() { return cLESSEnumLiteralDeclaration_10; }
+
+		//"LESS"
+		public Keyword getLESSLESSKeyword_10_0() { return cLESSLESSKeyword_10_0; }
+
+		//LESS_EQUAL
+		public EnumLiteralDeclaration getLESS_EQUALEnumLiteralDeclaration_11() { return cLESS_EQUALEnumLiteralDeclaration_11; }
+
+		//"LESS_EQUAL"
+		public Keyword getLESS_EQUALLESS_EQUALKeyword_11_0() { return cLESS_EQUALLESS_EQUALKeyword_11_0; }
+	}
+	
+	private AdaptationProcessElements pAdaptationProcess;
+	private AdaptationPointElements pAdaptationPoint;
+	private AbstractControlFlowElementElements pAbstractControlFlowElement;
+	private VariationTypeElements pVariationType;
+	private EStringElements pEString;
+	private TacticElements pTactic;
+	private ActionElements pAction;
+	private StrategyElements pStrategy;
+	private ParameterElements pParameter;
+	private OverallGoalElements pOverallGoal;
+	private ImportDeclarationElements pImportDeclaration;
+	private AdaptationPlanElements pAdaptationPlan;
+	private StartActionElements pStartAction;
+	private StopActionElements pStopAction;
+	private LoopActionElements pLoopAction;
+	private BranchActionElements pBranchAction;
+	private ActionReferenceElements pActionReference;
+	private AdaptationActionOperationElements pAdaptationActionOperation;
+	private ModelVariableConfigurationRangeElements pModelVariableConfigurationRange;
+	private ModelEntityConfigurationRangeElements pModelEntityConfigurationRange;
+	private EDoubleElements pEDouble;
+	private PropertyRangeElements pPropertyRange;
+	private SetOfConfigurationsElements pSetOfConfigurations;
+	private OclConstraintElements pOclConstraint;
+	private AdaptationScopeElements unknownRuleAdaptationScope;
+	private AdaptationDirectionElements unknownRuleAdaptationDirection;
+	private ObjectiveElements pObjective;
+	private EventElements pEvent;
+	private WeightedTacticElements pWeightedTactic;
+	private WeightingFunctionElements pWeightingFunction;
+	private SpecificationElements pSpecification;
+	private MetricTypeElements pMetricType;
+	private RelationalOperatorElements unknownRuleRelationalOperator;
+	private ImpactElements pImpact;
+	private ResultElements pResult;
+	private EDateElements pEDate;
+	private MetricValueElements pMetricValue;
+	private MeasuredEntityElements pMeasuredEntity;
+	private WeightedMetricElements pWeightedMetric;
+	
+	private final Grammar grammar;
+
+	private TerminalsGrammarAccess gaTerminals;
+
+	@Inject
+	public StaLangGrammarAccess(GrammarProvider grammarProvider,
+		TerminalsGrammarAccess gaTerminals) {
+		this.grammar = internalFindGrammar(grammarProvider);
+		this.gaTerminals = gaTerminals;
+	}
+	
+	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+		Grammar grammar = grammarProvider.getGrammar(this);
+		while (grammar != null) {
+			if ("edu.kit.ipd.descartes.mm.adaptation.sta.StaLang".equals(grammar.getName())) {
+				return grammar;
+			}
+			List<Grammar> grammars = grammar.getUsedGrammars();
+			if (!grammars.isEmpty()) {
+				grammar = grammars.iterator().next();
+			} else {
+				return null;
+			}
+		}
+		return grammar;
+	}
+	
+	
+	public Grammar getGrammar() {
+		return grammar;
+	}
+	
+
+	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+		return gaTerminals;
+	}
+
+	
+	//AdaptationProcess:
+	//	importDeclaration+=ImportDeclaration* "AdaptationProcess" name=EString ("[id:" id=EString "]")? "{" ("parameters" ":"
+	//	parameters+=Parameter ("," parameters+=Parameter)*)? "goal" ":" goal=OverallGoal "actions" ":" actions+=Action (","
+	//	actions+=Action)* "tactics" ":" tactics+=Tactic ("," tactics+=Tactic)* "strategies" ":" strategies+=Strategy (","
+	//	strategies+=Strategy)* "}";
+	public AdaptationProcessElements getAdaptationProcessAccess() {
+		return (pAdaptationProcess != null) ? pAdaptationProcess : (pAdaptationProcess = new AdaptationProcessElements());
+	}
+	
+	public ParserRule getAdaptationProcessRule() {
+		return getAdaptationProcessAccess().getRule();
+	}
+
+	//AdaptationPoint returns adaptationpoints::AdaptationPoint:
+	//	ModelVariableConfigurationRange | ModelEntityConfigurationRange;
+	public AdaptationPointElements getAdaptationPointAccess() {
+		return (pAdaptationPoint != null) ? pAdaptationPoint : (pAdaptationPoint = new AdaptationPointElements());
+	}
+	
+	public ParserRule getAdaptationPointRule() {
+		return getAdaptationPointAccess().getRule();
+	}
+
+	//AbstractControlFlowElement:
+	//	StartAction | StopAction | LoopAction | BranchAction | ActionReference;
+	public AbstractControlFlowElementElements getAbstractControlFlowElementAccess() {
+		return (pAbstractControlFlowElement != null) ? pAbstractControlFlowElement : (pAbstractControlFlowElement = new AbstractControlFlowElementElements());
+	}
+	
+	public ParserRule getAbstractControlFlowElementRule() {
+		return getAbstractControlFlowElementAccess().getRule();
+	}
+
+	//VariationType returns adaptationpoints::VariationType:
+	//	PropertyRange | SetOfConfigurations;
+	public VariationTypeElements getVariationTypeAccess() {
+		return (pVariationType != null) ? pVariationType : (pVariationType = new VariationTypeElements());
+	}
+	
+	public ParserRule getVariationTypeRule() {
+		return getVariationTypeAccess().getRule();
+	}
+
+	//EString returns ecore::EString:
+	//	STRING | ID;
+	public EStringElements getEStringAccess() {
+		return (pEString != null) ? pEString : (pEString = new EStringElements());
+	}
+	
+	public ParserRule getEStringRule() {
+		return getEStringAccess().getRule();
+	}
+
+	//Tactic:
+	//	"Tactic"? name=EString ("[id:" id=EString "]")? "{" "implementedPlan" implementedPlan=AdaptationPlan ("input" "=" "("
+	//	inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")? ("output" "="
+	//	outputParam=[Parameter|EString])? "}";
+	public TacticElements getTacticAccess() {
+		return (pTactic != null) ? pTactic : (pTactic = new TacticElements());
+	}
+	
+	public ParserRule getTacticRule() {
+		return getTacticAccess().getRule();
+	}
+
+	//Action:
+	//	"Action"? name=EString ("[id:" id=EString "]")? "{" "operation" "="
+	//	adaptationActionOperation=AdaptationActionOperation "referredAdaptationPoint" "="
+	//	referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString] ("input" "=" "(" inputParams+=[Parameter|EString]
+	//	("," inputParams+=[Parameter|EString])* ")")? ("output" "=" outputParam=[Parameter|EString])? "}";
+	public ActionElements getActionAccess() {
+		return (pAction != null) ? pAction : (pAction = new ActionElements());
+	}
+	
+	public ParserRule getActionRule() {
+		return getActionAccess().getRule();
+	}
+
+	//Strategy:
+	//	name=EString ("[id:" id=EString "]")? "{" "objective" "=" objective=[Objective|EString] "triggeringEvent" "="
+	//	triggeringEvents=Event "tactics" "=" "(" tactics+=WeightedTactic ("," tactics+=WeightedTactic)* ")"
+	//	"weightingFunction"? weightingFunction=WeightingFunction "}";
+	public StrategyElements getStrategyAccess() {
+		return (pStrategy != null) ? pStrategy : (pStrategy = new StrategyElements());
+	}
+	
+	public ParserRule getStrategyRule() {
+		return getStrategyAccess().getRule();
+	}
+
+	//Parameter:
+	//	name=EString "{" ("type" "=")? type=EString ("," ("value" "=")? value=EString)? "}";
+	public ParameterElements getParameterAccess() {
+		return (pParameter != null) ? pParameter : (pParameter = new ParameterElements());
+	}
+	
+	public ParserRule getParameterRule() {
+		return getParameterAccess().getRule();
+	}
+
+	//OverallGoal:
+	//	"description" description=EString "objectives" "=" "(" objectives+=Objective ("," objectives+=Objective)* ")";
+	public OverallGoalElements getOverallGoalAccess() {
+		return (pOverallGoal != null) ? pOverallGoal : (pOverallGoal = new OverallGoalElements());
+	}
+	
+	public ParserRule getOverallGoalRule() {
+		return getOverallGoalAccess().getRule();
+	}
+
+	//ImportDeclaration:
+	//	"ImportDeclaration" importURI=EString;
+	public ImportDeclarationElements getImportDeclarationAccess() {
+		return (pImportDeclaration != null) ? pImportDeclaration : (pImportDeclaration = new ImportDeclarationElements());
+	}
+	
+	public ParserRule getImportDeclarationRule() {
+		return getImportDeclarationAccess().getRule();
+	}
+
+	//AdaptationPlan:
+	//	name=EString ("[id:" id=EString "]")? "=" ("(" steps+=AbstractControlFlowElement (","
+	//	steps+=AbstractControlFlowElement)* ")")?;
+	public AdaptationPlanElements getAdaptationPlanAccess() {
+		return (pAdaptationPlan != null) ? pAdaptationPlan : (pAdaptationPlan = new AdaptationPlanElements());
+	}
+	
+	public ParserRule getAdaptationPlanRule() {
+		return getAdaptationPlanAccess().getRule();
+	}
+
+	////	Predecessor and successor are in comments, to avoid problems with referencing 
+	////	different Actions an ordered List is used to get predecessor and successor
+	////	('('
+	////		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+	////		('successor' successor=[AbstractControlFlowElement|EString])?
+	////	')')?
+	//StartAction:
+	//	{StartAction} "StartAction" ("[id:" id=EString "]")?;
+	public StartActionElements getStartActionAccess() {
+		return (pStartAction != null) ? pStartAction : (pStartAction = new StartActionElements());
+	}
+	
+	public ParserRule getStartActionRule() {
+		return getStartActionAccess().getRule();
+	}
+
+	////	Predecessor and successor are in comments, to avoid problems with referencing 
+	////	different Actions an ordered List is used to get predecessor and successor
+	////	('('
+	////		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+	////		('successor' successor=[AbstractControlFlowElement|EString])?
+	////	')')?
+	//StopAction:
+	//	{StopAction} "StopAction" ("[id:" id=EString "]")?;
+	public StopActionElements getStopActionAccess() {
+		return (pStopAction != null) ? pStopAction : (pStopAction = new StopActionElements());
+	}
+	
+	public ParserRule getStopActionRule() {
+		return getStopActionAccess().getRule();
+	}
+
+	//LoopAction:
+	//	"LoopAction"? ("[id:" id=EString "]")? "repeat" "counter" "=" counter=[Parameter|EString] "(" //	Predecessor and successor are in comments, to avoid problems with referencing 
+	//	//	different Actions an ordered List is used to get predecessor and successor
+	//	//		(predecessor=[AbstractControlFlowElement|EString] ',')?
+	//	body=AdaptationPlan //		(',' successor=[AbstractControlFlowElement|EString])?
+	//	")";
+	public LoopActionElements getLoopActionAccess() {
+		return (pLoopAction != null) ? pLoopAction : (pLoopAction = new LoopActionElements());
+	}
+	
+	public ParserRule getLoopActionRule() {
+		return getLoopActionAccess().getRule();
+	}
+
+	////	no comma to avoid multiple interpretations of the comma (e.g. AdaptationPlan)
+	////		(successor=[AbstractControlFlowElement|EString])?
+	//BranchAction:
+	//	"BranchAction"? ("[id:" id=EString "]")? "if" "(" "context" "=" context=[core::Entity|EString] "," "condition" "="
+	//	condition=EString ")" //	Predecessor and successor are in comments, to avoid problems with referencing 
+	//	//	different Actions an ordered List is used to get predecessor and successor
+	//	//		(predecessor=[AbstractControlFlowElement|EString])?
+	//	"then" "(" conditionTrueBranch=AdaptationPlan ")" "else" "(" conditionFalseBranch=AdaptationPlan ")";
+	public BranchActionElements getBranchActionAccess() {
+		return (pBranchAction != null) ? pBranchAction : (pBranchAction = new BranchActionElements());
+	}
+	
+	public ParserRule getBranchActionRule() {
+		return getBranchActionAccess().getRule();
+	}
+
+	//ActionReference:
+	//	"ActionReference" ("[id:" id=EString "]")? "(" //	Predecessor and successor are in comments, to avoid problems with referencing 
+	//	//	different Actions an ordered List is used to get predecessor and successor
+	//	//		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+	//	//		('successor' successor=[AbstractControlFlowElement|EString])?
+	//	"refersTo" refersTo=[Action|EString] ")";
+	public ActionReferenceElements getActionReferenceAccess() {
+		return (pActionReference != null) ? pActionReference : (pActionReference = new ActionReferenceElements());
+	}
+	
+	public ParserRule getActionReferenceRule() {
+		return getActionReferenceAccess().getRule();
+	}
+
+	//AdaptationActionOperation:
+	//	"(" adaptationOperationDirection=AdaptationDirection "," adaptationOperationScope=AdaptationScope ")";
+	public AdaptationActionOperationElements getAdaptationActionOperationAccess() {
+		return (pAdaptationActionOperation != null) ? pAdaptationActionOperation : (pAdaptationActionOperation = new AdaptationActionOperationElements());
+	}
+	
+	public ParserRule getAdaptationActionOperationRule() {
+		return getAdaptationActionOperationAccess().getRule();
+	}
+
+	//ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange:
+	//	"ModelVariableConfigurationRange" ("[id:" id=EString "]")? "{" "name" name=EString "minValue" minValue=EDouble
+	//	"maxValue" maxValue=EDouble "adaptableEntity" adaptableEntity=[core::AdaptableEntity|EString] "}";
+	public ModelVariableConfigurationRangeElements getModelVariableConfigurationRangeAccess() {
+		return (pModelVariableConfigurationRange != null) ? pModelVariableConfigurationRange : (pModelVariableConfigurationRange = new ModelVariableConfigurationRangeElements());
+	}
+	
+	public ParserRule getModelVariableConfigurationRangeRule() {
+		return getModelVariableConfigurationRangeAccess().getRule();
+	}
+
+	//ModelEntityConfigurationRange returns adaptationpoints::ModelEntityConfigurationRange:
+	//	"ModelEntityConfigurationRange" ("[id:" id=EString "]")? "{" "name" name=EString "adaptableEntity"
+	//	adaptableEntity=[core::Entity|EString] "variationPossibility" variationPossibility=VariationType "}";
+	public ModelEntityConfigurationRangeElements getModelEntityConfigurationRangeAccess() {
+		return (pModelEntityConfigurationRange != null) ? pModelEntityConfigurationRange : (pModelEntityConfigurationRange = new ModelEntityConfigurationRangeElements());
+	}
+	
+	public ParserRule getModelEntityConfigurationRangeRule() {
+		return getModelEntityConfigurationRangeAccess().getRule();
+	}
+
+	//EDouble returns ecore::EDouble:
+	//	"-"? INT? "." INT (("E" | "e") "-"? INT)?;
+	public EDoubleElements getEDoubleAccess() {
+		return (pEDouble != null) ? pEDouble : (pEDouble = new EDoubleElements());
+	}
+	
+	public ParserRule getEDoubleRule() {
+		return getEDoubleAccess().getRule();
+	}
+
+	//PropertyRange returns adaptationpoints::PropertyRange:
+	//	"PropertyRange" "{" "minValueConstraint" minValueConstraint=OclConstraint "maxValueConstraint"
+	//	maxValueConstraint=OclConstraint "}";
+	public PropertyRangeElements getPropertyRangeAccess() {
+		return (pPropertyRange != null) ? pPropertyRange : (pPropertyRange = new PropertyRangeElements());
+	}
+	
+	public ParserRule getPropertyRangeRule() {
+		return getPropertyRangeAccess().getRule();
+	}
+
+	//SetOfConfigurations returns adaptationpoints::SetOfConfigurations:
+	//	"SetOfConfigurations" "{" ("variants" "(" variants+=[core::Entity|EString] ("," variants+=[core::Entity|EString])*
+	//	")")? "valueConstraint" valueConstraint=OclConstraint "}";
+	public SetOfConfigurationsElements getSetOfConfigurationsAccess() {
+		return (pSetOfConfigurations != null) ? pSetOfConfigurations : (pSetOfConfigurations = new SetOfConfigurationsElements());
+	}
+	
+	public ParserRule getSetOfConfigurationsRule() {
+		return getSetOfConfigurationsAccess().getRule();
+	}
+
+	//OclConstraint returns adaptationpoints::OclConstraint:
+	//	"OclConstraint" name=EString "{" "oclString" oclString=EString "}";
+	public OclConstraintElements getOclConstraintAccess() {
+		return (pOclConstraint != null) ? pOclConstraint : (pOclConstraint = new OclConstraintElements());
+	}
+	
+	public ParserRule getOclConstraintRule() {
+		return getOclConstraintAccess().getRule();
+	}
+
+	//enum AdaptationScope:
+	//	NOT_SET | THIS | LEAST_UTILIZED_FIRST | MOST_UTILIZED_FIRST | RANDOM | ALL;
+	public AdaptationScopeElements getAdaptationScopeAccess() {
+		return (unknownRuleAdaptationScope != null) ? unknownRuleAdaptationScope : (unknownRuleAdaptationScope = new AdaptationScopeElements());
+	}
+	
+	public EnumRule getAdaptationScopeRule() {
+		return getAdaptationScopeAccess().getRule();
+	}
+
+	//enum AdaptationDirection:
+	//	NOT_SET | INCREASE | DECREASE | MIGRATE;
+	public AdaptationDirectionElements getAdaptationDirectionAccess() {
+		return (unknownRuleAdaptationDirection != null) ? unknownRuleAdaptationDirection : (unknownRuleAdaptationDirection = new AdaptationDirectionElements());
+	}
+	
+	public EnumRule getAdaptationDirectionRule() {
+		return getAdaptationDirectionAccess().getRule();
+	}
+
+	//Objective:
+	//	name=EString ("[id:" id=EString "]")? "{" "specification" "=" (specifications+=Specification | "("
+	//	specifications+=Specification ("," specifications+=Specification)* ")") "}";
+	public ObjectiveElements getObjectiveAccess() {
+		return (pObjective != null) ? pObjective : (pObjective = new ObjectiveElements());
+	}
+	
+	public ParserRule getObjectiveRule() {
+		return getObjectiveAccess().getRule();
+	}
+
+	//Event:
+	//	name=EString ("[id:" id=EString "]")?;
+	public EventElements getEventAccess() {
+		return (pEvent != null) ? pEvent : (pEvent = new EventElements());
+	}
+	
+	public ParserRule getEventRule() {
+		return getEventAccess().getRule();
+	}
+
+	//WeightedTactic:
+	//	name=EString ("[id:" id=EString "]")? "=" "(" ("tactic" "=")? usedTactic=[Tactic|EString] "," ("default" "=")?
+	//	defaultWeight=EDouble "," ("current" "=")? currentWeight=EDouble ("," ("lastImpact" "=")?
+	//	lastImpact=[perfdatarepo::Impact|EString])? ")";
+	public WeightedTacticElements getWeightedTacticAccess() {
+		return (pWeightedTactic != null) ? pWeightedTactic : (pWeightedTactic = new WeightedTacticElements());
+	}
+	
+	public ParserRule getWeightedTacticRule() {
+		return getWeightedTacticAccess().getRule();
+	}
+
+	//WeightingFunction:
+	//	name=EString ("[id:" id=EString "]")? "=" "(" "weightingFunctionImplementation" "="
+	//	weightingFunctionImplementation=EString "weightedMetrics" "=" "(" weightedMetrics+=WeightedMetric (","
+	//	weightedMetrics+=WeightedMetric)* ")" ")";
+	public WeightingFunctionElements getWeightingFunctionAccess() {
+		return (pWeightingFunction != null) ? pWeightingFunction : (pWeightingFunction = new WeightingFunctionElements());
+	}
+	
+	public ParserRule getWeightingFunctionRule() {
+		return getWeightingFunctionAccess().getRule();
+	}
+
+	//Specification:
+	//	"Specification"? "(" "metricType"? metricType=[perfdatarepo::MetricType|EString] "," "relationalOperator"?
+	//	relationalOperator=RelationalOperator "," "value"? value=EDouble ")";
+	public SpecificationElements getSpecificationAccess() {
+		return (pSpecification != null) ? pSpecification : (pSpecification = new SpecificationElements());
+	}
+	
+	public ParserRule getSpecificationRule() {
+		return getSpecificationAccess().getRule();
+	}
+
+	//MetricType returns perfdatarepo::MetricType:
+	//	"MetricType" ("[id:" id=EString "]")? "{" "name" name=EString "}";
+	public MetricTypeElements getMetricTypeAccess() {
+		return (pMetricType != null) ? pMetricType : (pMetricType = new MetricTypeElements());
+	}
+	
+	public ParserRule getMetricTypeRule() {
+		return getMetricTypeAccess().getRule();
+	}
+
+	//enum RelationalOperator:
+	//	EQUAL="==" | NOT_EQUAL="!=" | GREATER=">" | GREATER_EQUAL=">=" | LESS="<" | LESS_EQUAL="<=" | EQUAL | NOT_EQUAL |
+	//	GREATER | GREATER_EQUAL | LESS | LESS_EQUAL;
+	public RelationalOperatorElements getRelationalOperatorAccess() {
+		return (unknownRuleRelationalOperator != null) ? unknownRuleRelationalOperator : (unknownRuleRelationalOperator = new RelationalOperatorElements());
+	}
+	
+	public EnumRule getRelationalOperatorRule() {
+		return getRelationalOperatorAccess().getRule();
+	}
+
+	//Impact returns perfdatarepo::Impact:
+	//	"Impact" ("[id:" id=EString "]")? "{" "name" name=EString "before" before=[perfdatarepo::Result|EString] "after"
+	//	after=[perfdatarepo::Result|EString] "}";
+	public ImpactElements getImpactAccess() {
+		return (pImpact != null) ? pImpact : (pImpact = new ImpactElements());
+	}
+	
+	public ParserRule getImpactRule() {
+		return getImpactAccess().getRule();
+	}
+
+	//Result returns perfdatarepo::Result:
+	//	"Result" ("[id:" id=EString "]")? "{" "name" name=EString "timestamp" timestamp=EDate "metricValues" "{"
+	//	metricValues+=MetricValue ("," metricValues+=MetricValue)* "}" "}";
+	public ResultElements getResultAccess() {
+		return (pResult != null) ? pResult : (pResult = new ResultElements());
+	}
+	
+	public ParserRule getResultRule() {
+		return getResultAccess().getRule();
+	}
+
+	/// * TODO: implement this rule and an appropriate IValueConverter * / EDate returns ecore::EDate:
+	//	"EDate";
+	public EDateElements getEDateAccess() {
+		return (pEDate != null) ? pEDate : (pEDate = new EDateElements());
+	}
+	
+	public ParserRule getEDateRule() {
+		return getEDateAccess().getRule();
+	}
+
+	//MetricValue returns perfdatarepo::MetricValue:
+	//	"MetricValue" name=EString ("[id:" id=EString "]")? "{" "value" value=EDouble "measuredEntity"
+	//	measuredEntity=[perfdatarepo::MeasuredEntity|EString] "metricType" metricType=[perfdatarepo::MetricType|EString] "}";
+	public MetricValueElements getMetricValueAccess() {
+		return (pMetricValue != null) ? pMetricValue : (pMetricValue = new MetricValueElements());
+	}
+	
+	public ParserRule getMetricValueRule() {
+		return getMetricValueAccess().getRule();
+	}
+
+	//MeasuredEntity returns perfdatarepo::MeasuredEntity:
+	//	"MeasuredEntity" name=EString ("[id:" id=EString "]")? "{" "metricTypes" "("
+	//	metricTypes+=[perfdatarepo::MetricType|EString] ("," metricTypes+=[perfdatarepo::MetricType|EString])* ")" "}";
+	public MeasuredEntityElements getMeasuredEntityAccess() {
+		return (pMeasuredEntity != null) ? pMeasuredEntity : (pMeasuredEntity = new MeasuredEntityElements());
+	}
+	
+	public ParserRule getMeasuredEntityRule() {
+		return getMeasuredEntityAccess().getRule();
+	}
+
+	//WeightedMetric:
+	//	"WeightedMetric"? name=EString ("[id:" id=EString "]")? "=" "(" ("metricType" "=")?
+	//	metricType=[perfdatarepo::MetricType|EString] "," ("weight" "=")? weight=EDouble ")";
+	public WeightedMetricElements getWeightedMetricAccess() {
+		return (pWeightedMetric != null) ? pWeightedMetric : (pWeightedMetric = new WeightedMetricElements());
+	}
+	
+	public ParserRule getWeightedMetricRule() {
+		return getWeightedMetricAccess().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/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/validation/AbstractStaLangJavaValidator.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/validation/AbstractStaLangJavaValidator.java
new file mode 100644
index 0000000000000000000000000000000000000000..0d490ddb2749433e03ada69b5e7106bc7fafe60f
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/sta/validation/AbstractStaLangJavaValidator.java
@@ -0,0 +1,24 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.validation;
+ 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.ComposedChecks;
+
+@ComposedChecks(validators= {org.eclipse.xtext.validation.ImportUriValidator.class})
+public class AbstractStaLangJavaValidator extends org.eclipse.xtext.validation.AbstractDeclarativeValidator {
+
+	@Override
+	protected List<EPackage> getEPackages() {
+	    List<EPackage> result = new ArrayList<EPackage>();
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.descartes-research.net/metamodel/adaptation/0.1"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.descartes-research.net/metamodel/adaptationpoints/0.1"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.descartes-research.net/metamodel/perfdata/0.1"));
+		return result;
+	}
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/GenerateStaLang.mwe2 b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/GenerateStaLang.mwe2
new file mode 100644
index 0000000000000000000000000000000000000000..049f8022dd02dfc649b3c29a9589428c65805585
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/GenerateStaLang.mwe2
@@ -0,0 +1,140 @@
+module edu.kit.ipd.descartes.mm.adaptation.sta.StaLang
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtext"
+var fileExtensions = "staLang"
+var projectName = "edu.kit.ipd.descartes.mm.adaptation.sta"
+var runtimeProject = "../${projectName}"
+var generateXtendStub = true
+
+Workflow {
+	bean = StandaloneSetup {
+		scanClassPath  = true
+		platformUri = "${runtimeProject}/.."
+		registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.adaptation.AdaptationPackage"
+		registerGenModelFile = "platform:/resource/edu.kit.ipd.descartes.mm.adaptation/model/adaptation.genmodel"
+	}
+
+	component = DirectoryCleaner {
+		directory = "${runtimeProject}/src-gen"
+	}
+
+	component = DirectoryCleaner {
+		directory = "${runtimeProject}.ui/src-gen"
+	}
+
+	component = Generator {
+		pathRtProject = runtimeProject
+		pathUiProject = "${runtimeProject}.ui"
+		pathTestProject = "${runtimeProject}.tests"
+		projectNameRt = projectName
+		projectNameUi = "${projectName}.ui"
+		language = auto-inject {
+			uri = grammarURI
+
+			// Java API to access grammar elements (required by several other fragments)
+			fragment = grammarAccess.GrammarAccessFragment auto-inject {}
+
+			// generates Java API for the generated EPackages
+			// fragment = ecore.EcoreGeneratorFragment auto-inject {}
+
+			// the Ecore2Xtext specific terminal converter
+			fragment = ecore2xtext.Ecore2XtextValueConverterServiceFragment auto-inject {}
+
+			// serializer 2.0
+			fragment = serializer.SerializerFragment auto-inject {
+				//generateStub = false
+			}
+
+			// the old serialization component
+			// fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}
+
+			// a custom ResourceFactory for use with EMF 
+			fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
+
+			// the Antlr parser
+			fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
+				options = {
+					classSplitting = true
+				}
+			}
+
+//			// Xtend-based API for validation 
+//			fragment = validation.ValidatorFragment auto-inject {
+//			// composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+//			// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+//			}
+
+			// java���based API for validation
+			fragment = validation.JavaValidatorFragment {
+				composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" 
+			}
+			
+			// scoping and exporting API
+			fragment = scoping.ImportURIScopingFragment {} 
+			fragment = exporting.SimpleNamesFragment {}
+
+//			// old scoping and exporting API 
+//			// fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
+//			// fragment = exporting.QualifiedNamesFragment auto-inject {}
+//
+//			// scoping and exporting API
+//			fragment = scoping.ImportURIScopingFragment auto-inject {}
+//			fragment = exporting.SimpleNamesFragment auto-inject {}
+//			fragment = builder.BuilderIntegrationFragment auto-inject {}		
+
+			// generator API
+			fragment = generator.GeneratorFragment auto-inject {}
+
+			// formatter API 
+			// fragment = formatting.FormatterFragment auto-inject {}
+			fragment = ecore2xtext.FormatterFragment auto-inject {}
+
+			// labeling API 
+			fragment = labeling.LabelProviderFragment auto-inject {}
+
+			// outline API 
+            fragment = outline.OutlineTreeProviderFragment auto-inject {}
+            fragment = outline.QuickOutlineFragment auto-inject {}
+
+			// quickfix API
+			fragment = quickfix.QuickfixProviderFragment auto-inject {}
+
+			//content assist API 
+			fragment = contentAssist.ContentAssistFragment auto-inject {}
+
+			// antlr parser generator tailored for content assist 
+			fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {
+				options = {
+					classSplitting = true
+				}
+			}
+			
+			// generates junit test support classes into Generator#pathTestProject
+			fragment = junit.Junit4Fragment auto-inject {}
+
+			// project wizard (optional) 
+			// fragment = projectWizard.SimpleProjectWizardFragment auto-inject {
+			//		generatorProjectName = "${projectName}.generator" 
+			// }
+
+			// rename refactoring
+			fragment = refactoring.RefactorElementNameFragment auto-inject {}
+
+			// provides the necessary bindings for java types integration
+			fragment = types.TypesGeneratorFragment auto-inject {}
+			
+			// generates the required bindings only if the grammar inherits from Xbase
+			fragment = xbase.XbaseGeneratorFragment auto-inject {}
+
+			// provides a preference page for template proposals
+			fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
+
+			// provides a compare view
+            fragment = compare.CompareFragment auto-inject {}
+		}
+	}
+}
\ No newline at end of file
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtext b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtext
new file mode 100644
index 0000000000000000000000000000000000000000..dfc14ff4a2eb0320bc07c562da1b3061b6a0a7e1
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/StaLang.xtext
@@ -0,0 +1,305 @@
+// automatically generated by Xtext
+grammar edu.kit.ipd.descartes.mm.adaptation.sta.StaLang with org.eclipse.xtext.common.Terminals
+
+import "platform:/resource/edu.kit.ipd.descartes.mm.adaptation/model/adaptation.ecore" 
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+import "platform:/resource/edu.kit.ipd.descartes.perfdatarepo/model/perfdatarepo.ecore" as perfdatarepo
+import "platform:/resource/edu.kit.ipd.descartes.core/model/core.ecore" as core
+import "platform:/resource/edu.kit.ipd.descartes.mm.adaptationpoints/model/adaptationpoints.ecore" as adaptationpoints
+
+AdaptationProcess returns AdaptationProcess:
+	(importDeclaration+=ImportDeclaration)*
+	'AdaptationProcess' name=EString ('[id:'id=EString']')?
+	'{'
+		('parameters' ':' parameters+=Parameter ( "," parameters+=Parameter)* )?
+		'goal' ':' goal=OverallGoal
+		'actions' ':' actions+=Action ( "," actions+=Action)* 
+		'tactics' ':' tactics+=Tactic ( "," tactics+=Tactic)*
+		'strategies' ':' strategies+=Strategy ( "," strategies+=Strategy)* 
+	'}';
+
+
+AdaptationPoint returns adaptationpoints::AdaptationPoint:
+	ModelVariableConfigurationRange | ModelEntityConfigurationRange;
+
+
+
+
+
+
+AbstractControlFlowElement returns AbstractControlFlowElement:
+	StartAction | StopAction | LoopAction | BranchAction | ActionReference;
+
+
+
+VariationType returns adaptationpoints::VariationType:
+	PropertyRange | SetOfConfigurations;
+
+
+EString returns ecore::EString:
+	STRING | ID;
+
+Tactic returns Tactic:
+	('Tactic')? name=EString ('[id:'id=EString']')?
+	'{'
+		'implementedPlan' implementedPlan=AdaptationPlan
+		('input' '=' '(' inputParams+=[Parameter|EString] ( "," inputParams+=[Parameter|EString])* ')' )?
+		('output' '=' outputParam=[Parameter|EString])?
+	'}';
+
+Action returns Action:
+	('Action')? name=EString ('[id:'id=EString']')?
+	'{'
+		'operation' '=' adaptationActionOperation=AdaptationActionOperation
+		'referredAdaptationPoint' '=' referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString]
+		('input' '=' '(' inputParams+=[Parameter|EString] ( "," inputParams+=[Parameter|EString])* ')' )?
+		('output' '=' outputParam=[Parameter|EString])?
+	'}';
+
+Strategy returns Strategy:
+	name=EString ('[id:'id=EString']')?
+	'{'
+		'objective' '=' objective=[Objective|EString]
+		'triggeringEvent' '=' triggeringEvents=Event
+		'tactics' '=' '(' tactics+=WeightedTactic ( "," tactics+=WeightedTactic)* ')' 
+		('weightingFunction')? weightingFunction=WeightingFunction
+	'}';
+
+Parameter returns Parameter:
+	name=EString '{' ('type' '=')? type=EString (',' ('value' '=')? value=EString)?'}'
+	;
+
+OverallGoal returns OverallGoal:
+		'description' description=EString
+		'objectives' '=' '(' objectives+=Objective ( "," objectives+=Objective)* ')'
+	;
+
+ImportDeclaration returns ImportDeclaration:
+	'ImportDeclaration' importURI=EString
+	;
+
+AdaptationPlan returns AdaptationPlan:
+	name=EString ('[id:'id=EString']')? '='
+		('(' steps+=AbstractControlFlowElement ( "," steps+=AbstractControlFlowElement)* ')' )?
+	;
+
+StartAction returns StartAction:
+	{StartAction}
+	'StartAction'('[id:'id=EString']')?
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//	('('
+//		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+//		('successor' successor=[AbstractControlFlowElement|EString])?
+//	')')?
+;
+
+StopAction returns StopAction:
+	{StopAction}
+	'StopAction'('[id:'id=EString']')?
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//	('('
+//		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+//		('successor' successor=[AbstractControlFlowElement|EString])?
+//	')')?
+;
+
+LoopAction returns LoopAction:
+	('LoopAction')? ('[id:'id=EString']')?
+	'repeat' 'counter' '=' counter=[Parameter|EString]
+	'('
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//		(predecessor=[AbstractControlFlowElement|EString] ',')?
+		body=AdaptationPlan
+//		(',' successor=[AbstractControlFlowElement|EString])?
+	')';
+
+BranchAction returns BranchAction:
+	('BranchAction')? ('[id:'id=EString']')?
+	'if' '(''context' '=' context=[core::Entity|EString] ',' 'condition' '=' condition=EString')'
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//		(predecessor=[AbstractControlFlowElement|EString])?
+		'then' '('conditionTrueBranch=AdaptationPlan')'
+		'else' '('conditionFalseBranch=AdaptationPlan')'
+//	no comma to avoid multiple interpretations of the comma (e.g. AdaptationPlan)
+//		(successor=[AbstractControlFlowElement|EString])?
+	;
+
+ActionReference returns ActionReference:
+	'ActionReference'('[id:'id=EString']')?
+	'('
+//	Predecessor and successor are in comments, to avoid problems with referencing 
+//	different Actions an ordered List is used to get predecessor and successor
+//		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+//		('successor' successor=[AbstractControlFlowElement|EString])?
+		'refersTo' refersTo=[Action|EString]
+	')';
+
+AdaptationActionOperation returns AdaptationActionOperation:
+	'('
+		adaptationOperationDirection=AdaptationDirection
+		','
+		adaptationOperationScope=AdaptationScope
+		
+	')';
+
+ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange:
+	'ModelVariableConfigurationRange'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+		'minValue' minValue=EDouble
+		'maxValue' maxValue=EDouble
+		'adaptableEntity' adaptableEntity=[core::AdaptableEntity|EString]
+	'}';
+
+ModelEntityConfigurationRange returns adaptationpoints::ModelEntityConfigurationRange:
+	'ModelEntityConfigurationRange'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+		'adaptableEntity' adaptableEntity=[core::Entity|EString]
+		'variationPossibility' variationPossibility=VariationType
+	'}';
+
+EDouble returns ecore::EDouble:
+	'-'? INT? '.' INT (('E'|'e') '-'? INT)?;
+
+PropertyRange returns adaptationpoints::PropertyRange:
+	'PropertyRange'
+	'{'
+		'minValueConstraint' minValueConstraint=OclConstraint
+		'maxValueConstraint' maxValueConstraint=OclConstraint
+	'}';
+
+SetOfConfigurations returns adaptationpoints::SetOfConfigurations:
+	'SetOfConfigurations'
+	'{'
+		('variants' '(' variants+=[core::Entity|EString] ( "," variants+=[core::Entity|EString])* ')' )?
+		'valueConstraint' valueConstraint=OclConstraint
+	'}';
+
+OclConstraint returns adaptationpoints::OclConstraint:
+	'OclConstraint'
+	name=EString
+	'{'
+		'oclString' oclString=EString
+	'}';
+
+enum AdaptationScope returns AdaptationScope:
+	NOT_SET = 'NOT_SET' |
+	THIS = 'THIS' |
+	LEAST_UTILIZED_FIRST = 'LEAST_UTILIZED_FIRST' |
+	MOST_UTILIZED_FIRST = 'MOST_UTILIZED_FIRST' |
+	RANDOM = 'RANDOM' |
+	ALL = 'ALL'
+;
+
+enum AdaptationDirection returns AdaptationDirection:
+	NOT_SET = 'NOT_SET' |
+	INCREASE = 'INCREASE' |
+	DECREASE = 'DECREASE' |
+	MIGRATE = 'MIGRATE'
+;
+
+Objective returns Objective:
+	name=EString ('[id:'id=EString']')?
+	'{'
+		'specification' '=' ((specifications+=Specification)|('(' specifications+=Specification ( "," specifications+=Specification)* ')'))
+	'}'
+	;
+
+Event returns Event:
+	name=EString ('[id:'id=EString']')?
+	;
+
+WeightedTactic returns WeightedTactic:
+	name=EString ('[id:'id=EString']')? '='
+	'('
+		('tactic' '=')? usedTactic=[Tactic|EString]
+		','
+		('default' '=')? defaultWeight=EDouble
+		','
+		('current' '=')? currentWeight=EDouble
+		(',' ('lastImpact' '=')? lastImpact=[perfdatarepo::Impact|EString])?
+	')';
+
+WeightingFunction returns WeightingFunction:
+	name=EString ('[id:'id=EString']')? '='
+	'('
+		'weightingFunctionImplementation' '=' weightingFunctionImplementation=EString
+		'weightedMetrics' '=' '(' weightedMetrics+=WeightedMetric ( "," weightedMetrics+=WeightedMetric)* ')' 
+	')';
+
+Specification returns Specification:
+	('Specification')?
+	'('
+		('metricType')? metricType=[perfdatarepo::MetricType|EString]
+		','
+		('relationalOperator')? relationalOperator=RelationalOperator
+		','
+		('value')? value=EDouble
+	')';
+
+MetricType returns perfdatarepo::MetricType:
+	'MetricType'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+	'}';
+
+enum RelationalOperator returns RelationalOperator:
+	EQUAL = '==' |
+	NOT_EQUAL = '!=' |
+	GREATER = '>' |
+	GREATER_EQUAL = '>=' |
+	LESS = '<' |
+	LESS_EQUAL = '<=' |
+	EQUAL = 'EQUAL' |
+	NOT_EQUAL = 'NOT_EQUAL' |
+	GREATER = 'GREATER' |
+	GREATER_EQUAL = 'GREATER_EQUAL' |
+	LESS = 'LESS' |
+	LESS_EQUAL = 'LESS_EQUAL'
+;
+
+Impact returns perfdatarepo::Impact:
+	'Impact'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+		'before' before=[perfdatarepo::Result|EString]
+		'after' after=[perfdatarepo::Result|EString]
+	'}';
+
+Result returns perfdatarepo::Result:
+	'Result'('[id:'id=EString']')?
+	'{'
+		'name' name=EString
+		'timestamp' timestamp=EDate
+		'metricValues' '{' metricValues+=MetricValue ( "," metricValues+=MetricValue)* '}' 
+	'}';
+
+EDate returns ecore::EDate:
+	'EDate' /* TODO: implement this rule and an appropriate IValueConverter */;
+
+MetricValue returns perfdatarepo::MetricValue:
+	'MetricValue' name=EString ('[id:'id=EString']')?
+	'{'
+		'value' value=EDouble
+		'measuredEntity' measuredEntity=[perfdatarepo::MeasuredEntity|EString]
+		'metricType' metricType=[perfdatarepo::MetricType|EString]
+	'}';
+
+MeasuredEntity returns perfdatarepo::MeasuredEntity:
+	'MeasuredEntity' name=EString ('[id:'id=EString']')?
+	'{'
+		'metricTypes' '(' metricTypes+=[perfdatarepo::MetricType|EString] ( "," metricTypes+=[perfdatarepo::MetricType|EString])* ')' 
+	'}';
+
+WeightedMetric returns WeightedMetric:
+	('WeightedMetric')? name=EString('[id:'id=EString']')? '=' '('
+		('metricType' '=')? metricType=[perfdatarepo::MetricType|EString]
+		','
+		('weight' '=')? weight=EDouble
+	')';
+
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangRuntimeModule.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangRuntimeModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..4c93bf18fe7fb28945565e987514c09ec12c1b5e
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangRuntimeModule.java
@@ -0,0 +1,17 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta;
+
+import org.eclipse.xtext.scoping.IGlobalScopeProvider;
+import org.eclipse.xtext.scoping.impl.ImportUriGlobalScopeProvider;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class StaLangRuntimeModule extends edu.kit.ipd.descartes.mm.adaptation.sta.AbstractStaLangRuntimeModule {
+	@Override
+	public Class<? extends IGlobalScopeProvider> bindIGlobalScopeProvider (){
+		return ImportUriGlobalScopeProvider.class ; 
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetup.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetup.java
new file mode 100644
index 0000000000000000000000000000000000000000..6179429ccd888ef7894cbf6d34f64ac79875efc1
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/StaLangStandaloneSetup.java
@@ -0,0 +1,16 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta;
+
+/**
+ * Initialization support for running Xtext languages 
+ * without equinox extension registry
+ */
+public class StaLangStandaloneSetup extends StaLangStandaloneSetupGenerated{
+
+	public static void doSetup() {
+		new StaLangStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+}
+
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..5a8f3a1d4a4427a3baa15e360a2f8b1582578584
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.xtend
@@ -0,0 +1,39 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.formatting
+
+import com.google.inject.Inject
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter
+import org.eclipse.xtext.formatting.impl.FormattingConfig
+import edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess
+
+/**
+ * This class contains custom formatting description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#formatting
+ * on how and when to use it 
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class StaLangFormatter extends AbstractDeclarativeFormatter {
+	
+	@Inject extension StaLangGrammarAccess
+	
+	override protected configureFormatting(FormattingConfig c) {
+		for(pair: findKeywordPairs('{', '}')) {
+			c.setIndentation(pair.first, pair.second)
+			c.setLinewrap(1).after(pair.first)
+			c.setLinewrap(1).before(pair.second)
+			c.setLinewrap(1).after(pair.second)
+		}
+		for(comma: findKeywords(',')) {
+			c.setNoLinewrap().before(comma)
+			c.setNoSpace().before(comma)
+			c.setLinewrap().after(comma)
+		}
+		c.setLinewrap(0, 1, 2).before(SL_COMMENTRule)
+		c.setLinewrap(0, 1, 2).before(ML_COMMENTRule)
+		c.setLinewrap(0, 1, 1).after(ML_COMMENTRule)
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..cf4a2f7df25d6fbe2582c4f7bd7b81c6b802b20d
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess
+
+/**
+ * Generates code from your model files on save.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#TutorialCodeGeneration
+ */
+class StaLangGenerator implements IGenerator {
+	
+	override void doGenerate(Resource resource, IFileSystemAccess fsa) {
+//		fsa.generateFile('greetings.txt', 'People to greet: ' + 
+//			resource.allContents
+//				.filter(typeof(Greeting))
+//				.map[name]
+//				.join(', '))
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/scoping/StaLangScopeProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/scoping/StaLangScopeProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..42a15c369acb4cd91a814f3c25575a685a453276
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/scoping/StaLangScopeProvider.java
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.scoping;
+
+/**
+ * This class contains custom scoping description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#scoping
+ * on how and when to use it 
+ *
+ */
+public class StaLangScopeProvider extends org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider {
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..102d535bef99439583dd39ab5b3c9da5dd2d3003
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.xtend
@@ -0,0 +1,7 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.serializer
+
+class StaLangSemanticSequencer extends AbstractStaLangSemanticSequencer {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.xtend b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..a1e030750ae223a1d186d20fab256359c7b2fe9f
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.xtend
@@ -0,0 +1,7 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.serializer
+
+class StaLangSyntacticSequencer extends AbstractStaLangSyntacticSequencer {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/validation/StaLangJavaValidator.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/validation/StaLangJavaValidator.java
new file mode 100644
index 0000000000000000000000000000000000000000..479a3ec31f555937273737256b5fe7781cbcc128
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/sta/validation/StaLangJavaValidator.java
@@ -0,0 +1,19 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.sta.validation;
+
+/**
+ * Custom validation rules. 
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#validation
+ */
+public class StaLangJavaValidator extends edu.kit.ipd.descartes.mm.adaptation.sta.validation.AbstractStaLangJavaValidator {
+
+//	@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/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/.StaLangFormatter.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/.StaLangFormatter.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..7ce4654a80c38276741777e3cb8cbfaed9199582
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/.StaLangFormatter.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.java b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.java
new file mode 100644
index 0000000000000000000000000000000000000000..4f0b1a8a5117a52fbf6c45a42d3520a4c38f9418
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/formatting/StaLangFormatter.java
@@ -0,0 +1,72 @@
+/**
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.formatting;
+
+import com.google.inject.Inject;
+import edu.kit.ipd.descartes.mm.adaptation.sta.services.StaLangGrammarAccess;
+import java.util.List;
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.TerminalRule;
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+import org.eclipse.xtext.formatting.impl.FormattingConfig.LinewrapLocator;
+import org.eclipse.xtext.formatting.impl.FormattingConfig.NoLinewrapLocator;
+import org.eclipse.xtext.formatting.impl.FormattingConfig.NoSpaceLocator;
+import org.eclipse.xtext.util.Pair;
+import org.eclipse.xtext.xbase.lib.Extension;
+
+/**
+ * This class contains custom formatting description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#formatting
+ * on how and when to use it
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+@SuppressWarnings("all")
+public class StaLangFormatter extends AbstractDeclarativeFormatter {
+  @Inject
+  @Extension
+  private StaLangGrammarAccess _staLangGrammarAccess;
+  
+  protected void configureFormatting(final FormattingConfig c) {
+    List<Pair<Keyword,Keyword>> _findKeywordPairs = this._staLangGrammarAccess.findKeywordPairs("{", "}");
+    for (final Pair<Keyword,Keyword> pair : _findKeywordPairs) {
+      {
+        Keyword _first = pair.getFirst();
+        Keyword _second = pair.getSecond();
+        c.setIndentation(_first, _second);
+        LinewrapLocator _setLinewrap = c.setLinewrap(1);
+        Keyword _first_1 = pair.getFirst();
+        _setLinewrap.after(_first_1);
+        LinewrapLocator _setLinewrap_1 = c.setLinewrap(1);
+        Keyword _second_1 = pair.getSecond();
+        _setLinewrap_1.before(_second_1);
+        LinewrapLocator _setLinewrap_2 = c.setLinewrap(1);
+        Keyword _second_2 = pair.getSecond();
+        _setLinewrap_2.after(_second_2);
+      }
+    }
+    List<Keyword> _findKeywords = this._staLangGrammarAccess.findKeywords(",");
+    for (final Keyword comma : _findKeywords) {
+      {
+        NoLinewrapLocator _setNoLinewrap = c.setNoLinewrap();
+        _setNoLinewrap.before(comma);
+        NoSpaceLocator _setNoSpace = c.setNoSpace();
+        _setNoSpace.before(comma);
+        LinewrapLocator _setLinewrap = c.setLinewrap();
+        _setLinewrap.after(comma);
+      }
+    }
+    LinewrapLocator _setLinewrap = c.setLinewrap(0, 1, 2);
+    TerminalRule _sL_COMMENTRule = this._staLangGrammarAccess.getSL_COMMENTRule();
+    _setLinewrap.before(_sL_COMMENTRule);
+    LinewrapLocator _setLinewrap_1 = c.setLinewrap(0, 1, 2);
+    TerminalRule _mL_COMMENTRule = this._staLangGrammarAccess.getML_COMMENTRule();
+    _setLinewrap_1.before(_mL_COMMENTRule);
+    LinewrapLocator _setLinewrap_2 = c.setLinewrap(0, 1, 1);
+    TerminalRule _mL_COMMENTRule_1 = this._staLangGrammarAccess.getML_COMMENTRule();
+    _setLinewrap_2.after(_mL_COMMENTRule_1);
+  }
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/generator/.StaLangGenerator.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/generator/.StaLangGenerator.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..7eeed27a2560a9421d58561665ce97c600d09e52
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/generator/.StaLangGenerator.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.java b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..f1ac8fbf6842bf46c7daa435b0b133602da25588
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/generator/StaLangGenerator.java
@@ -0,0 +1,19 @@
+/**
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.generator;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IGenerator;
+
+/**
+ * Generates code from your model files on save.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#TutorialCodeGeneration
+ */
+@SuppressWarnings("all")
+public class StaLangGenerator implements IGenerator {
+  public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
+  }
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSemanticSequencer.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSemanticSequencer.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..8d5f81d2c6f5e54238d90508e5ea281ac09c7e83
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSemanticSequencer.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSyntacticSequencer.java._trace b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSyntacticSequencer.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..d0917397107c8a09bbc41853500f0e2e16d74e48
Binary files /dev/null and b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/.StaLangSyntacticSequencer.java._trace differ
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.java b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.java
new file mode 100644
index 0000000000000000000000000000000000000000..0c0c4a842bf0140a2f8a75134fdfc4c32f056198
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSemanticSequencer.java
@@ -0,0 +1,10 @@
+/**
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.serializer;
+
+import edu.kit.ipd.descartes.mm.adaptation.sta.serializer.AbstractStaLangSemanticSequencer;
+
+@SuppressWarnings("all")
+public class StaLangSemanticSequencer extends AbstractStaLangSemanticSequencer {
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.java b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.java
new file mode 100644
index 0000000000000000000000000000000000000000..c351fa8a44cae71fc7a813fce876e983a4793491
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/xtend-gen/edu/kit/ipd/descartes/mm/adaptation/sta/serializer/StaLangSyntacticSequencer.java
@@ -0,0 +1,10 @@
+/**
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.sta.serializer;
+
+import edu.kit.ipd.descartes.mm.adaptation.sta.serializer.AbstractStaLangSyntacticSequencer;
+
+@SuppressWarnings("all")
+public class StaLangSyntacticSequencer extends AbstractStaLangSyntacticSequencer {
+}