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..7e8449de039d0d70f369179c7ddaa5854d8f2304
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-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..88a7a11cf67995eac8b7bfb443a2b8c8a0eadcf8
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/.project
@@ -0,0 +1,28 @@
+<?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>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
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..6545ef5c06b2804a72eeb7db807339b21b3d4a9c
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+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.antlr.runtime,
+ org.eclipse.compare,
+ org.eclipse.xtext.builder
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: edu.kit.ipd.descartes.mm.adaptation.ui.contentassist,
+ edu.kit.ipd.descartes.mm.adaptation.ui.contentassist.antlr
+Bundle-Activator: edu.kit.ipd.descartes.mm.adaptation.ui.internal.StaAdaptationLanguageActivator
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..e10dcceb6a3b0a473cf9e86fb9c6047abb97541d
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/build.properties
@@ -0,0 +1,5 @@
+source.. = src/,\
+          src-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..ebeab6de4efc9822cb55968d8f239f1094994022
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/plugin.xml
@@ -0,0 +1,258 @@
+<?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.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="stalang"
+            id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage"
+            name="StaAdaptationLanguage Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.validate">
+         <activeWhen>
+            <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.Editor.opened">
+            </reference>
+         </activeWhen>
+      </handler>
+    </extension>
+    <extension point="org.eclipse.core.expressions.definitions">
+        <definition id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.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.StaAdaptationLanguage" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage"
+            name="StaAdaptationLanguage">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.ui.keyword_StaAdaptationLanguage"/>
+        </page>
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage"
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.ui.keyword_StaAdaptationLanguage"/>
+        </page>
+        <page
+            category="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage"
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.templates"
+            name="Templates">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.ui.keyword_StaAdaptationLanguage"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage"
+            name="StaAdaptationLanguage">
+            <keywordReference id="edu.kit.ipd.descartes.mm.adaptation.ui.keyword_StaAdaptationLanguage"/>
+            <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.ui.keyword_StaAdaptationLanguage"
+            label="StaAdaptationLanguage"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.validate"
+            name="Validate">
+      </command>
+    </extension>
+    <extension point="org.eclipse.ui.menus">
+        <menuContribution
+            locationURI="popup:#TextEditorContext?after=group.edit">
+             <command
+                 commandId="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.Editor.opened">
+                </reference>
+            </visibleWhen>
+         </command>  
+         </menuContribution>
+    </extension>
+    <extension point="org.eclipse.ui.menus">
+		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+				<visibleWhen checkEnabled="false">
+                	<reference definitionId="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.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.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="stalang">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="stalang">
+        </resourceServiceProvider>
+    </extension>
+
+
+    <!-- marker definitions for edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage -->
+    <extension
+            id="staadaptationlanguage.check.fast"
+            name="StaAdaptationLanguage Problem"
+            point="org.eclipse.core.resources.markers">
+        <super type="org.eclipse.xtext.ui.check.fast"/>
+        <persistent value="true"/>
+    </extension>
+    <extension
+            id="staadaptationlanguage.check.normal"
+            name="StaAdaptationLanguage Problem"
+            point="org.eclipse.core.resources.markers">
+        <super type="org.eclipse.xtext.ui.check.normal"/>
+        <persistent value="true"/>
+    </extension>
+    <extension
+            id="staadaptationlanguage.check.expensive"
+            name="StaAdaptationLanguage Problem"
+            point="org.eclipse.core.resources.markers">
+        <super type="org.eclipse.xtext.ui.check.expensive"/>
+        <persistent value="true"/>
+    </extension>
+
+	<!-- Quick Outline -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory: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.StaAdaptationLanguage.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.StaAdaptationLanguage.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.compare.contentViewers"
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="stalang">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.compare.contentMergeViewers"
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="stalang" label="StaAdaptationLanguage Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage.editors.documentProviders"
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="stalang">
+    </provider>
+  </extension>
+    <!-- quickfix marker resolution generator for edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="edu.kit.ipd.descartes.mm.adaptation.ui.staadaptationlanguage.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="edu.kit.ipd.descartes.mm.adaptation.ui.staadaptationlanguage.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="edu.kit.ipd.descartes.mm.adaptation.ui.staadaptationlanguage.check.expensive">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+    </extension>
+
+</plugin>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/AbstractStaAdaptationLanguageUiModule.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/AbstractStaAdaptationLanguageUiModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..f12ba4aaa75bfe897095ee436368833bd37b54b7
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/AbstractStaAdaptationLanguageUiModule.java
@@ -0,0 +1,122 @@
+
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractStaAdaptationLanguageUiModule extends DefaultUiModule {
+	
+	public AbstractStaAdaptationLanguageUiModule(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.parser.antlr.internal.InternalStaAdaptationLanguageLexer.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.ui.generator.labeling.LabelProviderFragment
+	public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+		return edu.kit.ipd.descartes.mm.adaptation.ui.labeling.StaAdaptationLanguageLabelProvider.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.ui.labeling.StaAdaptationLanguageDescriptionLabelProvider.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.ui.outline.StaAdaptationLanguageOutlineTreeProvider.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.ui.outline.StaAdaptationLanguageOutlineTreeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.contentAssist.JavaBasedContentAssistFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+		return edu.kit.ipd.descartes.mm.adaptation.ui.contentassist.StaAdaptationLanguageProposalProvider.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.ui.contentassist.antlr.StaAdaptationLanguageParser.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.ui.contentassist.antlr.internal.InternalStaAdaptationLanguageLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(edu.kit.ipd.descartes.mm.adaptation.ui.contentassist.antlr.internal.InternalStaAdaptationLanguageLexer.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.ui.contentassist.antlr.internal.InternalStaAdaptationLanguageLexer.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;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
+		return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+		return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+		return edu.kit.ipd.descartes.mm.adaptation.ui.quickfix.StaAdaptationLanguageQuickfixProvider.class;
+	}
+
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/StaAdaptationLanguageExecutableExtensionFactory.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/StaAdaptationLanguageExecutableExtensionFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..839b90839c894c9647037db696c9470fd62d4e6e
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/StaAdaptationLanguageExecutableExtensionFactory.java
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.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.ui.internal.StaAdaptationLanguageActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class StaAdaptationLanguageExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+	@Override
+	protected Bundle getBundle() {
+		return StaAdaptationLanguageActivator.getInstance().getBundle();
+	}
+	
+	@Override
+	protected Injector getInjector() {
+		return StaAdaptationLanguageActivator.getInstance().getInjector(StaAdaptationLanguageActivator.EDU_KIT_IPD_DESCARTES_MM_ADAPTATION_STAADAPTATIONLANGUAGE);
+	}
+	
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/AbstractStaAdaptationLanguageProposalProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/AbstractStaAdaptationLanguageProposalProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..f109c86f0808330071cb5f67d1ac96c11db95f7f
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/AbstractStaAdaptationLanguageProposalProvider.java
@@ -0,0 +1,279 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of interface {@link IProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
+ * with a more concrete subtype. 
+ */
+@SuppressWarnings("all")
+public class AbstractStaAdaptationLanguageProposalProvider extends TerminalsProposalProvider {
+		
+	public void completeStaRepository_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStaRepository_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStaRepository_Tactics(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStaRepository_Actions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStaRepository_Strategies(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStaRepository_Parameters(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_Name(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 completeTactic_ImplementedPlan(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_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAction_OutputParam(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_ReferredAdaptationPoint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)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_Name(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 completeAdaptationPlan_Id(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_Steps(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStart_Predecessor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStart_Successor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStop_Predecessor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStop_Successor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLoop_Counter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLoop_Predecessor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLoop_Successor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLoop_Body(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranch_Condition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranch_Predecessor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranch_Successor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranch_Branches(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionReference_Predecessor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionReference_Successor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionReference_RefersTo(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)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_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_Entity(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) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePropertyRange_MaxValueConstraint(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) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSetOfConfigurations_Variants(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)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_Specification(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_DefaultWeight(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightedTactic_Uses(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWeightingFunction_Function(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+    
+	public void complete_StaRepository(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_AdaptationPlan(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Start(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Stop(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Loop(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Branch(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_EInt(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_EObject(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_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
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/StaAdaptationLanguageParser.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/StaAdaptationLanguageParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..bc40413df808baf1b324e00d31901bdec1f0aca2
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/StaAdaptationLanguageParser.java
@@ -0,0 +1,199 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.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.services.StaAdaptationLanguageGrammarAccess;
+
+public class StaAdaptationLanguageParser extends AbstractContentAssistParser {
+	
+	@Inject
+	private StaAdaptationLanguageGrammarAccess grammarAccess;
+	
+	private Map<AbstractElement, String> nameMappings;
+	
+	@Override
+	protected edu.kit.ipd.descartes.mm.adaptation.ui.contentassist.antlr.internal.InternalStaAdaptationLanguageParser createParser() {
+		edu.kit.ipd.descartes.mm.adaptation.ui.contentassist.antlr.internal.InternalStaAdaptationLanguageParser result = new edu.kit.ipd.descartes.mm.adaptation.ui.contentassist.antlr.internal.InternalStaAdaptationLanguageParser(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.getStaRepositoryAccess().getGroup(), "rule__StaRepository__Group__0");
+					put(grammarAccess.getStaRepositoryAccess().getGroup_8(), "rule__StaRepository__Group_8__0");
+					put(grammarAccess.getStaRepositoryAccess().getGroup_13(), "rule__StaRepository__Group_13__0");
+					put(grammarAccess.getStaRepositoryAccess().getGroup_18(), "rule__StaRepository__Group_18__0");
+					put(grammarAccess.getStaRepositoryAccess().getGroup_20(), "rule__StaRepository__Group_20__0");
+					put(grammarAccess.getStaRepositoryAccess().getGroup_20_3(), "rule__StaRepository__Group_20_3__0");
+					put(grammarAccess.getTacticAccess().getGroup(), "rule__Tactic__Group__0");
+					put(grammarAccess.getTacticAccess().getGroup_5(), "rule__Tactic__Group_5__0");
+					put(grammarAccess.getTacticAccess().getGroup_5_3(), "rule__Tactic__Group_5_3__0");
+					put(grammarAccess.getTacticAccess().getGroup_6(), "rule__Tactic__Group_6__0");
+					put(grammarAccess.getActionAccess().getGroup(), "rule__Action__Group__0");
+					put(grammarAccess.getActionAccess().getGroup_5(), "rule__Action__Group_5__0");
+					put(grammarAccess.getActionAccess().getGroup_6(), "rule__Action__Group_6__0");
+					put(grammarAccess.getActionAccess().getGroup_6_3(), "rule__Action__Group_6_3__0");
+					put(grammarAccess.getStrategyAccess().getGroup(), "rule__Strategy__Group__0");
+					put(grammarAccess.getStrategyAccess().getGroup_7(), "rule__Strategy__Group_7__0");
+					put(grammarAccess.getStrategyAccess().getGroup_11(), "rule__Strategy__Group_11__0");
+					put(grammarAccess.getParameterAccess().getGroup(), "rule__Parameter__Group__0");
+					put(grammarAccess.getAdaptationPlanAccess().getGroup(), "rule__AdaptationPlan__Group__0");
+					put(grammarAccess.getAdaptationPlanAccess().getGroup_5(), "rule__AdaptationPlan__Group_5__0");
+					put(grammarAccess.getAdaptationPlanAccess().getGroup_5_3(), "rule__AdaptationPlan__Group_5_3__0");
+					put(grammarAccess.getStartAccess().getGroup(), "rule__Start__Group__0");
+					put(grammarAccess.getStartAccess().getGroup_3(), "rule__Start__Group_3__0");
+					put(grammarAccess.getStartAccess().getGroup_4(), "rule__Start__Group_4__0");
+					put(grammarAccess.getStopAccess().getGroup(), "rule__Stop__Group__0");
+					put(grammarAccess.getStopAccess().getGroup_3(), "rule__Stop__Group_3__0");
+					put(grammarAccess.getStopAccess().getGroup_4(), "rule__Stop__Group_4__0");
+					put(grammarAccess.getLoopAccess().getGroup(), "rule__Loop__Group__0");
+					put(grammarAccess.getLoopAccess().getGroup_4(), "rule__Loop__Group_4__0");
+					put(grammarAccess.getLoopAccess().getGroup_5(), "rule__Loop__Group_5__0");
+					put(grammarAccess.getBranchAccess().getGroup(), "rule__Branch__Group__0");
+					put(grammarAccess.getBranchAccess().getGroup_2(), "rule__Branch__Group_2__0");
+					put(grammarAccess.getBranchAccess().getGroup_3(), "rule__Branch__Group_3__0");
+					put(grammarAccess.getBranchAccess().getGroup_4(), "rule__Branch__Group_4__0");
+					put(grammarAccess.getBranchAccess().getGroup_8(), "rule__Branch__Group_8__0");
+					put(grammarAccess.getActionReferenceAccess().getGroup(), "rule__ActionReference__Group__0");
+					put(grammarAccess.getActionReferenceAccess().getGroup_2(), "rule__ActionReference__Group_2__0");
+					put(grammarAccess.getActionReferenceAccess().getGroup_3(), "rule__ActionReference__Group_3__0");
+					put(grammarAccess.getEIntAccess().getGroup(), "rule__EInt__Group__0");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getGroup(), "rule__ModelVariableConfigurationRange__Group__0");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup(), "rule__ModelEntityConfigurationRange__Group__0");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_3(), "rule__ModelEntityConfigurationRange__Group_3__0");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_3_3(), "rule__ModelEntityConfigurationRange__Group_3_3__0");
+					put(grammarAccess.getEDoubleAccess().getGroup(), "rule__EDouble__Group__0");
+					put(grammarAccess.getEDoubleAccess().getGroup_4(), "rule__EDouble__Group_4__0");
+					put(grammarAccess.getEObjectAccess().getGroup(), "rule__EObject__Group__0");
+					put(grammarAccess.getPropertyRangeAccess().getGroup(), "rule__PropertyRange__Group__0");
+					put(grammarAccess.getSetOfConfigurationsAccess().getGroup(), "rule__SetOfConfigurations__Group__0");
+					put(grammarAccess.getSetOfConfigurationsAccess().getGroup_4(), "rule__SetOfConfigurations__Group_4__0");
+					put(grammarAccess.getSetOfConfigurationsAccess().getGroup_4_3(), "rule__SetOfConfigurations__Group_4_3__0");
+					put(grammarAccess.getOclConstraintAccess().getGroup(), "rule__OclConstraint__Group__0");
+					put(grammarAccess.getObjectiveAccess().getGroup(), "rule__Objective__Group__0");
+					put(grammarAccess.getEventAccess().getGroup(), "rule__Event__Group__0");
+					put(grammarAccess.getWeightedTacticAccess().getGroup(), "rule__WeightedTactic__Group__0");
+					put(grammarAccess.getWeightingFunctionAccess().getGroup(), "rule__WeightingFunction__Group__0");
+					put(grammarAccess.getStaRepositoryAccess().getIdAssignment_1(), "rule__StaRepository__IdAssignment_1");
+					put(grammarAccess.getStaRepositoryAccess().getNameAssignment_4(), "rule__StaRepository__NameAssignment_4");
+					put(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_7(), "rule__StaRepository__TacticsAssignment_7");
+					put(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_8_1(), "rule__StaRepository__TacticsAssignment_8_1");
+					put(grammarAccess.getStaRepositoryAccess().getActionsAssignment_12(), "rule__StaRepository__ActionsAssignment_12");
+					put(grammarAccess.getStaRepositoryAccess().getActionsAssignment_13_1(), "rule__StaRepository__ActionsAssignment_13_1");
+					put(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_17(), "rule__StaRepository__StrategiesAssignment_17");
+					put(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_18_1(), "rule__StaRepository__StrategiesAssignment_18_1");
+					put(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_2(), "rule__StaRepository__ParametersAssignment_20_2");
+					put(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_3_1(), "rule__StaRepository__ParametersAssignment_20_3_1");
+					put(grammarAccess.getTacticAccess().getIdAssignment_1(), "rule__Tactic__IdAssignment_1");
+					put(grammarAccess.getTacticAccess().getNameAssignment_4(), "rule__Tactic__NameAssignment_4");
+					put(grammarAccess.getTacticAccess().getInputParamsAssignment_5_2(), "rule__Tactic__InputParamsAssignment_5_2");
+					put(grammarAccess.getTacticAccess().getInputParamsAssignment_5_3_1(), "rule__Tactic__InputParamsAssignment_5_3_1");
+					put(grammarAccess.getTacticAccess().getOutputParamAssignment_6_1(), "rule__Tactic__OutputParamAssignment_6_1");
+					put(grammarAccess.getTacticAccess().getImplementedPlanAssignment_8(), "rule__Tactic__ImplementedPlanAssignment_8");
+					put(grammarAccess.getActionAccess().getIdAssignment_1(), "rule__Action__IdAssignment_1");
+					put(grammarAccess.getActionAccess().getNameAssignment_4(), "rule__Action__NameAssignment_4");
+					put(grammarAccess.getActionAccess().getOutputParamAssignment_5_1(), "rule__Action__OutputParamAssignment_5_1");
+					put(grammarAccess.getActionAccess().getInputParamsAssignment_6_2(), "rule__Action__InputParamsAssignment_6_2");
+					put(grammarAccess.getActionAccess().getInputParamsAssignment_6_3_1(), "rule__Action__InputParamsAssignment_6_3_1");
+					put(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_8(), "rule__Action__ReferredAdaptationPointAssignment_8");
+					put(grammarAccess.getStrategyAccess().getIdAssignment_1(), "rule__Strategy__IdAssignment_1");
+					put(grammarAccess.getStrategyAccess().getNameAssignment_4(), "rule__Strategy__NameAssignment_4");
+					put(grammarAccess.getStrategyAccess().getObjectiveAssignment_6(), "rule__Strategy__ObjectiveAssignment_6");
+					put(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_7_1(), "rule__Strategy__TriggeringEventsAssignment_7_1");
+					put(grammarAccess.getStrategyAccess().getTacticsAssignment_10(), "rule__Strategy__TacticsAssignment_10");
+					put(grammarAccess.getStrategyAccess().getTacticsAssignment_11_1(), "rule__Strategy__TacticsAssignment_11_1");
+					put(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_14(), "rule__Strategy__WeightingFunctionAssignment_14");
+					put(grammarAccess.getParameterAccess().getNameAssignment_1(), "rule__Parameter__NameAssignment_1");
+					put(grammarAccess.getParameterAccess().getTypeAssignment_4(), "rule__Parameter__TypeAssignment_4");
+					put(grammarAccess.getAdaptationPlanAccess().getIdAssignment_1(), "rule__AdaptationPlan__IdAssignment_1");
+					put(grammarAccess.getAdaptationPlanAccess().getNameAssignment_4(), "rule__AdaptationPlan__NameAssignment_4");
+					put(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_2(), "rule__AdaptationPlan__StepsAssignment_5_2");
+					put(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_3_1(), "rule__AdaptationPlan__StepsAssignment_5_3_1");
+					put(grammarAccess.getStartAccess().getPredecessorAssignment_3_1(), "rule__Start__PredecessorAssignment_3_1");
+					put(grammarAccess.getStartAccess().getSuccessorAssignment_4_1(), "rule__Start__SuccessorAssignment_4_1");
+					put(grammarAccess.getStopAccess().getPredecessorAssignment_3_1(), "rule__Stop__PredecessorAssignment_3_1");
+					put(grammarAccess.getStopAccess().getSuccessorAssignment_4_1(), "rule__Stop__SuccessorAssignment_4_1");
+					put(grammarAccess.getLoopAccess().getCounterAssignment_3(), "rule__Loop__CounterAssignment_3");
+					put(grammarAccess.getLoopAccess().getPredecessorAssignment_4_1(), "rule__Loop__PredecessorAssignment_4_1");
+					put(grammarAccess.getLoopAccess().getSuccessorAssignment_5_1(), "rule__Loop__SuccessorAssignment_5_1");
+					put(grammarAccess.getLoopAccess().getBodyAssignment_7(), "rule__Loop__BodyAssignment_7");
+					put(grammarAccess.getBranchAccess().getConditionAssignment_2_1(), "rule__Branch__ConditionAssignment_2_1");
+					put(grammarAccess.getBranchAccess().getPredecessorAssignment_3_1(), "rule__Branch__PredecessorAssignment_3_1");
+					put(grammarAccess.getBranchAccess().getSuccessorAssignment_4_1(), "rule__Branch__SuccessorAssignment_4_1");
+					put(grammarAccess.getBranchAccess().getBranchesAssignment_7(), "rule__Branch__BranchesAssignment_7");
+					put(grammarAccess.getBranchAccess().getBranchesAssignment_8_1(), "rule__Branch__BranchesAssignment_8_1");
+					put(grammarAccess.getActionReferenceAccess().getPredecessorAssignment_2_1(), "rule__ActionReference__PredecessorAssignment_2_1");
+					put(grammarAccess.getActionReferenceAccess().getSuccessorAssignment_3_1(), "rule__ActionReference__SuccessorAssignment_3_1");
+					put(grammarAccess.getActionReferenceAccess().getRefersToAssignment_5(), "rule__ActionReference__RefersToAssignment_5");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1(), "rule__ModelVariableConfigurationRange__IdAssignment_1");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_4(), "rule__ModelVariableConfigurationRange__MinValueAssignment_4");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_6(), "rule__ModelVariableConfigurationRange__MaxValueAssignment_6");
+					put(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_8(), "rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1(), "rule__ModelEntityConfigurationRange__IdAssignment_1");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_2(), "rule__ModelEntityConfigurationRange__EntityAssignment_3_2");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_3_1(), "rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1");
+					put(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_5(), "rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5");
+					put(grammarAccess.getPropertyRangeAccess().getMinValueConstraintAssignment_3(), "rule__PropertyRange__MinValueConstraintAssignment_3");
+					put(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintAssignment_5(), "rule__PropertyRange__MaxValueConstraintAssignment_5");
+					put(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_3(), "rule__SetOfConfigurations__ValueConstraintAssignment_3");
+					put(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_2(), "rule__SetOfConfigurations__VariantsAssignment_4_2");
+					put(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_3_1(), "rule__SetOfConfigurations__VariantsAssignment_4_3_1");
+					put(grammarAccess.getOclConstraintAccess().getOclStringAssignment_3(), "rule__OclConstraint__OclStringAssignment_3");
+					put(grammarAccess.getObjectiveAccess().getSpecificationAssignment_3(), "rule__Objective__SpecificationAssignment_3");
+					put(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_3(), "rule__WeightedTactic__CurrentWeightAssignment_3");
+					put(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_5(), "rule__WeightedTactic__DefaultWeightAssignment_5");
+					put(grammarAccess.getWeightedTacticAccess().getUsesAssignment_7(), "rule__WeightedTactic__UsesAssignment_7");
+					put(grammarAccess.getWeightingFunctionAccess().getFunctionAssignment_3(), "rule__WeightingFunction__FunctionAssignment_3");
+				}
+			};
+		}
+		return nameMappings.get(element);
+	}
+	
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		try {
+			edu.kit.ipd.descartes.mm.adaptation.ui.contentassist.antlr.internal.InternalStaAdaptationLanguageParser typedParser = (edu.kit.ipd.descartes.mm.adaptation.ui.contentassist.antlr.internal.InternalStaAdaptationLanguageParser) parser;
+			typedParser.entryRuleStaRepository();
+			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 StaAdaptationLanguageGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(StaAdaptationLanguageGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g
new file mode 100644
index 0000000000000000000000000000000000000000..f81d706262354b9109a20459347b06929a23c18d
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g
@@ -0,0 +1,9834 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStaAdaptationLanguage;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	
+}
+
+@lexer::header {
+package edu.kit.ipd.descartes.mm.adaptation.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.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.services.StaAdaptationLanguageGrammarAccess;
+
+}
+
+@parser::members {
+ 
+ 	private StaAdaptationLanguageGrammarAccess grammarAccess;
+ 	
+    public void setGrammarAccess(StaAdaptationLanguageGrammarAccess grammarAccess) {
+    	this.grammarAccess = grammarAccess;
+    }
+    
+    @Override
+    protected Grammar getGrammar() {
+    	return grammarAccess.getGrammar();
+    }
+    
+    @Override
+    protected String getValueForTokenName(String tokenName) {
+    	return tokenName;
+    }
+
+}
+
+
+
+
+// Entry rule entryRuleStaRepository
+entryRuleStaRepository 
+:
+{ before(grammarAccess.getStaRepositoryRule()); }
+	 ruleStaRepository
+{ after(grammarAccess.getStaRepositoryRule()); } 
+	 EOF 
+;
+
+// Rule StaRepository
+ruleStaRepository
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getGroup()); }
+(rule__StaRepository__Group__0)
+{ after(grammarAccess.getStaRepositoryAccess().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 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 entryRuleStart
+entryRuleStart 
+:
+{ before(grammarAccess.getStartRule()); }
+	 ruleStart
+{ after(grammarAccess.getStartRule()); } 
+	 EOF 
+;
+
+// Rule Start
+ruleStart
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStartAccess().getGroup()); }
+(rule__Start__Group__0)
+{ after(grammarAccess.getStartAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStop
+entryRuleStop 
+:
+{ before(grammarAccess.getStopRule()); }
+	 ruleStop
+{ after(grammarAccess.getStopRule()); } 
+	 EOF 
+;
+
+// Rule Stop
+ruleStop
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStopAccess().getGroup()); }
+(rule__Stop__Group__0)
+{ after(grammarAccess.getStopAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLoop
+entryRuleLoop 
+:
+{ before(grammarAccess.getLoopRule()); }
+	 ruleLoop
+{ after(grammarAccess.getLoopRule()); } 
+	 EOF 
+;
+
+// Rule Loop
+ruleLoop
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLoopAccess().getGroup()); }
+(rule__Loop__Group__0)
+{ after(grammarAccess.getLoopAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleBranch
+entryRuleBranch 
+:
+{ before(grammarAccess.getBranchRule()); }
+	 ruleBranch
+{ after(grammarAccess.getBranchRule()); } 
+	 EOF 
+;
+
+// Rule Branch
+ruleBranch
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getBranchAccess().getGroup()); }
+(rule__Branch__Group__0)
+{ after(grammarAccess.getBranchAccess().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 entryRuleEInt
+entryRuleEInt 
+:
+{ before(grammarAccess.getEIntRule()); }
+	 ruleEInt
+{ after(grammarAccess.getEIntRule()); } 
+	 EOF 
+;
+
+// Rule EInt
+ruleEInt
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEIntAccess().getGroup()); }
+(rule__EInt__Group__0)
+{ after(grammarAccess.getEIntAccess().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 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);
+}
+
+
+
+
+
+rule__AbstractControlFlowElement__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getStartParserRuleCall_0()); }
+	ruleStart
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getStartParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getStopParserRuleCall_1()); }
+	ruleStop
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getStopParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getLoopParserRuleCall_2()); }
+	ruleLoop
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getLoopParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractControlFlowElementAccess().getBranchParserRuleCall_3()); }
+	ruleBranch
+{ after(grammarAccess.getAbstractControlFlowElementAccess().getBranchParserRuleCall_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__StaRepository__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__0__Impl
+	rule__StaRepository__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getStaRepositoryKeyword_0()); }
+
+	'StaRepository' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getStaRepositoryKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__1__Impl
+	rule__StaRepository__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getIdAssignment_1()); }
+(rule__StaRepository__IdAssignment_1)
+{ after(grammarAccess.getStaRepositoryAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__2__Impl
+	rule__StaRepository__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__3__Impl
+	rule__StaRepository__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__4__Impl
+	rule__StaRepository__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getNameAssignment_4()); }
+(rule__StaRepository__NameAssignment_4)
+{ after(grammarAccess.getStaRepositoryAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__5__Impl
+	rule__StaRepository__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getTacticsKeyword_5()); }
+
+	'tactics' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getTacticsKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__6__Impl
+	rule__StaRepository__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_6()); }
+
+	'{' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__7__Impl
+	rule__StaRepository__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_7()); }
+(rule__StaRepository__TacticsAssignment_7)
+{ after(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__8__Impl
+	rule__StaRepository__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getGroup_8()); }
+(rule__StaRepository__Group_8__0)*
+{ after(grammarAccess.getStaRepositoryAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__9__Impl
+	rule__StaRepository__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__10__Impl
+	rule__StaRepository__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getActionsKeyword_10()); }
+
+	'actions' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getActionsKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__11__Impl
+	rule__StaRepository__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_11()); }
+
+	'{' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__12__Impl
+	rule__StaRepository__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getActionsAssignment_12()); }
+(rule__StaRepository__ActionsAssignment_12)
+{ after(grammarAccess.getStaRepositoryAccess().getActionsAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__13__Impl
+	rule__StaRepository__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getGroup_13()); }
+(rule__StaRepository__Group_13__0)*
+{ after(grammarAccess.getStaRepositoryAccess().getGroup_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__14__Impl
+	rule__StaRepository__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_14()); }
+
+	'}' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__15__Impl
+	rule__StaRepository__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getStrategiesKeyword_15()); }
+
+	'strategies' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getStrategiesKeyword_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__16__Impl
+	rule__StaRepository__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_16()); }
+
+	'{' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__17__Impl
+	rule__StaRepository__Group__18
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_17()); }
+(rule__StaRepository__StrategiesAssignment_17)
+{ after(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__18__Impl
+	rule__StaRepository__Group__19
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__18__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getGroup_18()); }
+(rule__StaRepository__Group_18__0)*
+{ after(grammarAccess.getStaRepositoryAccess().getGroup_18()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__19
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__19__Impl
+	rule__StaRepository__Group__20
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__19__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_19()); }
+
+	'}' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_19()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__20
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__20__Impl
+	rule__StaRepository__Group__21
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__20__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getGroup_20()); }
+(rule__StaRepository__Group_20__0)?
+{ after(grammarAccess.getStaRepositoryAccess().getGroup_20()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group__21
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group__21__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group__21__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_21()); }
+
+	'}' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_21()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__StaRepository__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_8__0__Impl
+	rule__StaRepository__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getCommaKeyword_8_0()); }
+
+	',' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getCommaKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_8_1()); }
+(rule__StaRepository__TacticsAssignment_8_1)
+{ after(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__StaRepository__Group_13__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_13__0__Impl
+	rule__StaRepository__Group_13__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_13__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getCommaKeyword_13_0()); }
+
+	',' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getCommaKeyword_13_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group_13__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_13__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_13__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getActionsAssignment_13_1()); }
+(rule__StaRepository__ActionsAssignment_13_1)
+{ after(grammarAccess.getStaRepositoryAccess().getActionsAssignment_13_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__StaRepository__Group_18__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_18__0__Impl
+	rule__StaRepository__Group_18__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_18__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getCommaKeyword_18_0()); }
+
+	',' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getCommaKeyword_18_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group_18__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_18__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_18__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_18_1()); }
+(rule__StaRepository__StrategiesAssignment_18_1)
+{ after(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_18_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__StaRepository__Group_20__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_20__0__Impl
+	rule__StaRepository__Group_20__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_20__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getParametersKeyword_20_0()); }
+
+	'parameters' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getParametersKeyword_20_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group_20__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_20__1__Impl
+	rule__StaRepository__Group_20__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_20__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_20_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_20_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group_20__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_20__2__Impl
+	rule__StaRepository__Group_20__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_20__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_2()); }
+(rule__StaRepository__ParametersAssignment_20_2)
+{ after(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group_20__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_20__3__Impl
+	rule__StaRepository__Group_20__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_20__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getGroup_20_3()); }
+(rule__StaRepository__Group_20_3__0)*
+{ after(grammarAccess.getStaRepositoryAccess().getGroup_20_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group_20__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_20__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_20__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_20_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_20_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__StaRepository__Group_20_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_20_3__0__Impl
+	rule__StaRepository__Group_20_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_20_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getCommaKeyword_20_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getStaRepositoryAccess().getCommaKeyword_20_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StaRepository__Group_20_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StaRepository__Group_20_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__Group_20_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_3_1()); }
+(rule__StaRepository__ParametersAssignment_20_3_1)
+{ after(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_3_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().getIdAssignment_1()); }
+(rule__Tactic__IdAssignment_1)
+{ after(grammarAccess.getTacticAccess().getIdAssignment_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().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_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().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getTacticAccess().getNameKeyword_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().getNameAssignment_4()); }
+(rule__Tactic__NameAssignment_4)
+{ after(grammarAccess.getTacticAccess().getNameAssignment_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().getGroup_5()); }
+(rule__Tactic__Group_5__0)?
+{ after(grammarAccess.getTacticAccess().getGroup_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().getImplementedPlanKeyword_7()); }
+
+	'implementedPlan' 
+
+{ after(grammarAccess.getTacticAccess().getImplementedPlanKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__8__Impl
+	rule__Tactic__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getImplementedPlanAssignment_8()); }
+(rule__Tactic__ImplementedPlanAssignment_8)
+{ after(grammarAccess.getTacticAccess().getImplementedPlanAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Tactic__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_5__0__Impl
+	rule__Tactic__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsKeyword_5_0()); }
+
+	'inputParams' 
+
+{ after(grammarAccess.getTacticAccess().getInputParamsKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_5__1__Impl
+	rule__Tactic__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_5_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_5__2__Impl
+	rule__Tactic__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsAssignment_5_2()); }
+(rule__Tactic__InputParamsAssignment_5_2)
+{ after(grammarAccess.getTacticAccess().getInputParamsAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_5__3__Impl
+	rule__Tactic__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getGroup_5_3()); }
+(rule__Tactic__Group_5_3__0)*
+{ after(grammarAccess.getTacticAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getRightParenthesisKeyword_5_4()); }
+
+	')' 
+
+{ after(grammarAccess.getTacticAccess().getRightParenthesisKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Tactic__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_5_3__0__Impl
+	rule__Tactic__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTacticAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsAssignment_5_3_1()); }
+(rule__Tactic__InputParamsAssignment_5_3_1)
+{ after(grammarAccess.getTacticAccess().getInputParamsAssignment_5_3_1()); }
+)
+
+;
+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().getOutputParamKeyword_6_0()); }
+
+	'outputParam' 
+
+{ after(grammarAccess.getTacticAccess().getOutputParamKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Tactic__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Tactic__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getOutputParamAssignment_6_1()); }
+(rule__Tactic__OutputParamAssignment_6_1)
+{ after(grammarAccess.getTacticAccess().getOutputParamAssignment_6_1()); }
+)
+
+;
+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().getIdAssignment_1()); }
+(rule__Action__IdAssignment_1)
+{ after(grammarAccess.getActionAccess().getIdAssignment_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().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_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().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getActionAccess().getNameKeyword_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().getNameAssignment_4()); }
+(rule__Action__NameAssignment_4)
+{ after(grammarAccess.getActionAccess().getNameAssignment_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().getGroup_5()); }
+(rule__Action__Group_5__0)?
+{ after(grammarAccess.getActionAccess().getGroup_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().getGroup_6()); }
+(rule__Action__Group_6__0)?
+{ after(grammarAccess.getActionAccess().getGroup_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().getReferredAdaptationPointAssignment_8()); }
+(rule__Action__ReferredAdaptationPointAssignment_8)
+{ after(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Action__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_5__0__Impl
+	rule__Action__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOutputParamKeyword_5_0()); }
+
+	'outputParam' 
+
+{ after(grammarAccess.getActionAccess().getOutputParamKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOutputParamAssignment_5_1()); }
+(rule__Action__OutputParamAssignment_5_1)
+{ after(grammarAccess.getActionAccess().getOutputParamAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Action__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_6__0__Impl
+	rule__Action__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsKeyword_6_0()); }
+
+	'inputParams' 
+
+{ after(grammarAccess.getActionAccess().getInputParamsKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_6__1__Impl
+	rule__Action__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getLeftParenthesisKeyword_6_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getActionAccess().getLeftParenthesisKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_6__2__Impl
+	rule__Action__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsAssignment_6_2()); }
+(rule__Action__InputParamsAssignment_6_2)
+{ after(grammarAccess.getActionAccess().getInputParamsAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_6__3__Impl
+	rule__Action__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getGroup_6_3()); }
+(rule__Action__Group_6_3__0)*
+{ after(grammarAccess.getActionAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getRightParenthesisKeyword_6_4()); }
+
+	')' 
+
+{ after(grammarAccess.getActionAccess().getRightParenthesisKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Action__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_6_3__0__Impl
+	rule__Action__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getActionAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Action__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Action__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsAssignment_6_3_1()); }
+(rule__Action__InputParamsAssignment_6_3_1)
+{ after(grammarAccess.getActionAccess().getInputParamsAssignment_6_3_1()); }
+)
+
+;
+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().getStrategyKeyword_0()); }
+
+	'Strategy' 
+
+{ after(grammarAccess.getStrategyAccess().getStrategyKeyword_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().getIdAssignment_1()); }
+(rule__Strategy__IdAssignment_1)
+{ after(grammarAccess.getStrategyAccess().getIdAssignment_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().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getStrategyAccess().getNameKeyword_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().getNameAssignment_4()); }
+(rule__Strategy__NameAssignment_4)
+{ after(grammarAccess.getStrategyAccess().getNameAssignment_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().getObjectiveKeyword_5()); }
+
+	'objective' 
+
+{ after(grammarAccess.getStrategyAccess().getObjectiveKeyword_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().getObjectiveAssignment_6()); }
+(rule__Strategy__ObjectiveAssignment_6)
+{ after(grammarAccess.getStrategyAccess().getObjectiveAssignment_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().getGroup_7()); }
+(rule__Strategy__Group_7__0)?
+{ after(grammarAccess.getStrategyAccess().getGroup_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().getTacticsKeyword_8()); }
+
+	'tactics' 
+
+{ after(grammarAccess.getStrategyAccess().getTacticsKeyword_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().getLeftCurlyBracketKeyword_9()); }
+
+	'{' 
+
+{ after(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_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().getTacticsAssignment_10()); }
+(rule__Strategy__TacticsAssignment_10)
+{ after(grammarAccess.getStrategyAccess().getTacticsAssignment_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().getGroup_11()); }
+(rule__Strategy__Group_11__0)*
+{ after(grammarAccess.getStrategyAccess().getGroup_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().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_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().getWeightingFunctionKeyword_13()); }
+
+	'weightingFunction' 
+
+{ after(grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_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().getWeightingFunctionAssignment_14()); }
+(rule__Strategy__WeightingFunctionAssignment_14)
+{ after(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group__15__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_15()); }
+
+	'}' 
+
+{ after(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Strategy__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_7__0__Impl
+	rule__Strategy__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTriggeringEventsKeyword_7_0()); }
+
+	'triggeringEvents' 
+
+{ after(grammarAccess.getStrategyAccess().getTriggeringEventsKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_7_1()); }
+(rule__Strategy__TriggeringEventsAssignment_7_1)
+{ after(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Strategy__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_11__0__Impl
+	rule__Strategy__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getCommaKeyword_11_0()); }
+
+	',' 
+
+{ after(grammarAccess.getStrategyAccess().getCommaKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Strategy__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Strategy__Group_11__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsAssignment_11_1()); }
+(rule__Strategy__TacticsAssignment_11_1)
+{ after(grammarAccess.getStrategyAccess().getTacticsAssignment_11_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().getParameterKeyword_0()); }
+
+	'Parameter' 
+
+{ after(grammarAccess.getParameterAccess().getParameterKeyword_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().getNameAssignment_1()); }
+(rule__Parameter__NameAssignment_1)
+{ after(grammarAccess.getParameterAccess().getNameAssignment_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().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_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().getTypeKeyword_3()); }
+
+	'type' 
+
+{ after(grammarAccess.getParameterAccess().getTypeKeyword_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().getTypeAssignment_4()); }
+(rule__Parameter__TypeAssignment_4)
+{ after(grammarAccess.getParameterAccess().getTypeAssignment_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__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().getAdaptationPlanKeyword_0()); }
+
+	'AdaptationPlan' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getAdaptationPlanKeyword_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().getIdAssignment_1()); }
+(rule__AdaptationPlan__IdAssignment_1)
+{ after(grammarAccess.getAdaptationPlanAccess().getIdAssignment_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().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__3__Impl
+	rule__AdaptationPlan__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__4__Impl
+	rule__AdaptationPlan__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getNameAssignment_4()); }
+(rule__AdaptationPlan__NameAssignment_4)
+{ after(grammarAccess.getAdaptationPlanAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__5__Impl
+	rule__AdaptationPlan__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup_5()); }
+(rule__AdaptationPlan__Group_5__0)?
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationPlan__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_5__0__Impl
+	rule__AdaptationPlan__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsKeyword_5_0()); }
+
+	'steps' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getStepsKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_5__1__Impl
+	rule__AdaptationPlan__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_5__2__Impl
+	rule__AdaptationPlan__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_2()); }
+(rule__AdaptationPlan__StepsAssignment_5_2)
+{ after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_5__3__Impl
+	rule__AdaptationPlan__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getGroup_5_3()); }
+(rule__AdaptationPlan__Group_5_3__0)*
+{ after(grammarAccess.getAdaptationPlanAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__AdaptationPlan__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_5_3__0__Impl
+	rule__AdaptationPlan__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__AdaptationPlan__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__AdaptationPlan__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_3_1()); }
+(rule__AdaptationPlan__StepsAssignment_5_3_1)
+{ after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Start__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group__0__Impl
+	rule__Start__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getStartAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStartAccess().getStartAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Start__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group__1__Impl
+	rule__Start__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getStartKeyword_1()); }
+
+	'Start' 
+
+{ after(grammarAccess.getStartAccess().getStartKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Start__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group__2__Impl
+	rule__Start__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getStartAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Start__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group__3__Impl
+	rule__Start__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getGroup_3()); }
+(rule__Start__Group_3__0)?
+{ after(grammarAccess.getStartAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Start__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group__4__Impl
+	rule__Start__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getGroup_4()); }
+(rule__Start__Group_4__0)?
+{ after(grammarAccess.getStartAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Start__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getStartAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Start__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group_3__0__Impl
+	rule__Start__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getPredecessorKeyword_3_0()); }
+
+	'predecessor' 
+
+{ after(grammarAccess.getStartAccess().getPredecessorKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Start__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getPredecessorAssignment_3_1()); }
+(rule__Start__PredecessorAssignment_3_1)
+{ after(grammarAccess.getStartAccess().getPredecessorAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Start__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group_4__0__Impl
+	rule__Start__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getSuccessorKeyword_4_0()); }
+
+	'successor' 
+
+{ after(grammarAccess.getStartAccess().getSuccessorKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Start__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Start__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getSuccessorAssignment_4_1()); }
+(rule__Start__SuccessorAssignment_4_1)
+{ after(grammarAccess.getStartAccess().getSuccessorAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Stop__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group__0__Impl
+	rule__Stop__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getStopAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStopAccess().getStopAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Stop__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group__1__Impl
+	rule__Stop__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getStopKeyword_1()); }
+
+	'Stop' 
+
+{ after(grammarAccess.getStopAccess().getStopKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Stop__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group__2__Impl
+	rule__Stop__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getStopAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Stop__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group__3__Impl
+	rule__Stop__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getGroup_3()); }
+(rule__Stop__Group_3__0)?
+{ after(grammarAccess.getStopAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Stop__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group__4__Impl
+	rule__Stop__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getGroup_4()); }
+(rule__Stop__Group_4__0)?
+{ after(grammarAccess.getStopAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Stop__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getStopAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Stop__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group_3__0__Impl
+	rule__Stop__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getPredecessorKeyword_3_0()); }
+
+	'predecessor' 
+
+{ after(grammarAccess.getStopAccess().getPredecessorKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Stop__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getPredecessorAssignment_3_1()); }
+(rule__Stop__PredecessorAssignment_3_1)
+{ after(grammarAccess.getStopAccess().getPredecessorAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Stop__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group_4__0__Impl
+	rule__Stop__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getSuccessorKeyword_4_0()); }
+
+	'successor' 
+
+{ after(grammarAccess.getStopAccess().getSuccessorKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Stop__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Stop__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getSuccessorAssignment_4_1()); }
+(rule__Stop__SuccessorAssignment_4_1)
+{ after(grammarAccess.getStopAccess().getSuccessorAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Loop__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group__0__Impl
+	rule__Loop__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getLoopKeyword_0()); }
+
+	'Loop' 
+
+{ after(grammarAccess.getLoopAccess().getLoopKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group__1__Impl
+	rule__Loop__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getLoopAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group__2__Impl
+	rule__Loop__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getCounterKeyword_2()); }
+
+	'counter' 
+
+{ after(grammarAccess.getLoopAccess().getCounterKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group__3__Impl
+	rule__Loop__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getCounterAssignment_3()); }
+(rule__Loop__CounterAssignment_3)
+{ after(grammarAccess.getLoopAccess().getCounterAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group__4__Impl
+	rule__Loop__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getGroup_4()); }
+(rule__Loop__Group_4__0)?
+{ after(grammarAccess.getLoopAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group__5__Impl
+	rule__Loop__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getGroup_5()); }
+(rule__Loop__Group_5__0)?
+{ after(grammarAccess.getLoopAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group__6__Impl
+	rule__Loop__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getBodyKeyword_6()); }
+
+	'body' 
+
+{ after(grammarAccess.getLoopAccess().getBodyKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group__7__Impl
+	rule__Loop__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getBodyAssignment_7()); }
+(rule__Loop__BodyAssignment_7)
+{ after(grammarAccess.getLoopAccess().getBodyAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getLoopAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Loop__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group_4__0__Impl
+	rule__Loop__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getPredecessorKeyword_4_0()); }
+
+	'predecessor' 
+
+{ after(grammarAccess.getLoopAccess().getPredecessorKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getPredecessorAssignment_4_1()); }
+(rule__Loop__PredecessorAssignment_4_1)
+{ after(grammarAccess.getLoopAccess().getPredecessorAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Loop__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group_5__0__Impl
+	rule__Loop__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getSuccessorKeyword_5_0()); }
+
+	'successor' 
+
+{ after(grammarAccess.getLoopAccess().getSuccessorKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Loop__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getSuccessorAssignment_5_1()); }
+(rule__Loop__SuccessorAssignment_5_1)
+{ after(grammarAccess.getLoopAccess().getSuccessorAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Branch__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__0__Impl
+	rule__Branch__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getBranchKeyword_0()); }
+
+	'Branch' 
+
+{ after(grammarAccess.getBranchAccess().getBranchKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__1__Impl
+	rule__Branch__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__2__Impl
+	rule__Branch__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getGroup_2()); }
+(rule__Branch__Group_2__0)?
+{ after(grammarAccess.getBranchAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__3__Impl
+	rule__Branch__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getGroup_3()); }
+(rule__Branch__Group_3__0)?
+{ after(grammarAccess.getBranchAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__4__Impl
+	rule__Branch__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getGroup_4()); }
+(rule__Branch__Group_4__0)?
+{ after(grammarAccess.getBranchAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__5__Impl
+	rule__Branch__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getBranchesKeyword_5()); }
+
+	'branches' 
+
+{ after(grammarAccess.getBranchAccess().getBranchesKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__6__Impl
+	rule__Branch__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_6()); }
+
+	'{' 
+
+{ after(grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__7__Impl
+	rule__Branch__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getBranchesAssignment_7()); }
+(rule__Branch__BranchesAssignment_7)
+{ after(grammarAccess.getBranchAccess().getBranchesAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__8__Impl
+	rule__Branch__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getGroup_8()); }
+(rule__Branch__Group_8__0)*
+{ after(grammarAccess.getBranchAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__9__Impl
+	rule__Branch__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_10()); }
+
+	'}' 
+
+{ after(grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Branch__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group_2__0__Impl
+	rule__Branch__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getConditionKeyword_2_0()); }
+
+	'condition' 
+
+{ after(grammarAccess.getBranchAccess().getConditionKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getConditionAssignment_2_1()); }
+(rule__Branch__ConditionAssignment_2_1)
+{ after(grammarAccess.getBranchAccess().getConditionAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Branch__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group_3__0__Impl
+	rule__Branch__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getPredecessorKeyword_3_0()); }
+
+	'predecessor' 
+
+{ after(grammarAccess.getBranchAccess().getPredecessorKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getPredecessorAssignment_3_1()); }
+(rule__Branch__PredecessorAssignment_3_1)
+{ after(grammarAccess.getBranchAccess().getPredecessorAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Branch__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group_4__0__Impl
+	rule__Branch__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getSuccessorKeyword_4_0()); }
+
+	'successor' 
+
+{ after(grammarAccess.getBranchAccess().getSuccessorKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getSuccessorAssignment_4_1()); }
+(rule__Branch__SuccessorAssignment_4_1)
+{ after(grammarAccess.getBranchAccess().getSuccessorAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Branch__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group_8__0__Impl
+	rule__Branch__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getCommaKeyword_8_0()); }
+
+	',' 
+
+{ after(grammarAccess.getBranchAccess().getCommaKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Branch__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Branch__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getBranchesAssignment_8_1()); }
+(rule__Branch__BranchesAssignment_8_1)
+{ after(grammarAccess.getBranchAccess().getBranchesAssignment_8_1()); }
+)
+
+;
+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().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getActionReferenceAccess().getLeftCurlyBracketKeyword_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().getGroup_2()); }
+(rule__ActionReference__Group_2__0)?
+{ after(grammarAccess.getActionReferenceAccess().getGroup_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().getGroup_3()); }
+(rule__ActionReference__Group_3__0)?
+{ after(grammarAccess.getActionReferenceAccess().getGroup_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().getRefersToKeyword_4()); }
+
+	'refersTo' 
+
+{ after(grammarAccess.getActionReferenceAccess().getRefersToKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__5__Impl
+	rule__ActionReference__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToAssignment_5()); }
+(rule__ActionReference__RefersToAssignment_5)
+{ after(grammarAccess.getActionReferenceAccess().getRefersToAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getActionReferenceAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ActionReference__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_2__0__Impl
+	rule__ActionReference__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getPredecessorKeyword_2_0()); }
+
+	'predecessor' 
+
+{ after(grammarAccess.getActionReferenceAccess().getPredecessorKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getPredecessorAssignment_2_1()); }
+(rule__ActionReference__PredecessorAssignment_2_1)
+{ after(grammarAccess.getActionReferenceAccess().getPredecessorAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionReference__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_3__0__Impl
+	rule__ActionReference__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getSuccessorKeyword_3_0()); }
+
+	'successor' 
+
+{ after(grammarAccess.getActionReferenceAccess().getSuccessorKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReference__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReference__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getSuccessorAssignment_3_1()); }
+(rule__ActionReference__SuccessorAssignment_3_1)
+{ after(grammarAccess.getActionReferenceAccess().getSuccessorAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EInt__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EInt__Group__0__Impl
+	rule__EInt__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EInt__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EInt__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EInt__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EInt__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+{ after(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+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().getIdAssignment_1()); }
+(rule__ModelVariableConfigurationRange__IdAssignment_1)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_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().getMinValueKeyword_3()); }
+
+	'minValue' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_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().getMinValueAssignment_4()); }
+(rule__ModelVariableConfigurationRange__MinValueAssignment_4)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_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().getMaxValueKeyword_5()); }
+
+	'maxValue' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_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().getMaxValueAssignment_6()); }
+(rule__ModelVariableConfigurationRange__MaxValueAssignment_6)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_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().getAdaptableEntityKeyword_7()); }
+
+	'adaptableEntity' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_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().getAdaptableEntityAssignment_8()); }
+(rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelVariableConfigurationRange__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelVariableConfigurationRange__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+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().getIdAssignment_1()); }
+(rule__ModelEntityConfigurationRange__IdAssignment_1)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_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().getGroup_3()); }
+(rule__ModelEntityConfigurationRange__Group_3__0)?
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_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().getVariationPossibilityKeyword_4()); }
+
+	'variationPossibility' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_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().getVariationPossibilityAssignment_5()); }
+(rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ModelEntityConfigurationRange__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_3__0__Impl
+	rule__ModelEntityConfigurationRange__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityKeyword_3_0()); }
+
+	'entity' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_3__1__Impl
+	rule__ModelEntityConfigurationRange__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftParenthesisKeyword_3_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftParenthesisKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_3__2__Impl
+	rule__ModelEntityConfigurationRange__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_2()); }
+(rule__ModelEntityConfigurationRange__EntityAssignment_3_2)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_3__3__Impl
+	rule__ModelEntityConfigurationRange__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_3_3()); }
+(rule__ModelEntityConfigurationRange__Group_3_3__0)*
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightParenthesisKeyword_3_4()); }
+
+	')' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightParenthesisKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ModelEntityConfigurationRange__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_3_3__0__Impl
+	rule__ModelEntityConfigurationRange__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ModelEntityConfigurationRange__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ModelEntityConfigurationRange__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_3_1()); }
+(rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_3_1()); }
+)
+
+;
+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().getValueConstraintKeyword_2()); }
+
+	'valueConstraint' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_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().getValueConstraintAssignment_3()); }
+(rule__SetOfConfigurations__ValueConstraintAssignment_3)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_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().getGroup_4()); }
+(rule__SetOfConfigurations__Group_4__0)?
+{ after(grammarAccess.getSetOfConfigurationsAccess().getGroup_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_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_4__0__Impl
+	rule__SetOfConfigurations__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_4_0()); }
+
+	'variants' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_4__1__Impl
+	rule__SetOfConfigurations__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_4_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_4__2__Impl
+	rule__SetOfConfigurations__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_2()); }
+(rule__SetOfConfigurations__VariantsAssignment_4_2)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_4__3__Impl
+	rule__SetOfConfigurations__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getGroup_4_3()); }
+(rule__SetOfConfigurations__Group_4_3__0)*
+{ after(grammarAccess.getSetOfConfigurationsAccess().getGroup_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_4__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_4__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_4__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_4_4()); }
+
+	')' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_4_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SetOfConfigurations__Group_4_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_4_3__0__Impl
+	rule__SetOfConfigurations__Group_4_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_4_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_4_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_4_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SetOfConfigurations__Group_4_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SetOfConfigurations__Group_4_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__Group_4_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_3_1()); }
+(rule__SetOfConfigurations__VariantsAssignment_4_3_1)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_3_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().getEventAction_0()); }
+(
+
+)
+{ after(grammarAccess.getEventAccess().getEventAction_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().getEventKeyword_1()); }
+
+	'Event' 
+
+{ after(grammarAccess.getEventAccess().getEventKeyword_1()); }
+)
+
+;
+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().getWeightedTacticKeyword_0()); }
+
+	'WeightedTactic' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getWeightedTacticKeyword_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().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getLeftCurlyBracketKeyword_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().getCurrentWeightKeyword_2()); }
+
+	'currentWeight' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getCurrentWeightKeyword_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().getCurrentWeightAssignment_3()); }
+(rule__WeightedTactic__CurrentWeightAssignment_3)
+{ after(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_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().getDefaultWeightKeyword_4()); }
+
+	'defaultWeight' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getDefaultWeightKeyword_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().getDefaultWeightAssignment_5()); }
+(rule__WeightedTactic__DefaultWeightAssignment_5)
+{ after(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_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().getUsesKeyword_6()); }
+
+	'uses' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getUsesKeyword_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().getUsesAssignment_7()); }
+(rule__WeightedTactic__UsesAssignment_7)
+{ after(grammarAccess.getWeightedTacticAccess().getUsesAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightedTactic__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightedTactic__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getWeightedTacticAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+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().getWeightingFunctionKeyword_0()); }
+
+	'WeightingFunction' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionKeyword_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().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getLeftCurlyBracketKeyword_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().getFunctionKeyword_2()); }
+
+	'function' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getFunctionKeyword_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().getFunctionAssignment_3()); }
+(rule__WeightingFunction__FunctionAssignment_3)
+{ after(grammarAccess.getWeightingFunctionAccess().getFunctionAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WeightingFunction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WeightingFunction__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getWeightingFunctionAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__StaRepository__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getIdEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getStaRepositoryAccess().getIdEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getStaRepositoryAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__TacticsAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_7_0()); }
+	ruleTactic{ after(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__TacticsAssignment_8_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_8_1_0()); }
+	ruleTactic{ after(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_8_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__ActionsAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_12_0()); }
+	ruleAction{ after(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__ActionsAssignment_13_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_13_1_0()); }
+	ruleAction{ after(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_13_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__StrategiesAssignment_17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_17_0()); }
+	ruleStrategy{ after(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_17_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__StrategiesAssignment_18_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_18_1_0()); }
+	ruleStrategy{ after(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_18_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__ParametersAssignment_20_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_2_0()); }
+	ruleParameter{ after(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StaRepository__ParametersAssignment_20_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_3_1_0()); }
+	ruleParameter{ after(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__InputParamsAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_2_0()); }
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_5_2_0_1()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_5_2_0_1()); }
+)
+{ after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__InputParamsAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_3_1_0()); }
+(
+{ before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_5_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_5_3_1_0_1()); }
+)
+{ after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__OutputParamAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_6_1_0()); }
+(
+{ before(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_6_1_0_1()); }
+	ruleEString{ after(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_6_1_0_1()); }
+)
+{ after(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Tactic__ImplementedPlanAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_8_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getIdEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getIdEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__OutputParamAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_5_1_0()); }
+(
+{ before(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_5_1_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_5_1_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__InputParamsAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_2_0()); }
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_6_2_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_6_2_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__InputParamsAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_3_1_0()); }
+(
+{ before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_6_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_6_3_1_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Action__ReferredAdaptationPointAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_8_0()); }
+(
+{ before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__ObjectiveAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_6_0()); }
+(
+{ before(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_6_0_1()); }
+	ruleEString{ after(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_6_0_1()); }
+)
+{ after(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__TriggeringEventsAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_7_1_0()); }
+	ruleEvent{ after(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__TacticsAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_10_0()); }
+	ruleWeightedTactic{ after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__TacticsAssignment_11_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_11_1_0()); }
+	ruleWeightedTactic{ after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_11_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Strategy__WeightingFunctionAssignment_14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_14_0()); }
+	ruleWeightingFunction{ after(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_14_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Parameter__TypeAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__StepsAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_2_0()); }
+	ruleAbstractControlFlowElement{ after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AdaptationPlan__StepsAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_3_1_0()); }
+	ruleAbstractControlFlowElement{ after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__PredecessorAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); }
+(
+{ before(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); }
+)
+{ after(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Start__SuccessorAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__PredecessorAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); }
+(
+{ before(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); }
+)
+{ after(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Stop__SuccessorAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__CounterAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getCounterEIntParserRuleCall_3_0()); }
+	ruleEInt{ after(grammarAccess.getLoopAccess().getCounterEIntParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__PredecessorAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementCrossReference_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__SuccessorAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementCrossReference_5_1_0()); }
+(
+{ before(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_5_1_0_1()); }
+	ruleEString{ after(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_5_1_0_1()); }
+)
+{ after(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementCrossReference_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__BodyAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopAccess().getBodyAdaptationPlanParserRuleCall_7_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getLoopAccess().getBodyAdaptationPlanParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__ConditionAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getConditionEStringParserRuleCall_2_1_0()); }
+	ruleEString{ after(grammarAccess.getBranchAccess().getConditionEStringParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__PredecessorAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); }
+(
+{ before(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); }
+)
+{ after(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__SuccessorAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__BranchesAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_7_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Branch__BranchesAssignment_8_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_8_1_0()); }
+	ruleAdaptationPlan{ after(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_8_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__PredecessorAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementCrossReference_2_1_0()); }
+(
+{ before(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_2_1_0_1()); }
+	ruleEString{ after(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_2_1_0_1()); }
+)
+{ after(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementCrossReference_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__SuccessorAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementCrossReference_3_1_0()); }
+(
+{ before(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); }
+)
+{ after(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementCrossReference_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReference__RefersToAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_5_0()); }
+(
+{ before(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__MinValueAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_4_0()); }
+	ruleEDouble{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__MaxValueAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_6_0()); }
+	ruleEDouble{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_8_0()); }
+(
+{ before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__EntityAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_2_0()); }
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectEStringParserRuleCall_3_2_0_1()); }
+	ruleEString{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectEStringParserRuleCall_3_2_0_1()); }
+)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_3_1_0()); }
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectEStringParserRuleCall_3_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectEStringParserRuleCall_3_3_1_0_1()); }
+)
+{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_5_0()); }
+	ruleVariationType{ after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__MinValueConstraintAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintCrossReference_3_0()); }
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintEStringParserRuleCall_3_0_1()); }
+	ruleEString{ after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintEStringParserRuleCall_3_0_1()); }
+)
+{ after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintCrossReference_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyRange__MaxValueConstraintAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintCrossReference_5_0()); }
+(
+{ before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__ValueConstraintAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintCrossReference_3_0()); }
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintEStringParserRuleCall_3_0_1()); }
+	ruleEString{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintEStringParserRuleCall_3_0_1()); }
+)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintCrossReference_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__VariantsAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_2_0()); }
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectEStringParserRuleCall_4_2_0_1()); }
+	ruleEString{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectEStringParserRuleCall_4_2_0_1()); }
+)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SetOfConfigurations__VariantsAssignment_4_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_3_1_0()); }
+(
+{ before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectEStringParserRuleCall_4_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectEStringParserRuleCall_4_3_1_0_1()); }
+)
+{ after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__WeightedTactic__CurrentWeightAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_3_0()); }
+	ruleEDouble{ after(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__DefaultWeightAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_5_0()); }
+	ruleEDouble{ after(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightedTactic__UsesAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightedTacticAccess().getUsesTacticCrossReference_7_0()); }
+(
+{ before(grammarAccess.getWeightedTacticAccess().getUsesTacticEStringParserRuleCall_7_0_1()); }
+	ruleEString{ after(grammarAccess.getWeightedTacticAccess().getUsesTacticEStringParserRuleCall_7_0_1()); }
+)
+{ after(grammarAccess.getWeightedTacticAccess().getUsesTacticCrossReference_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WeightingFunction__FunctionAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWeightingFunctionAccess().getFunctionEStringParserRuleCall_3_0()); }
+	ruleEString{ after(grammarAccess.getWeightingFunctionAccess().getFunctionEStringParserRuleCall_3_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.tokens b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.tokens
new file mode 100644
index 0000000000000000000000000000000000000000..4b1f3d757a15368017194f9fca7187cd9bfdb654
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.tokens
@@ -0,0 +1,129 @@
+T__68=68
+T__69=69
+RULE_ID=5
+T__66=66
+T__67=67
+T__64=64
+T__29=29
+T__65=65
+T__28=28
+T__62=62
+T__27=27
+T__63=63
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=10
+T__21=21
+T__20=20
+T__61=61
+T__60=60
+T__55=55
+T__56=56
+T__19=19
+T__57=57
+T__58=58
+T__51=51
+T__16=16
+T__52=52
+T__15=15
+T__53=53
+T__18=18
+T__54=54
+T__17=17
+T__12=12
+T__11=11
+T__14=14
+T__13=13
+T__59=59
+RULE_INT=6
+T__50=50
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__47=47
+T__44=44
+T__45=45
+T__48=48
+T__49=49
+RULE_SL_COMMENT=8
+RULE_ML_COMMENT=7
+T__30=30
+T__31=31
+RULE_STRING=4
+T__32=32
+T__71=71
+T__33=33
+T__34=34
+T__35=35
+T__70=70
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+RULE_WS=9
+'counter'=43
+'type'=35
+'Event'=65
+'e'=12
+'AdaptationPlan'=36
+'weightingFunction'=32
+'maxValue'=53
+'uses'=69
+'minValueConstraint'=60
+'inputParams'=24
+'body'=44
+'function'=71
+'defaultWeight'=68
+'currentWeight'=67
+'.'=58
+'adaptableEntity'=54
+'SetOfConfigurations'=62
+'condition'=47
+'referredAdaptationPoint'=29
+'{'=14
+'Branch'=45
+'entity'=57
+'WeightingFunction'=70
+'('=25
+'-'=50
+'tactics'=16
+','=20
+'Stop'=41
+'Start'=38
+'implementedPlan'=23
+'ActionReference'=48
+'refersTo'=49
+'branches'=46
+'variationPossibility'=56
+'valueConstraint'=63
+'Loop'=42
+'ModelVariableConfigurationRange'=51
+'steps'=37
+'Tactic'=22
+'ModelEntityConfigurationRange'=55
+'successor'=40
+'Strategy'=30
+')'=26
+'strategies'=19
+'triggeringEvents'=33
+'StaRepository'=13
+'}'=17
+'parameters'=21
+'minValue'=52
+'objective'=31
+'actions'=18
+'maxValueConstraint'=61
+'predecessor'=39
+'WeightedTactic'=66
+'Parameter'=34
+'Action'=28
+'PropertyRange'=59
+'outputParam'=27
+'name'=15
+'E'=11
+'variants'=64
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguageLexer.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguageLexer.java
new file mode 100644
index 0000000000000000000000000000000000000000..5391840fe1334efea4c0fd8d18b9278437b20ae8
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguageLexer.java
@@ -0,0 +1,3272 @@
+package edu.kit.ipd.descartes.mm.adaptation.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 InternalStaAdaptationLanguageLexer extends Lexer {
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int RULE_ID=5;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__29=29;
+    public static final int T__64=64;
+    public static final int T__28=28;
+    public static final int T__65=65;
+    public static final int T__27=27;
+    public static final int T__62=62;
+    public static final int T__26=26;
+    public static final int T__63=63;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int T__61=61;
+    public static final int EOF=-1;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__16=16;
+    public static final int T__52=52;
+    public static final int T__15=15;
+    public static final int T__53=53;
+    public static final int T__18=18;
+    public static final int T__54=54;
+    public static final int T__17=17;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__59=59;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_STRING=4;
+    public static final int T__33=33;
+    public static final int T__71=71;
+    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__70=70;
+    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 InternalStaAdaptationLanguageLexer() {;} 
+    public InternalStaAdaptationLanguageLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalStaAdaptationLanguageLexer(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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:11:7: ( 'E' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:11:9: 'E'
+            {
+            match('E'); 
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:12:7: ( 'e' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:13:7: ( 'StaRepository' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:13:9: 'StaRepository'
+            {
+            match("StaRepository"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:14:7: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:15:7: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:15:9: 'name'
+            {
+            match("name"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:16:7: ( 'tactics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:16:9: 'tactics'
+            {
+            match("tactics"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:17:7: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:18:7: ( 'actions' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:18:9: 'actions'
+            {
+            match("actions"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:19:7: ( 'strategies' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:19:9: 'strategies'
+            {
+            match("strategies"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:20:7: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:20:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:21:7: ( 'parameters' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:21:9: 'parameters'
+            {
+            match("parameters"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:22:7: ( 'Tactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:22:9: 'Tactic'
+            {
+            match("Tactic"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:23:7: ( 'implementedPlan' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:23:9: 'implementedPlan'
+            {
+            match("implementedPlan"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:24:7: ( 'inputParams' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:24:9: 'inputParams'
+            {
+            match("inputParams"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:25:7: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:26:7: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:27:7: ( 'outputParam' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:27:9: 'outputParam'
+            {
+            match("outputParam"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:28:7: ( 'Action' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:28:9: 'Action'
+            {
+            match("Action"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:29:7: ( 'referredAdaptationPoint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:29:9: 'referredAdaptationPoint'
+            {
+            match("referredAdaptationPoint"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:30:7: ( 'Strategy' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:30:9: 'Strategy'
+            {
+            match("Strategy"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:31:7: ( 'objective' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:31:9: 'objective'
+            {
+            match("objective"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:32:7: ( 'weightingFunction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:32:9: 'weightingFunction'
+            {
+            match("weightingFunction"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:33:7: ( 'triggeringEvents' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:33:9: 'triggeringEvents'
+            {
+            match("triggeringEvents"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:34:7: ( 'Parameter' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:34:9: 'Parameter'
+            {
+            match("Parameter"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:35:7: ( 'type' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:35:9: 'type'
+            {
+            match("type"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:36:7: ( 'AdaptationPlan' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:36:9: 'AdaptationPlan'
+            {
+            match("AdaptationPlan"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:37:7: ( 'steps' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:37:9: 'steps'
+            {
+            match("steps"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:38:7: ( 'Start' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:38:9: 'Start'
+            {
+            match("Start"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:39:7: ( 'predecessor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:39:9: 'predecessor'
+            {
+            match("predecessor"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:40:7: ( 'successor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:40:9: 'successor'
+            {
+            match("successor"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:41:7: ( 'Stop' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:41:9: 'Stop'
+            {
+            match("Stop"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:42:7: ( 'Loop' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:42:9: 'Loop'
+            {
+            match("Loop"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:43:7: ( 'counter' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:43:9: 'counter'
+            {
+            match("counter"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:44:7: ( 'body' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:44:9: 'body'
+            {
+            match("body"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:45:7: ( 'Branch' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:45:9: 'Branch'
+            {
+            match("Branch"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:46:7: ( 'branches' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:46:9: 'branches'
+            {
+            match("branches"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:47:7: ( 'condition' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:47:9: 'condition'
+            {
+            match("condition"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:48:7: ( 'ActionReference' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:48:9: 'ActionReference'
+            {
+            match("ActionReference"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:49:7: ( 'refersTo' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:49:9: 'refersTo'
+            {
+            match("refersTo"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:50:7: ( '-' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:51:7: ( 'ModelVariableConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:51:9: 'ModelVariableConfigurationRange'
+            {
+            match("ModelVariableConfigurationRange"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:52:7: ( 'minValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:52:9: 'minValue'
+            {
+            match("minValue"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:53:7: ( 'maxValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:53:9: 'maxValue'
+            {
+            match("maxValue"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:54:7: ( 'adaptableEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:54:9: 'adaptableEntity'
+            {
+            match("adaptableEntity"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:55:7: ( 'ModelEntityConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:55:9: 'ModelEntityConfigurationRange'
+            {
+            match("ModelEntityConfigurationRange"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:56:7: ( 'variationPossibility' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:56:9: 'variationPossibility'
+            {
+            match("variationPossibility"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:57:7: ( 'entity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:57:9: 'entity'
+            {
+            match("entity"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:58:7: ( '.' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:58:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:59:7: ( 'PropertyRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:59:9: 'PropertyRange'
+            {
+            match("PropertyRange"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:60:7: ( 'minValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:60:9: 'minValueConstraint'
+            {
+            match("minValueConstraint"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:61:7: ( 'maxValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:61:9: 'maxValueConstraint'
+            {
+            match("maxValueConstraint"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:62:7: ( 'SetOfConfigurations' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:62:9: 'SetOfConfigurations'
+            {
+            match("SetOfConfigurations"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:63:7: ( 'valueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:63:9: 'valueConstraint'
+            {
+            match("valueConstraint"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:64:7: ( 'variants' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:64:9: 'variants'
+            {
+            match("variants"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:65:7: ( 'Event' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:65:9: 'Event'
+            {
+            match("Event"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:66:7: ( 'WeightedTactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:66:9: 'WeightedTactic'
+            {
+            match("WeightedTactic"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:67:7: ( 'currentWeight' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:67:9: 'currentWeight'
+            {
+            match("currentWeight"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:68:7: ( 'defaultWeight' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:68:9: 'defaultWeight'
+            {
+            match("defaultWeight"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:69:7: ( 'uses' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:69:9: 'uses'
+            {
+            match("uses"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:70:7: ( 'WeightingFunction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:70:9: 'WeightingFunction'
+            {
+            match("WeightingFunction"); 
+
+
+            }
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:71:7: ( 'function' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:71:9: 'function'
+            {
+            match("function"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__71"
+
+    // $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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9820: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9820: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9820: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9820: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9820: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9822:10: ( ( '0' .. '9' )+ )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9822:12: ( '0' .. '9' )+
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9822: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9822: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9826:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9826:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9826: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9826: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9828:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9828:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9828: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9828: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9828: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9828:41: ( '\\r' )? '\\n'
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9828: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9828: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9830:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9830:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9830: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9832:16: ( . )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9832: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=68;
+        alt12 = dfa12.predict(input);
+        switch (alt12) {
+            case 1 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1:376: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 63 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1:384: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 64 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1:393: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 65 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1:405: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 66 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1:421: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 67 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1:437: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 68 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1:445: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String DFA12_eotS =
+        "\1\uffff\1\53\1\56\1\54\1\uffff\2\54\1\uffff\2\54\1\uffff\3\54\2"+
+        "\uffff\11\54\1\uffff\3\54\1\uffff\4\54\1\51\2\uffff\3\51\2\uffff"+
+        "\1\54\2\uffff\1\54\1\uffff\2\54\1\uffff\4\54\1\uffff\4\54\1\uffff"+
+        "\5\54\2\uffff\16\54\1\uffff\4\54\1\uffff\4\54\5\uffff\61\54\1\u00be"+
+        "\1\54\1\u00c0\2\54\1\u00c3\22\54\1\u00d6\3\54\1\u00da\11\54\1\u00e4"+
+        "\1\54\1\u00e6\2\54\1\u00e9\1\54\1\uffff\1\54\1\uffff\2\54\1\uffff"+
+        "\3\54\1\u00f1\16\54\1\uffff\3\54\1\uffff\11\54\1\uffff\1\54\1\uffff"+
+        "\1\u0110\1\54\1\uffff\7\54\1\uffff\3\54\1\u011c\4\54\1\u0122\12"+
+        "\54\1\u012d\12\54\1\uffff\3\54\1\u013c\1\54\1\u013e\5\54\1\uffff"+
+        "\5\54\1\uffff\6\54\1\u014f\3\54\1\uffff\14\54\1\u015f\1\54\1\uffff"+
+        "\1\54\1\uffff\14\54\1\u016e\3\54\1\uffff\2\54\1\u0174\2\54\1\u0178"+
+        "\1\u017a\1\54\1\u017c\4\54\1\u0181\1\54\1\uffff\4\54\1\u0187\5\54"+
+        "\1\u018d\3\54\1\uffff\1\54\1\u0192\1\54\1\u0194\1\54\1\uffff\3\54"+
+        "\1\uffff\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\4\54\1\u01a3\1\uffff"+
+        "\1\u01a4\4\54\1\uffff\4\54\1\uffff\1\54\1\uffff\16\54\2\uffff\1"+
+        "\u01bc\1\54\1\u01be\1\u01bf\23\54\1\uffff\1\54\2\uffff\17\54\1\u01e3"+
+        "\10\54\1\u01ec\1\u01ed\10\54\1\u01f6\1\uffff\5\54\1\u01fc\2\54\2"+
+        "\uffff\6\54\1\u0205\1\54\1\uffff\2\54\1\u0209\1\u020a\1\u020b\1"+
+        "\uffff\7\54\1\u0213\1\uffff\2\54\1\u0216\3\uffff\7\54\1\uffff\2"+
+        "\54\1\uffff\1\54\1\u0221\5\54\1\u0227\2\54\1\uffff\2\54\1\u022c"+
+        "\1\u022d\1\54\1\uffff\1\u022f\3\54\2\uffff\1\54\1\uffff\3\54\1\u0237"+
+        "\3\54\1\uffff\3\54\1\u023e\2\54\1\uffff\13\54\1\u024c\1\54\1\uffff"+
+        "\1\u024e\1\uffff";
+    static final String DFA12_eofS =
+        "\u024f\uffff";
+    static final String DFA12_minS =
+        "\1\0\2\60\1\145\1\uffff\2\141\1\uffff\1\143\1\164\1\uffff\2\141"+
+        "\1\155\2\uffff\1\142\1\143\2\145\1\141\3\157\1\162\1\uffff\1\157"+
+        "\2\141\1\uffff\2\145\1\163\1\165\1\101\2\uffff\2\0\1\52\2\uffff"+
+        "\1\145\2\uffff\1\164\1\uffff\1\141\1\164\1\uffff\1\155\1\143\1\151"+
+        "\1\160\1\uffff\1\164\1\141\1\145\1\143\1\uffff\1\162\1\145\1\143"+
+        "\2\160\2\uffff\1\164\1\152\1\164\1\141\1\146\1\151\1\162\2\157\1"+
+        "\156\1\162\1\144\2\141\1\uffff\1\144\1\156\1\170\1\154\1\uffff\1"+
+        "\151\1\146\1\145\1\156\5\uffff\1\156\1\151\1\122\1\141\1\160\1\117"+
+        "\1\145\1\164\1\147\1\145\1\151\1\160\1\141\1\160\1\143\1\141\1\144"+
+        "\1\164\1\154\1\165\1\160\1\145\1\151\1\160\1\145\1\147\1\141\2\160"+
+        "\1\156\1\144\1\162\1\171\2\156\1\145\2\126\1\151\1\165\1\147\1\141"+
+        "\1\163\1\143\2\164\1\145\2\164\1\60\1\146\1\60\1\151\1\147\1\60"+
+        "\1\157\2\164\1\163\1\145\1\155\1\145\1\151\1\145\1\164\1\165\1\143"+
+        "\1\157\1\164\1\162\1\150\1\155\1\145\1\60\1\164\1\151\1\145\1\60"+
+        "\2\143\1\154\3\141\1\145\1\150\1\165\1\60\1\164\1\60\1\171\1\160"+
+        "\1\60\1\145\1\uffff\1\103\1\uffff\1\143\1\145\1\uffff\1\156\1\141"+
+        "\1\145\1\60\1\163\1\145\2\143\1\155\1\120\2\164\1\156\1\141\1\162"+
+        "\1\164\1\145\1\162\1\uffff\1\145\1\164\1\156\1\uffff\2\150\1\105"+
+        "\2\154\1\156\1\103\1\164\1\154\1\uffff\1\151\1\uffff\1\60\1\157"+
+        "\1\uffff\1\147\1\157\1\163\1\162\1\163\1\142\1\147\1\uffff\1\163"+
+        "\1\164\1\145\1\60\1\145\1\141\1\120\1\151\1\60\1\164\1\145\1\124"+
+        "\1\151\2\164\1\162\1\151\1\164\1\145\1\60\1\141\1\156\2\165\1\151"+
+        "\1\164\1\157\1\145\1\164\1\157\1\uffff\1\163\1\171\1\156\1\60\1"+
+        "\151\1\60\1\154\1\151\1\157\1\145\1\163\1\uffff\1\156\1\162\1\141"+
+        "\1\166\1\145\1\uffff\1\151\1\144\1\157\1\156\1\145\1\171\1\60\1"+
+        "\157\1\127\1\163\1\uffff\1\162\1\164\2\145\1\157\1\163\1\156\1\144"+
+        "\1\156\1\127\1\156\1\151\1\60\1\146\1\uffff\1\156\1\uffff\2\145"+
+        "\2\162\1\163\1\164\1\141\1\162\1\145\1\146\1\157\1\101\1\60\1\147"+
+        "\1\162\1\122\1\uffff\1\156\1\145\1\60\2\151\2\60\1\156\1\60\1\163"+
+        "\1\124\1\147\1\145\1\60\1\164\1\uffff\1\151\1\147\1\105\1\163\1"+
+        "\60\1\163\1\157\1\145\1\155\1\141\1\60\1\145\1\156\1\144\1\uffff"+
+        "\1\106\1\60\1\141\1\60\1\151\1\uffff\1\141\1\164\1\157\1\uffff\1"+
+        "\157\1\uffff\1\120\1\uffff\1\164\1\141\1\106\1\151\1\uffff\1\157"+
+        "\1\147\1\105\1\156\1\60\1\uffff\1\60\1\162\1\144\1\163\1\155\1\uffff"+
+        "\1\162\1\120\1\141\1\165\1\uffff\1\156\1\uffff\1\147\1\142\1\171"+
+        "\2\156\1\157\1\162\1\143\1\165\1\147\1\162\1\165\1\166\1\164\2\uffff"+
+        "\1\60\1\120\2\60\1\145\1\154\1\160\1\156\1\147\1\150\1\154\1\103"+
+        "\3\163\1\141\1\164\1\156\1\150\1\171\1\162\1\145\1\151\1\uffff\1"+
+        "\154\2\uffff\1\156\1\141\1\164\1\143\1\145\1\164\1\145\1\157\2\164"+
+        "\1\163\2\151\1\143\1\164\1\60\1\141\1\156\1\164\1\141\1\143\1\156"+
+        "\1\141\1\164\2\60\1\103\1\156\2\162\1\151\1\156\1\143\1\164\1\60"+
+        "\1\uffff\2\164\1\171\1\156\1\145\1\60\1\164\1\151\2\uffff\1\157"+
+        "\1\146\2\141\1\142\1\164\1\60\1\151\1\uffff\1\151\1\163\3\60\1\uffff"+
+        "\1\151\1\157\1\156\4\151\1\60\1\uffff\2\157\1\60\3\uffff\1\157\1"+
+        "\156\1\146\1\147\2\156\1\154\1\uffff\2\156\1\uffff\1\156\1\60\1"+
+        "\151\1\165\2\164\1\151\1\60\1\163\1\120\1\uffff\1\147\1\162\2\60"+
+        "\1\164\1\uffff\1\60\1\157\1\165\1\141\2\uffff\1\171\1\uffff\1\151"+
+        "\1\162\1\164\1\60\1\156\1\141\1\151\1\uffff\2\164\1\157\1\60\1\151"+
+        "\1\156\1\uffff\1\157\1\122\1\156\1\141\1\122\1\156\1\141\1\147\1"+
+        "\156\1\145\1\147\1\60\1\145\1\uffff\1\60\1\uffff";
+    static final String DFA12_maxS =
+        "\1\uffff\2\172\1\164\1\uffff\1\141\1\171\1\uffff\1\144\1\165\1\uffff"+
+        "\1\162\1\141\1\156\2\uffff\1\165\1\144\2\145\1\162\1\157\1\165\2"+
+        "\162\1\uffff\1\157\1\151\1\141\1\uffff\2\145\1\163\1\165\1\172\2"+
+        "\uffff\2\uffff\1\57\2\uffff\1\145\2\uffff\1\164\1\uffff\1\162\1"+
+        "\164\1\uffff\1\155\1\143\1\151\1\160\1\uffff\1\164\1\141\1\162\1"+
+        "\143\1\uffff\1\162\1\145\1\143\2\160\2\uffff\1\164\1\152\1\164\1"+
+        "\141\1\146\1\151\1\162\2\157\1\165\1\162\1\144\2\141\1\uffff\1\144"+
+        "\1\156\1\170\1\162\1\uffff\1\151\1\146\1\145\1\156\5\uffff\1\156"+
+        "\1\151\1\162\1\141\1\160\1\117\1\145\1\164\1\147\1\145\1\151\1\160"+
+        "\1\141\1\160\1\143\1\141\1\144\1\164\1\154\1\165\1\160\1\145\1\151"+
+        "\1\160\1\145\1\147\1\141\2\160\1\156\1\144\1\162\1\171\2\156\1\145"+
+        "\2\126\1\151\1\165\1\147\1\141\1\163\1\143\2\164\1\145\2\164\1\172"+
+        "\1\146\1\172\1\151\1\147\1\172\1\157\2\164\1\163\1\145\1\155\1\145"+
+        "\1\151\1\145\1\164\1\165\1\143\1\157\1\164\1\162\1\150\1\155\1\145"+
+        "\1\172\1\164\1\151\1\145\1\172\2\143\1\154\3\141\1\145\1\150\1\165"+
+        "\1\172\1\164\1\172\1\171\1\160\1\172\1\145\1\uffff\1\103\1\uffff"+
+        "\1\143\1\145\1\uffff\1\156\1\141\1\145\1\172\1\163\1\145\2\143\1"+
+        "\155\1\120\2\164\1\156\1\141\1\163\1\164\1\145\1\162\1\uffff\1\145"+
+        "\1\164\1\156\1\uffff\2\150\1\126\2\154\1\164\1\103\1\164\1\154\1"+
+        "\uffff\1\151\1\uffff\1\172\1\157\1\uffff\1\147\1\157\1\163\1\162"+
+        "\1\163\1\142\1\147\1\uffff\1\163\1\164\1\145\1\172\1\145\1\141\1"+
+        "\120\1\151\1\172\1\164\1\145\1\124\1\151\2\164\1\162\1\151\1\164"+
+        "\1\145\1\172\1\141\1\156\2\165\1\151\1\164\1\157\1\151\1\164\1\157"+
+        "\1\uffff\1\163\1\171\1\156\1\172\1\151\1\172\1\154\1\151\1\157\1"+
+        "\145\1\163\1\uffff\1\156\1\162\1\141\1\166\1\145\1\uffff\1\151\1"+
+        "\144\1\157\1\156\1\145\1\171\1\172\1\157\1\127\1\163\1\uffff\1\162"+
+        "\1\164\2\145\1\157\1\163\1\156\1\144\1\156\1\127\1\156\1\151\1\172"+
+        "\1\146\1\uffff\1\156\1\uffff\2\145\2\162\1\163\1\164\1\141\1\162"+
+        "\1\145\1\146\1\157\1\101\1\172\1\147\1\162\1\122\1\uffff\1\156\1"+
+        "\145\1\172\2\151\2\172\1\156\1\172\1\163\1\124\1\147\1\145\1\172"+
+        "\1\164\1\uffff\1\151\1\147\1\105\1\163\1\172\1\163\1\157\1\145\1"+
+        "\155\1\141\1\172\1\145\1\156\1\144\1\uffff\1\106\1\172\1\141\1\172"+
+        "\1\151\1\uffff\1\141\1\164\1\157\1\uffff\1\157\1\uffff\1\120\1\uffff"+
+        "\1\164\1\141\1\106\1\151\1\uffff\1\157\1\147\1\105\1\156\1\172\1"+
+        "\uffff\1\172\1\162\1\144\1\163\1\155\1\uffff\1\162\1\120\1\141\1"+
+        "\165\1\uffff\1\156\1\uffff\1\147\1\142\1\171\2\156\1\157\1\162\1"+
+        "\143\1\165\1\147\1\162\1\165\1\166\1\164\2\uffff\1\172\1\120\2\172"+
+        "\1\145\1\154\1\160\1\156\1\147\1\150\1\154\1\103\3\163\1\141\1\164"+
+        "\1\156\1\150\1\171\1\162\1\145\1\151\1\uffff\1\154\2\uffff\1\156"+
+        "\1\141\1\164\1\143\1\145\1\164\1\145\1\157\2\164\1\163\2\151\1\143"+
+        "\1\164\1\172\1\141\1\156\1\164\1\141\1\143\1\156\1\141\1\164\2\172"+
+        "\1\103\1\156\2\162\1\151\1\156\1\143\1\164\1\172\1\uffff\2\164\1"+
+        "\171\1\156\1\145\1\172\1\164\1\151\2\uffff\1\157\1\146\2\141\1\142"+
+        "\1\164\1\172\1\151\1\uffff\1\151\1\163\3\172\1\uffff\1\151\1\157"+
+        "\1\156\4\151\1\172\1\uffff\2\157\1\172\3\uffff\1\157\1\156\1\146"+
+        "\1\147\2\156\1\154\1\uffff\2\156\1\uffff\1\156\1\172\1\151\1\165"+
+        "\2\164\1\151\1\172\1\163\1\120\1\uffff\1\147\1\162\2\172\1\164\1"+
+        "\uffff\1\172\1\157\1\165\1\141\2\uffff\1\171\1\uffff\1\151\1\162"+
+        "\1\164\1\172\1\156\1\141\1\151\1\uffff\2\164\1\157\1\172\1\151\1"+
+        "\156\1\uffff\1\157\1\122\1\156\1\141\1\122\1\156\1\141\1\147\1\156"+
+        "\1\145\1\147\1\172\1\145\1\uffff\1\172\1\uffff";
+    static final String DFA12_acceptS =
+        "\4\uffff\1\4\2\uffff\1\7\2\uffff\1\12\3\uffff\1\17\1\20\11\uffff"+
+        "\1\50\3\uffff\1\60\5\uffff\1\76\1\77\3\uffff\1\103\1\104\1\uffff"+
+        "\1\1\1\76\1\uffff\1\2\2\uffff\1\4\4\uffff\1\7\4\uffff\1\12\5\uffff"+
+        "\1\17\1\20\16\uffff\1\50\4\uffff\1\60\4\uffff\1\77\1\100\1\101\1"+
+        "\102\1\103\136\uffff\1\37\1\uffff\1\5\2\uffff\1\31\22\uffff\1\40"+
+        "\3\uffff\1\42\11\uffff\1\73\1\uffff\1\67\2\uffff\1\34\7\uffff\1"+
+        "\33\36\uffff\1\57\13\uffff\1\14\5\uffff\1\22\12\uffff\1\43\16\uffff"+
+        "\1\6\1\uffff\1\10\20\uffff\1\41\17\uffff\1\24\16\uffff\1\47\5\uffff"+
+        "\1\44\3\uffff\1\52\1\uffff\1\53\1\uffff\1\66\4\uffff\1\75\5\uffff"+
+        "\1\36\5\uffff\1\25\4\uffff\1\30\1\uffff\1\45\16\uffff\1\11\1\13"+
+        "\27\uffff\1\35\1\uffff\1\16\1\21\43\uffff\1\3\10\uffff\1\61\1\71"+
+        "\10\uffff\1\72\5\uffff\1\32\10\uffff\1\70\3\uffff\1\54\1\15\1\46"+
+        "\7\uffff\1\65\2\uffff\1\27\12\uffff\1\26\5\uffff\1\74\4\uffff\1"+
+        "\62\1\63\1\uffff\1\64\7\uffff\1\56\6\uffff\1\23\15\uffff\1\55\1"+
+        "\uffff\1\51";
+    static final String DFA12_specialS =
+        "\1\0\44\uffff\1\2\1\1\u0228\uffff}>";
+    static final String[] DFA12_transitionS = {
+            "\11\51\2\50\2\51\1\50\22\51\1\50\1\51\1\45\4\51\1\46\1\16\1"+
+            "\17\2\51\1\12\1\31\1\35\1\47\12\44\7\51\1\21\1\30\2\43\1\1\6"+
+            "\43\1\25\1\32\2\43\1\24\2\43\1\3\1\14\2\43\1\36\3\43\3\51\1"+
+            "\42\1\43\1\51\1\10\1\27\1\26\1\37\1\2\1\41\2\43\1\15\3\43\1"+
+            "\33\1\5\1\20\1\13\1\43\1\22\1\11\1\6\1\40\1\34\1\23\3\43\1\4"+
+            "\1\51\1\7\uff82\51",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\25\54\1\52\4\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\15\54\1\55\14\54",
+            "\1\60\16\uffff\1\57",
+            "",
+            "\1\62",
+            "\1\63\20\uffff\1\64\6\uffff\1\65",
+            "",
+            "\1\67\1\70",
+            "\1\71\1\72",
+            "",
+            "\1\74\20\uffff\1\75",
+            "\1\76",
+            "\1\77\1\100",
+            "",
+            "",
+            "\1\104\22\uffff\1\103",
+            "\1\105\1\106",
+            "\1\107",
+            "\1\110",
+            "\1\111\20\uffff\1\112",
+            "\1\113",
+            "\1\114\5\uffff\1\115",
+            "\1\116\2\uffff\1\117",
+            "\1\120",
+            "",
+            "\1\122",
+            "\1\124\7\uffff\1\123",
+            "\1\125",
+            "",
+            "\1\127",
+            "\1\130",
+            "\1\131",
+            "\1\132",
+            "\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "",
+            "\0\134",
+            "\0\134",
+            "\1\135\4\uffff\1\136",
+            "",
+            "",
+            "\1\140",
+            "",
+            "",
+            "\1\141",
+            "",
+            "\1\142\15\uffff\1\144\2\uffff\1\143",
+            "\1\145",
+            "",
+            "\1\146",
+            "\1\147",
+            "\1\150",
+            "\1\151",
+            "",
+            "\1\152",
+            "\1\153",
+            "\1\155\14\uffff\1\154",
+            "\1\156",
+            "",
+            "\1\157",
+            "\1\160",
+            "\1\161",
+            "\1\162",
+            "\1\163",
+            "",
+            "",
+            "\1\164",
+            "\1\165",
+            "\1\166",
+            "\1\167",
+            "\1\170",
+            "\1\171",
+            "\1\172",
+            "\1\173",
+            "\1\174",
+            "\1\176\6\uffff\1\175",
+            "\1\177",
+            "\1\u0080",
+            "\1\u0081",
+            "\1\u0082",
+            "",
+            "\1\u0083",
+            "\1\u0084",
+            "\1\u0085",
+            "\1\u0087\5\uffff\1\u0086",
+            "",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a",
+            "\1\u008b",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u008c",
+            "\1\u008d",
+            "\1\u008e\37\uffff\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",
+            "\1\u00a7",
+            "\1\u00a8",
+            "\1\u00a9",
+            "\1\u00aa",
+            "\1\u00ab",
+            "\1\u00ac",
+            "\1\u00ad",
+            "\1\u00ae",
+            "\1\u00af",
+            "\1\u00b0",
+            "\1\u00b1",
+            "\1\u00b2",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9",
+            "\1\u00ba",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00bf",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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",
+            "\1\u00d3",
+            "\1\u00d4",
+            "\1\u00d5",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00db",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00e5",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00e7",
+            "\1\u00e8",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00ea",
+            "",
+            "\1\u00eb",
+            "",
+            "\1\u00ec",
+            "\1\u00ed",
+            "",
+            "\1\u00ee",
+            "\1\u00ef",
+            "\1\u00f0",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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\u0107\20\uffff\1\u0106",
+            "\1\u0108",
+            "\1\u0109",
+            "\1\u010b\5\uffff\1\u010a",
+            "\1\u010c",
+            "\1\u010d",
+            "\1\u010e",
+            "",
+            "\1\u010f",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0111",
+            "",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "\1\u0117",
+            "\1\u0118",
+            "",
+            "\1\u0119",
+            "\1\u011a",
+            "\1\u011b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u011d",
+            "\1\u011e",
+            "\1\u011f",
+            "\1\u0120",
+            "\12\54\7\uffff\21\54\1\u0121\10\54\4\uffff\1\54\1\uffff\32"+
+            "\54",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u012e",
+            "\1\u012f",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132",
+            "\1\u0133",
+            "\1\u0134",
+            "\1\u0135\3\uffff\1\u0136",
+            "\1\u0137",
+            "\1\u0138",
+            "",
+            "\1\u0139",
+            "\1\u013a",
+            "\1\u013b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u013d",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u013f",
+            "\1\u0140",
+            "\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\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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\u016d",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u016f",
+            "\1\u0170",
+            "\1\u0171",
+            "",
+            "\1\u0172",
+            "\1\u0173",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0175",
+            "\1\u0176",
+            "\12\54\7\uffff\2\54\1\u0177\27\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\2\54\1\u0179\27\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u017b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u017d",
+            "\1\u017e",
+            "\1\u017f",
+            "\1\u0180",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0182",
+            "",
+            "\1\u0183",
+            "\1\u0184",
+            "\1\u0185",
+            "\1\u0186",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0188",
+            "\1\u0189",
+            "\1\u018a",
+            "\1\u018b",
+            "\1\u018c",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u018e",
+            "\1\u018f",
+            "\1\u0190",
+            "",
+            "\1\u0191",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0193",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0195",
+            "",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "",
+            "\1\u0199",
+            "",
+            "\1\u019a",
+            "",
+            "\1\u019b",
+            "\1\u019c",
+            "\1\u019d",
+            "\1\u019e",
+            "",
+            "\1\u019f",
+            "\1\u01a0",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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",
+            "\1\u01bb",
+            "",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01bd",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01c0",
+            "\1\u01c1",
+            "\1\u01c2",
+            "\1\u01c3",
+            "\1\u01c4",
+            "\1\u01c5",
+            "\1\u01c6",
+            "\1\u01c7",
+            "\1\u01c8",
+            "\1\u01c9",
+            "\1\u01ca",
+            "\1\u01cb",
+            "\1\u01cc",
+            "\1\u01cd",
+            "\1\u01ce",
+            "\1\u01cf",
+            "\1\u01d0",
+            "\1\u01d1",
+            "\1\u01d2",
+            "",
+            "\1\u01d3",
+            "",
+            "",
+            "\1\u01d4",
+            "\1\u01d5",
+            "\1\u01d6",
+            "\1\u01d7",
+            "\1\u01d8",
+            "\1\u01d9",
+            "\1\u01da",
+            "\1\u01db",
+            "\1\u01dc",
+            "\1\u01dd",
+            "\1\u01de",
+            "\1\u01df",
+            "\1\u01e0",
+            "\1\u01e1",
+            "\1\u01e2",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01e4",
+            "\1\u01e5",
+            "\1\u01e6",
+            "\1\u01e7",
+            "\1\u01e8",
+            "\1\u01e9",
+            "\1\u01ea",
+            "\1\u01eb",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01ee",
+            "\1\u01ef",
+            "\1\u01f0",
+            "\1\u01f1",
+            "\1\u01f2",
+            "\1\u01f3",
+            "\1\u01f4",
+            "\1\u01f5",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "\1\u01f7",
+            "\1\u01f8",
+            "\1\u01f9",
+            "\1\u01fa",
+            "\1\u01fb",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01fd",
+            "\1\u01fe",
+            "",
+            "",
+            "\1\u01ff",
+            "\1\u0200",
+            "\1\u0201",
+            "\1\u0202",
+            "\1\u0203",
+            "\1\u0204",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0206",
+            "",
+            "\1\u0207",
+            "\1\u0208",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "\1\u020c",
+            "\1\u020d",
+            "\1\u020e",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\u0211",
+            "\1\u0212",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "\1\u0214",
+            "\1\u0215",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "",
+            "",
+            "\1\u0217",
+            "\1\u0218",
+            "\1\u0219",
+            "\1\u021a",
+            "\1\u021b",
+            "\1\u021c",
+            "\1\u021d",
+            "",
+            "\1\u021e",
+            "\1\u021f",
+            "",
+            "\1\u0220",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0222",
+            "\1\u0223",
+            "\1\u0224",
+            "\1\u0225",
+            "\1\u0226",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0228",
+            "\1\u0229",
+            "",
+            "\1\u022a",
+            "\1\u022b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u022e",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0230",
+            "\1\u0231",
+            "\1\u0232",
+            "",
+            "",
+            "\1\u0233",
+            "",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\u0236",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0238",
+            "\1\u0239",
+            "\1\u023a",
+            "",
+            "\1\u023b",
+            "\1\u023c",
+            "\1\u023d",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u023f",
+            "\1\u0240",
+            "",
+            "\1\u0241",
+            "\1\u0242",
+            "\1\u0243",
+            "\1\u0244",
+            "\1\u0245",
+            "\1\u0246",
+            "\1\u0247",
+            "\1\u0248",
+            "\1\u0249",
+            "\1\u024a",
+            "\1\u024b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u024d",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            ""
+    };
+
+    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 | 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=='S') ) {s = 3;}
+
+                        else if ( (LA12_0=='{') ) {s = 4;}
+
+                        else if ( (LA12_0=='n') ) {s = 5;}
+
+                        else if ( (LA12_0=='t') ) {s = 6;}
+
+                        else if ( (LA12_0=='}') ) {s = 7;}
+
+                        else if ( (LA12_0=='a') ) {s = 8;}
+
+                        else if ( (LA12_0=='s') ) {s = 9;}
+
+                        else if ( (LA12_0==',') ) {s = 10;}
+
+                        else if ( (LA12_0=='p') ) {s = 11;}
+
+                        else if ( (LA12_0=='T') ) {s = 12;}
+
+                        else if ( (LA12_0=='i') ) {s = 13;}
+
+                        else if ( (LA12_0=='(') ) {s = 14;}
+
+                        else if ( (LA12_0==')') ) {s = 15;}
+
+                        else if ( (LA12_0=='o') ) {s = 16;}
+
+                        else if ( (LA12_0=='A') ) {s = 17;}
+
+                        else if ( (LA12_0=='r') ) {s = 18;}
+
+                        else if ( (LA12_0=='w') ) {s = 19;}
+
+                        else if ( (LA12_0=='P') ) {s = 20;}
+
+                        else if ( (LA12_0=='L') ) {s = 21;}
+
+                        else if ( (LA12_0=='c') ) {s = 22;}
+
+                        else if ( (LA12_0=='b') ) {s = 23;}
+
+                        else if ( (LA12_0=='B') ) {s = 24;}
+
+                        else if ( (LA12_0=='-') ) {s = 25;}
+
+                        else if ( (LA12_0=='M') ) {s = 26;}
+
+                        else if ( (LA12_0=='m') ) {s = 27;}
+
+                        else if ( (LA12_0=='v') ) {s = 28;}
+
+                        else if ( (LA12_0=='.') ) {s = 29;}
+
+                        else if ( (LA12_0=='W') ) {s = 30;}
+
+                        else if ( (LA12_0=='d') ) {s = 31;}
+
+                        else if ( (LA12_0=='u') ) {s = 32;}
+
+                        else if ( (LA12_0=='f') ) {s = 33;}
+
+                        else if ( (LA12_0=='^') ) {s = 34;}
+
+                        else if ( ((LA12_0>='C' && LA12_0<='D')||(LA12_0>='F' && LA12_0<='K')||(LA12_0>='N' && LA12_0<='O')||(LA12_0>='Q' && LA12_0<='R')||(LA12_0>='U' && LA12_0<='V')||(LA12_0>='X' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='l')||LA12_0=='q'||(LA12_0>='x' && LA12_0<='z')) ) {s = 35;}
+
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 36;}
+
+                        else if ( (LA12_0=='\"') ) {s = 37;}
+
+                        else if ( (LA12_0=='\'') ) {s = 38;}
+
+                        else if ( (LA12_0=='/') ) {s = 39;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 40;}
+
+                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='*' && LA12_0<='+')||(LA12_0>=':' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 41;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA12_38 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_38>='\u0000' && LA12_38<='\uFFFF')) ) {s = 92;}
+
+                        else s = 41;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_37 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_37>='\u0000' && LA12_37<='\uFFFF')) ) {s = 92;}
+
+                        else s = 41;
+
+                        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguageParser.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguageParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..4c570fa46e764eec5985af469be6394889e8284c
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguageParser.java
@@ -0,0 +1,25830 @@
+package edu.kit.ipd.descartes.mm.adaptation.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.services.StaAdaptationLanguageGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStaAdaptationLanguageParser 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", "'E'", "'e'", "'StaRepository'", "'{'", "'name'", "'tactics'", "'}'", "'actions'", "'strategies'", "','", "'parameters'", "'Tactic'", "'implementedPlan'", "'inputParams'", "'('", "')'", "'outputParam'", "'Action'", "'referredAdaptationPoint'", "'Strategy'", "'objective'", "'weightingFunction'", "'triggeringEvents'", "'Parameter'", "'type'", "'AdaptationPlan'", "'steps'", "'Start'", "'predecessor'", "'successor'", "'Stop'", "'Loop'", "'counter'", "'body'", "'Branch'", "'branches'", "'condition'", "'ActionReference'", "'refersTo'", "'-'", "'ModelVariableConfigurationRange'", "'minValue'", "'maxValue'", "'adaptableEntity'", "'ModelEntityConfigurationRange'", "'variationPossibility'", "'entity'", "'.'", "'PropertyRange'", "'minValueConstraint'", "'maxValueConstraint'", "'SetOfConfigurations'", "'valueConstraint'", "'variants'", "'Event'", "'WeightedTactic'", "'currentWeight'", "'defaultWeight'", "'uses'", "'WeightingFunction'", "'function'"
+    };
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int RULE_ID=5;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__29=29;
+    public static final int T__65=65;
+    public static final int T__28=28;
+    public static final int T__62=62;
+    public static final int T__27=27;
+    public static final int T__63=63;
+    public static final int T__26=26;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int EOF=-1;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__16=16;
+    public static final int T__52=52;
+    public static final int T__15=15;
+    public static final int T__53=53;
+    public static final int T__18=18;
+    public static final int T__54=54;
+    public static final int T__17=17;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__59=59;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int RULE_STRING=4;
+    public static final int T__32=32;
+    public static final int T__71=71;
+    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__70=70;
+    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 InternalStaAdaptationLanguageParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalStaAdaptationLanguageParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalStaAdaptationLanguageParser.tokenNames; }
+    public String getGrammarFileName() { return "../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g"; }
+
+
+     
+     	private StaAdaptationLanguageGrammarAccess grammarAccess;
+     	
+        public void setGrammarAccess(StaAdaptationLanguageGrammarAccess grammarAccess) {
+        	this.grammarAccess = grammarAccess;
+        }
+        
+        @Override
+        protected Grammar getGrammar() {
+        	return grammarAccess.getGrammar();
+        }
+        
+        @Override
+        protected String getValueForTokenName(String tokenName) {
+        	return tokenName;
+        }
+
+
+
+
+    // $ANTLR start "entryRuleStaRepository"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:60:1: entryRuleStaRepository : ruleStaRepository EOF ;
+    public final void entryRuleStaRepository() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:61:1: ( ruleStaRepository EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:62:1: ruleStaRepository EOF
+            {
+             before(grammarAccess.getStaRepositoryRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStaRepository_in_entryRuleStaRepository61);
+            ruleStaRepository();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStaRepository68); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStaRepository"
+
+
+    // $ANTLR start "ruleStaRepository"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:69:1: ruleStaRepository : ( ( rule__StaRepository__Group__0 ) ) ;
+    public final void ruleStaRepository() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:73:2: ( ( ( rule__StaRepository__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:74:1: ( ( rule__StaRepository__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:74:1: ( ( rule__StaRepository__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:75:1: ( rule__StaRepository__Group__0 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:76:1: ( rule__StaRepository__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:76:2: rule__StaRepository__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__0_in_ruleStaRepository94);
+            rule__StaRepository__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStaRepository"
+
+
+    // $ANTLR start "entryRuleAbstractControlFlowElement"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:91:1: ( ruleAbstractControlFlowElement EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:103:2: ( ( ( rule__AbstractControlFlowElement__Alternatives ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:104:1: ( ( rule__AbstractControlFlowElement__Alternatives ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:104:1: ( ( rule__AbstractControlFlowElement__Alternatives ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:106:1: ( rule__AbstractControlFlowElement__Alternatives )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:119:1: ( ruleVariationType EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:131:2: ( ( ( rule__VariationType__Alternatives ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:132:1: ( ( rule__VariationType__Alternatives ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:132:1: ( ( rule__VariationType__Alternatives ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:134:1: ( rule__VariationType__Alternatives )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:147:1: ( ruleEString EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:159:2: ( ( ( rule__EString__Alternatives ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:160:1: ( ( rule__EString__Alternatives ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:160:1: ( ( rule__EString__Alternatives ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:162:1: ( rule__EString__Alternatives )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:175:1: ( ruleTactic EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:187:2: ( ( ( rule__Tactic__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:188:1: ( ( rule__Tactic__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:188:1: ( ( rule__Tactic__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:190:1: ( rule__Tactic__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:203:1: ( ruleAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:215:2: ( ( ( rule__Action__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:216:1: ( ( rule__Action__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:216:1: ( ( rule__Action__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:218:1: ( rule__Action__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:231:1: ( ruleStrategy EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:243:2: ( ( ( rule__Strategy__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:244:1: ( ( rule__Strategy__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:244:1: ( ( rule__Strategy__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:246:1: ( rule__Strategy__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:259:1: ( ruleParameter EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:271:2: ( ( ( rule__Parameter__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:272:1: ( ( rule__Parameter__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:272:1: ( ( rule__Parameter__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:274:1: ( rule__Parameter__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.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 "entryRuleAdaptationPlan"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:286: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:287:1: ( ruleAdaptationPlan EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:288:1: ruleAdaptationPlan EOF
+            {
+             before(grammarAccess.getAdaptationPlanRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_entryRuleAdaptationPlan543);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAdaptationPlan550); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:295: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:299:2: ( ( ( rule__AdaptationPlan__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:300:1: ( ( rule__AdaptationPlan__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:300:1: ( ( rule__AdaptationPlan__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:301: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:302:1: ( rule__AdaptationPlan__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:302:2: rule__AdaptationPlan__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__0_in_ruleAdaptationPlan576);
+            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 "entryRuleStart"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:314:1: entryRuleStart : ruleStart EOF ;
+    public final void entryRuleStart() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:315:1: ( ruleStart EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:316:1: ruleStart EOF
+            {
+             before(grammarAccess.getStartRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStart_in_entryRuleStart603);
+            ruleStart();
+
+            state._fsp--;
+
+             after(grammarAccess.getStartRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStart610); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStart"
+
+
+    // $ANTLR start "ruleStart"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:323:1: ruleStart : ( ( rule__Start__Group__0 ) ) ;
+    public final void ruleStart() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:327:2: ( ( ( rule__Start__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:328:1: ( ( rule__Start__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:328:1: ( ( rule__Start__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:329:1: ( rule__Start__Group__0 )
+            {
+             before(grammarAccess.getStartAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:330:1: ( rule__Start__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:330:2: rule__Start__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__0_in_ruleStart636);
+            rule__Start__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStart"
+
+
+    // $ANTLR start "entryRuleStop"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:342:1: entryRuleStop : ruleStop EOF ;
+    public final void entryRuleStop() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:343:1: ( ruleStop EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:344:1: ruleStop EOF
+            {
+             before(grammarAccess.getStopRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStop_in_entryRuleStop663);
+            ruleStop();
+
+            state._fsp--;
+
+             after(grammarAccess.getStopRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStop670); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStop"
+
+
+    // $ANTLR start "ruleStop"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:351:1: ruleStop : ( ( rule__Stop__Group__0 ) ) ;
+    public final void ruleStop() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:355:2: ( ( ( rule__Stop__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:356:1: ( ( rule__Stop__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:356:1: ( ( rule__Stop__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:357:1: ( rule__Stop__Group__0 )
+            {
+             before(grammarAccess.getStopAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:358:1: ( rule__Stop__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:358:2: rule__Stop__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__0_in_ruleStop696);
+            rule__Stop__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStopAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStop"
+
+
+    // $ANTLR start "entryRuleLoop"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:370:1: entryRuleLoop : ruleLoop EOF ;
+    public final void entryRuleLoop() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:371:1: ( ruleLoop EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:372:1: ruleLoop EOF
+            {
+             before(grammarAccess.getLoopRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleLoop_in_entryRuleLoop723);
+            ruleLoop();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleLoop730); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLoop"
+
+
+    // $ANTLR start "ruleLoop"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:379:1: ruleLoop : ( ( rule__Loop__Group__0 ) ) ;
+    public final void ruleLoop() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:383:2: ( ( ( rule__Loop__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:384:1: ( ( rule__Loop__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:384:1: ( ( rule__Loop__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:385:1: ( rule__Loop__Group__0 )
+            {
+             before(grammarAccess.getLoopAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:386:1: ( rule__Loop__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:386:2: rule__Loop__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__0_in_ruleLoop756);
+            rule__Loop__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleLoop"
+
+
+    // $ANTLR start "entryRuleBranch"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:398:1: entryRuleBranch : ruleBranch EOF ;
+    public final void entryRuleBranch() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:399:1: ( ruleBranch EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:400:1: ruleBranch EOF
+            {
+             before(grammarAccess.getBranchRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleBranch_in_entryRuleBranch783);
+            ruleBranch();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleBranch790); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBranch"
+
+
+    // $ANTLR start "ruleBranch"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:407:1: ruleBranch : ( ( rule__Branch__Group__0 ) ) ;
+    public final void ruleBranch() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:411:2: ( ( ( rule__Branch__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:412:1: ( ( rule__Branch__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:412:1: ( ( rule__Branch__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:413:1: ( rule__Branch__Group__0 )
+            {
+             before(grammarAccess.getBranchAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:414:1: ( rule__Branch__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:414:2: rule__Branch__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__0_in_ruleBranch816);
+            rule__Branch__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBranch"
+
+
+    // $ANTLR start "entryRuleActionReference"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:426: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:427:1: ( ruleActionReference EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:428:1: ruleActionReference EOF
+            {
+             before(grammarAccess.getActionReferenceRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleActionReference_in_entryRuleActionReference843);
+            ruleActionReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionReferenceRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleActionReference850); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:435: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:439:2: ( ( ( rule__ActionReference__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:440:1: ( ( rule__ActionReference__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:440:1: ( ( rule__ActionReference__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:441: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:442:1: ( rule__ActionReference__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:442:2: rule__ActionReference__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__0_in_ruleActionReference876);
+            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 "entryRuleEInt"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:454:1: entryRuleEInt : ruleEInt EOF ;
+    public final void entryRuleEInt() throws RecognitionException {
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:455:1: ( ruleEInt EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:456:1: ruleEInt EOF
+            {
+             before(grammarAccess.getEIntRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEInt_in_entryRuleEInt903);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getEIntRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEInt910); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEInt"
+
+
+    // $ANTLR start "ruleEInt"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:463:1: ruleEInt : ( ( rule__EInt__Group__0 ) ) ;
+    public final void ruleEInt() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:467:2: ( ( ( rule__EInt__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:468:1: ( ( rule__EInt__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:468:1: ( ( rule__EInt__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:469:1: ( rule__EInt__Group__0 )
+            {
+             before(grammarAccess.getEIntAccess().getGroup()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:470:1: ( rule__EInt__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:470:2: rule__EInt__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EInt__Group__0_in_ruleEInt936);
+            rule__EInt__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEIntAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEInt"
+
+
+    // $ANTLR start "entryRuleModelVariableConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:482: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:483:1: ( ruleModelVariableConfigurationRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:484:1: ruleModelVariableConfigurationRange EOF
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleModelVariableConfigurationRange_in_entryRuleModelVariableConfigurationRange963);
+            ruleModelVariableConfigurationRange();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleModelVariableConfigurationRange970); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:491: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:495:2: ( ( ( rule__ModelVariableConfigurationRange__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:496:1: ( ( rule__ModelVariableConfigurationRange__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:496:1: ( ( rule__ModelVariableConfigurationRange__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:497: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:498:1: ( rule__ModelVariableConfigurationRange__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:498:2: rule__ModelVariableConfigurationRange__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__0_in_ruleModelVariableConfigurationRange996);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:510: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:511:1: ( ruleModelEntityConfigurationRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:512:1: ruleModelEntityConfigurationRange EOF
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleModelEntityConfigurationRange_in_entryRuleModelEntityConfigurationRange1023);
+            ruleModelEntityConfigurationRange();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleModelEntityConfigurationRange1030); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:519: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:523:2: ( ( ( rule__ModelEntityConfigurationRange__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:524:1: ( ( rule__ModelEntityConfigurationRange__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:524:1: ( ( rule__ModelEntityConfigurationRange__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:525: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:526:1: ( rule__ModelEntityConfigurationRange__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:526:2: rule__ModelEntityConfigurationRange__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__0_in_ruleModelEntityConfigurationRange1056);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:538: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:539:1: ( ruleEDouble EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:540:1: ruleEDouble EOF
+            {
+             before(grammarAccess.getEDoubleRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_entryRuleEDouble1083);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getEDoubleRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEDouble1090); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:547: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:551:2: ( ( ( rule__EDouble__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:552:1: ( ( rule__EDouble__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:552:1: ( ( rule__EDouble__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:553: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:554:1: ( rule__EDouble__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:554:2: rule__EDouble__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__0_in_ruleEDouble1116);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:568: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:569:1: ( rulePropertyRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:570:1: rulePropertyRange EOF
+            {
+             before(grammarAccess.getPropertyRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePropertyRange_in_entryRulePropertyRange1145);
+            rulePropertyRange();
+
+            state._fsp--;
+
+             after(grammarAccess.getPropertyRangeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePropertyRange1152); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:577: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:581:2: ( ( ( rule__PropertyRange__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:582:1: ( ( rule__PropertyRange__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:582:1: ( ( rule__PropertyRange__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:583: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:584:1: ( rule__PropertyRange__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:584:2: rule__PropertyRange__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__0_in_rulePropertyRange1178);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:596: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:597:1: ( ruleSetOfConfigurations EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:598:1: ruleSetOfConfigurations EOF
+            {
+             before(grammarAccess.getSetOfConfigurationsRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSetOfConfigurations_in_entryRuleSetOfConfigurations1205);
+            ruleSetOfConfigurations();
+
+            state._fsp--;
+
+             after(grammarAccess.getSetOfConfigurationsRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSetOfConfigurations1212); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:605: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:609:2: ( ( ( rule__SetOfConfigurations__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:610:1: ( ( rule__SetOfConfigurations__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:610:1: ( ( rule__SetOfConfigurations__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:611: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:612:1: ( rule__SetOfConfigurations__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:612:2: rule__SetOfConfigurations__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__0_in_ruleSetOfConfigurations1238);
+            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 "entryRuleEvent"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:628: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:629:1: ( ruleEvent EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:630:1: ruleEvent EOF
+            {
+             before(grammarAccess.getEventRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEvent_in_entryRuleEvent1269);
+            ruleEvent();
+
+            state._fsp--;
+
+             after(grammarAccess.getEventRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEvent1276); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:637: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:641:2: ( ( ( rule__Event__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:642:1: ( ( rule__Event__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:642:1: ( ( rule__Event__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:643: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:644:1: ( rule__Event__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:644:2: rule__Event__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group__0_in_ruleEvent1302);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:656: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:657:1: ( ruleWeightedTactic EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:658:1: ruleWeightedTactic EOF
+            {
+             before(grammarAccess.getWeightedTacticRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_entryRuleWeightedTactic1329);
+            ruleWeightedTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightedTactic1336); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:665: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:669:2: ( ( ( rule__WeightedTactic__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:670:1: ( ( rule__WeightedTactic__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:670:1: ( ( rule__WeightedTactic__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:671: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:672:1: ( rule__WeightedTactic__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:672:2: rule__WeightedTactic__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__0_in_ruleWeightedTactic1362);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:684: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:685:1: ( ruleWeightingFunction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:686:1: ruleWeightingFunction EOF
+            {
+             before(grammarAccess.getWeightingFunctionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightingFunction_in_entryRuleWeightingFunction1389);
+            ruleWeightingFunction();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightingFunctionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightingFunction1396); 
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:693: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:697:2: ( ( ( rule__WeightingFunction__Group__0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:698:1: ( ( rule__WeightingFunction__Group__0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:698:1: ( ( rule__WeightingFunction__Group__0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:699: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:700:1: ( rule__WeightingFunction__Group__0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:700:2: rule__WeightingFunction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__0_in_ruleWeightingFunction1422);
+            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 "rule__AbstractControlFlowElement__Alternatives"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:713:1: rule__AbstractControlFlowElement__Alternatives : ( ( ruleStart ) | ( ruleStop ) | ( ruleLoop ) | ( ruleBranch ) | ( 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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:717:1: ( ( ruleStart ) | ( ruleStop ) | ( ruleLoop ) | ( ruleBranch ) | ( ruleActionReference ) )
+            int alt1=5;
+            switch ( input.LA(1) ) {
+            case 38:
+                {
+                alt1=1;
+                }
+                break;
+            case 41:
+                {
+                alt1=2;
+                }
+                break;
+            case 42:
+                {
+                alt1=3;
+                }
+                break;
+            case 45:
+                {
+                alt1=4;
+                }
+                break;
+            case 48:
+                {
+                alt1=5;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 1, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt1) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:718:1: ( ruleStart )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:718:1: ( ruleStart )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:719:1: ruleStart
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getStartParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleStart_in_rule__AbstractControlFlowElement__Alternatives1459);
+                    ruleStart();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractControlFlowElementAccess().getStartParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:724:6: ( ruleStop )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:724:6: ( ruleStop )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:725:1: ruleStop
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getStopParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleStop_in_rule__AbstractControlFlowElement__Alternatives1476);
+                    ruleStop();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractControlFlowElementAccess().getStopParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:730:6: ( ruleLoop )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:730:6: ( ruleLoop )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:731:1: ruleLoop
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getLoopParserRuleCall_2()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleLoop_in_rule__AbstractControlFlowElement__Alternatives1493);
+                    ruleLoop();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractControlFlowElementAccess().getLoopParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:736:6: ( ruleBranch )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:736:6: ( ruleBranch )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:737:1: ruleBranch
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getBranchParserRuleCall_3()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleBranch_in_rule__AbstractControlFlowElement__Alternatives1510);
+                    ruleBranch();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractControlFlowElementAccess().getBranchParserRuleCall_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:742:6: ( ruleActionReference )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:742:6: ( ruleActionReference )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:743:1: ruleActionReference
+                    {
+                     before(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleActionReference_in_rule__AbstractControlFlowElement__Alternatives1527);
+                    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:753: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:757:1: ( ( rulePropertyRange ) | ( ruleSetOfConfigurations ) )
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+
+            if ( (LA2_0==59) ) {
+                alt2=1;
+            }
+            else if ( (LA2_0==62) ) {
+                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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:758:1: ( rulePropertyRange )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:758:1: ( rulePropertyRange )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:759:1: rulePropertyRange
+                    {
+                     before(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_rulePropertyRange_in_rule__VariationType__Alternatives1559);
+                    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:764:6: ( ruleSetOfConfigurations )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:764:6: ( ruleSetOfConfigurations )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:765:1: ruleSetOfConfigurations
+                    {
+                     before(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleSetOfConfigurations_in_rule__VariationType__Alternatives1576);
+                    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:775: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:779: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:780:1: ( RULE_STRING )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:780:1: ( RULE_STRING )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:781:1: RULE_STRING
+                    {
+                     before(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); 
+                    match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_rule__EString__Alternatives1608); 
+                     after(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:786:6: ( RULE_ID )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:786:6: ( RULE_ID )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:787:1: RULE_ID
+                    {
+                     before(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); 
+                    match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__EString__Alternatives1625); 
+                     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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:797: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:801:1: ( ( 'E' ) | ( 'e' ) )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==11) ) {
+                alt4=1;
+            }
+            else if ( (LA4_0==12) ) {
+                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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:802:1: ( 'E' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:802:1: ( 'E' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:803:1: 'E'
+                    {
+                     before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); 
+                    match(input,11,FollowSets000.FOLLOW_11_in_rule__EDouble__Alternatives_4_01658); 
+                     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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:810:6: ( 'e' )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:810:6: ( 'e' )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:811:1: 'e'
+                    {
+                     before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); 
+                    match(input,12,FollowSets000.FOLLOW_12_in_rule__EDouble__Alternatives_4_01678); 
+                     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__StaRepository__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:825:1: rule__StaRepository__Group__0 : rule__StaRepository__Group__0__Impl rule__StaRepository__Group__1 ;
+    public final void rule__StaRepository__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:829:1: ( rule__StaRepository__Group__0__Impl rule__StaRepository__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:830:2: rule__StaRepository__Group__0__Impl rule__StaRepository__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__0__Impl_in_rule__StaRepository__Group__01710);
+            rule__StaRepository__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__1_in_rule__StaRepository__Group__01713);
+            rule__StaRepository__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__0"
+
+
+    // $ANTLR start "rule__StaRepository__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:837:1: rule__StaRepository__Group__0__Impl : ( 'StaRepository' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:841:1: ( ( 'StaRepository' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:842:1: ( 'StaRepository' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:842:1: ( 'StaRepository' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:843:1: 'StaRepository'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getStaRepositoryKeyword_0()); 
+            match(input,13,FollowSets000.FOLLOW_13_in_rule__StaRepository__Group__0__Impl1741); 
+             after(grammarAccess.getStaRepositoryAccess().getStaRepositoryKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:856:1: rule__StaRepository__Group__1 : rule__StaRepository__Group__1__Impl rule__StaRepository__Group__2 ;
+    public final void rule__StaRepository__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:860:1: ( rule__StaRepository__Group__1__Impl rule__StaRepository__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:861:2: rule__StaRepository__Group__1__Impl rule__StaRepository__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__1__Impl_in_rule__StaRepository__Group__11772);
+            rule__StaRepository__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__2_in_rule__StaRepository__Group__11775);
+            rule__StaRepository__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__1"
+
+
+    // $ANTLR start "rule__StaRepository__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:868:1: rule__StaRepository__Group__1__Impl : ( ( rule__StaRepository__IdAssignment_1 ) ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:872:1: ( ( ( rule__StaRepository__IdAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:873:1: ( ( rule__StaRepository__IdAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:873:1: ( ( rule__StaRepository__IdAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:874:1: ( rule__StaRepository__IdAssignment_1 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getIdAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:875:1: ( rule__StaRepository__IdAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:875:2: rule__StaRepository__IdAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__IdAssignment_1_in_rule__StaRepository__Group__1__Impl1802);
+            rule__StaRepository__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:885:1: rule__StaRepository__Group__2 : rule__StaRepository__Group__2__Impl rule__StaRepository__Group__3 ;
+    public final void rule__StaRepository__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:889:1: ( rule__StaRepository__Group__2__Impl rule__StaRepository__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:890:2: rule__StaRepository__Group__2__Impl rule__StaRepository__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__2__Impl_in_rule__StaRepository__Group__21832);
+            rule__StaRepository__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__3_in_rule__StaRepository__Group__21835);
+            rule__StaRepository__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__2"
+
+
+    // $ANTLR start "rule__StaRepository__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:897:1: rule__StaRepository__Group__2__Impl : ( '{' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:901:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:902:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:902:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:903:1: '{'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__StaRepository__Group__2__Impl1863); 
+             after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__2__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:916:1: rule__StaRepository__Group__3 : rule__StaRepository__Group__3__Impl rule__StaRepository__Group__4 ;
+    public final void rule__StaRepository__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:920:1: ( rule__StaRepository__Group__3__Impl rule__StaRepository__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:921:2: rule__StaRepository__Group__3__Impl rule__StaRepository__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__3__Impl_in_rule__StaRepository__Group__31894);
+            rule__StaRepository__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__4_in_rule__StaRepository__Group__31897);
+            rule__StaRepository__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__3"
+
+
+    // $ANTLR start "rule__StaRepository__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:928:1: rule__StaRepository__Group__3__Impl : ( 'name' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:932:1: ( ( 'name' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:933:1: ( 'name' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:933:1: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:934:1: 'name'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getNameKeyword_3()); 
+            match(input,15,FollowSets000.FOLLOW_15_in_rule__StaRepository__Group__3__Impl1925); 
+             after(grammarAccess.getStaRepositoryAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__3__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:947:1: rule__StaRepository__Group__4 : rule__StaRepository__Group__4__Impl rule__StaRepository__Group__5 ;
+    public final void rule__StaRepository__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:951:1: ( rule__StaRepository__Group__4__Impl rule__StaRepository__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:952:2: rule__StaRepository__Group__4__Impl rule__StaRepository__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__4__Impl_in_rule__StaRepository__Group__41956);
+            rule__StaRepository__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__5_in_rule__StaRepository__Group__41959);
+            rule__StaRepository__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__4"
+
+
+    // $ANTLR start "rule__StaRepository__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:959:1: rule__StaRepository__Group__4__Impl : ( ( rule__StaRepository__NameAssignment_4 ) ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:963:1: ( ( ( rule__StaRepository__NameAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:964:1: ( ( rule__StaRepository__NameAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:964:1: ( ( rule__StaRepository__NameAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:965:1: ( rule__StaRepository__NameAssignment_4 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getNameAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:966:1: ( rule__StaRepository__NameAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:966:2: rule__StaRepository__NameAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__NameAssignment_4_in_rule__StaRepository__Group__4__Impl1986);
+            rule__StaRepository__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__4__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:976:1: rule__StaRepository__Group__5 : rule__StaRepository__Group__5__Impl rule__StaRepository__Group__6 ;
+    public final void rule__StaRepository__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:980:1: ( rule__StaRepository__Group__5__Impl rule__StaRepository__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:981:2: rule__StaRepository__Group__5__Impl rule__StaRepository__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__5__Impl_in_rule__StaRepository__Group__52016);
+            rule__StaRepository__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__6_in_rule__StaRepository__Group__52019);
+            rule__StaRepository__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__5"
+
+
+    // $ANTLR start "rule__StaRepository__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:988:1: rule__StaRepository__Group__5__Impl : ( 'tactics' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:992:1: ( ( 'tactics' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:993:1: ( 'tactics' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:993:1: ( 'tactics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:994:1: 'tactics'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getTacticsKeyword_5()); 
+            match(input,16,FollowSets000.FOLLOW_16_in_rule__StaRepository__Group__5__Impl2047); 
+             after(grammarAccess.getStaRepositoryAccess().getTacticsKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__5__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1007:1: rule__StaRepository__Group__6 : rule__StaRepository__Group__6__Impl rule__StaRepository__Group__7 ;
+    public final void rule__StaRepository__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1011:1: ( rule__StaRepository__Group__6__Impl rule__StaRepository__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1012:2: rule__StaRepository__Group__6__Impl rule__StaRepository__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__6__Impl_in_rule__StaRepository__Group__62078);
+            rule__StaRepository__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__7_in_rule__StaRepository__Group__62081);
+            rule__StaRepository__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__6"
+
+
+    // $ANTLR start "rule__StaRepository__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1019:1: rule__StaRepository__Group__6__Impl : ( '{' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1023:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1024:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1024:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1025:1: '{'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_6()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__StaRepository__Group__6__Impl2109); 
+             after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__6__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1038:1: rule__StaRepository__Group__7 : rule__StaRepository__Group__7__Impl rule__StaRepository__Group__8 ;
+    public final void rule__StaRepository__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1042:1: ( rule__StaRepository__Group__7__Impl rule__StaRepository__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1043:2: rule__StaRepository__Group__7__Impl rule__StaRepository__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__7__Impl_in_rule__StaRepository__Group__72140);
+            rule__StaRepository__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__8_in_rule__StaRepository__Group__72143);
+            rule__StaRepository__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__7"
+
+
+    // $ANTLR start "rule__StaRepository__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1050:1: rule__StaRepository__Group__7__Impl : ( ( rule__StaRepository__TacticsAssignment_7 ) ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1054:1: ( ( ( rule__StaRepository__TacticsAssignment_7 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1055:1: ( ( rule__StaRepository__TacticsAssignment_7 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1055:1: ( ( rule__StaRepository__TacticsAssignment_7 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1056:1: ( rule__StaRepository__TacticsAssignment_7 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_7()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1057:1: ( rule__StaRepository__TacticsAssignment_7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1057:2: rule__StaRepository__TacticsAssignment_7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__TacticsAssignment_7_in_rule__StaRepository__Group__7__Impl2170);
+            rule__StaRepository__TacticsAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__7__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1067:1: rule__StaRepository__Group__8 : rule__StaRepository__Group__8__Impl rule__StaRepository__Group__9 ;
+    public final void rule__StaRepository__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1071:1: ( rule__StaRepository__Group__8__Impl rule__StaRepository__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1072:2: rule__StaRepository__Group__8__Impl rule__StaRepository__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__8__Impl_in_rule__StaRepository__Group__82200);
+            rule__StaRepository__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__9_in_rule__StaRepository__Group__82203);
+            rule__StaRepository__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__8"
+
+
+    // $ANTLR start "rule__StaRepository__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1079:1: rule__StaRepository__Group__8__Impl : ( ( rule__StaRepository__Group_8__0 )* ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1083:1: ( ( ( rule__StaRepository__Group_8__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1084:1: ( ( rule__StaRepository__Group_8__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1084:1: ( ( rule__StaRepository__Group_8__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1085:1: ( rule__StaRepository__Group_8__0 )*
+            {
+             before(grammarAccess.getStaRepositoryAccess().getGroup_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1086:1: ( rule__StaRepository__Group_8__0 )*
+            loop5:
+            do {
+                int alt5=2;
+                int LA5_0 = input.LA(1);
+
+                if ( (LA5_0==20) ) {
+                    alt5=1;
+                }
+
+
+                switch (alt5) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1086:2: rule__StaRepository__Group_8__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_8__0_in_rule__StaRepository__Group__8__Impl2230);
+            	    rule__StaRepository__Group_8__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop5;
+                }
+            } while (true);
+
+             after(grammarAccess.getStaRepositoryAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__8__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1096:1: rule__StaRepository__Group__9 : rule__StaRepository__Group__9__Impl rule__StaRepository__Group__10 ;
+    public final void rule__StaRepository__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1100:1: ( rule__StaRepository__Group__9__Impl rule__StaRepository__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1101:2: rule__StaRepository__Group__9__Impl rule__StaRepository__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__9__Impl_in_rule__StaRepository__Group__92261);
+            rule__StaRepository__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__10_in_rule__StaRepository__Group__92264);
+            rule__StaRepository__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__9"
+
+
+    // $ANTLR start "rule__StaRepository__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1108:1: rule__StaRepository__Group__9__Impl : ( '}' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1112:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1113:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1113:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1114:1: '}'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_9()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__StaRepository__Group__9__Impl2292); 
+             after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__9__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1127:1: rule__StaRepository__Group__10 : rule__StaRepository__Group__10__Impl rule__StaRepository__Group__11 ;
+    public final void rule__StaRepository__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1131:1: ( rule__StaRepository__Group__10__Impl rule__StaRepository__Group__11 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1132:2: rule__StaRepository__Group__10__Impl rule__StaRepository__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__10__Impl_in_rule__StaRepository__Group__102323);
+            rule__StaRepository__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__11_in_rule__StaRepository__Group__102326);
+            rule__StaRepository__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__10"
+
+
+    // $ANTLR start "rule__StaRepository__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1139:1: rule__StaRepository__Group__10__Impl : ( 'actions' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1143:1: ( ( 'actions' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1144:1: ( 'actions' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1144:1: ( 'actions' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1145:1: 'actions'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getActionsKeyword_10()); 
+            match(input,18,FollowSets000.FOLLOW_18_in_rule__StaRepository__Group__10__Impl2354); 
+             after(grammarAccess.getStaRepositoryAccess().getActionsKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__10__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__11"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1158:1: rule__StaRepository__Group__11 : rule__StaRepository__Group__11__Impl rule__StaRepository__Group__12 ;
+    public final void rule__StaRepository__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1162:1: ( rule__StaRepository__Group__11__Impl rule__StaRepository__Group__12 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1163:2: rule__StaRepository__Group__11__Impl rule__StaRepository__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__11__Impl_in_rule__StaRepository__Group__112385);
+            rule__StaRepository__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__12_in_rule__StaRepository__Group__112388);
+            rule__StaRepository__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__11"
+
+
+    // $ANTLR start "rule__StaRepository__Group__11__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1170:1: rule__StaRepository__Group__11__Impl : ( '{' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1174:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1175:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1175:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1176:1: '{'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_11()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__StaRepository__Group__11__Impl2416); 
+             after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__11__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__12"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1189:1: rule__StaRepository__Group__12 : rule__StaRepository__Group__12__Impl rule__StaRepository__Group__13 ;
+    public final void rule__StaRepository__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1193:1: ( rule__StaRepository__Group__12__Impl rule__StaRepository__Group__13 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1194:2: rule__StaRepository__Group__12__Impl rule__StaRepository__Group__13
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__12__Impl_in_rule__StaRepository__Group__122447);
+            rule__StaRepository__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__13_in_rule__StaRepository__Group__122450);
+            rule__StaRepository__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__12"
+
+
+    // $ANTLR start "rule__StaRepository__Group__12__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1201:1: rule__StaRepository__Group__12__Impl : ( ( rule__StaRepository__ActionsAssignment_12 ) ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1205:1: ( ( ( rule__StaRepository__ActionsAssignment_12 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1206:1: ( ( rule__StaRepository__ActionsAssignment_12 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1206:1: ( ( rule__StaRepository__ActionsAssignment_12 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1207:1: ( rule__StaRepository__ActionsAssignment_12 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getActionsAssignment_12()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1208:1: ( rule__StaRepository__ActionsAssignment_12 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1208:2: rule__StaRepository__ActionsAssignment_12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__ActionsAssignment_12_in_rule__StaRepository__Group__12__Impl2477);
+            rule__StaRepository__ActionsAssignment_12();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getActionsAssignment_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__12__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__13"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1218:1: rule__StaRepository__Group__13 : rule__StaRepository__Group__13__Impl rule__StaRepository__Group__14 ;
+    public final void rule__StaRepository__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1222:1: ( rule__StaRepository__Group__13__Impl rule__StaRepository__Group__14 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1223:2: rule__StaRepository__Group__13__Impl rule__StaRepository__Group__14
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__13__Impl_in_rule__StaRepository__Group__132507);
+            rule__StaRepository__Group__13__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__14_in_rule__StaRepository__Group__132510);
+            rule__StaRepository__Group__14();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__13"
+
+
+    // $ANTLR start "rule__StaRepository__Group__13__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1230:1: rule__StaRepository__Group__13__Impl : ( ( rule__StaRepository__Group_13__0 )* ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1234:1: ( ( ( rule__StaRepository__Group_13__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1235:1: ( ( rule__StaRepository__Group_13__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1235:1: ( ( rule__StaRepository__Group_13__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1236:1: ( rule__StaRepository__Group_13__0 )*
+            {
+             before(grammarAccess.getStaRepositoryAccess().getGroup_13()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1237:1: ( rule__StaRepository__Group_13__0 )*
+            loop6:
+            do {
+                int alt6=2;
+                int LA6_0 = input.LA(1);
+
+                if ( (LA6_0==20) ) {
+                    alt6=1;
+                }
+
+
+                switch (alt6) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1237:2: rule__StaRepository__Group_13__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_13__0_in_rule__StaRepository__Group__13__Impl2537);
+            	    rule__StaRepository__Group_13__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop6;
+                }
+            } while (true);
+
+             after(grammarAccess.getStaRepositoryAccess().getGroup_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__13__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__14"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1247:1: rule__StaRepository__Group__14 : rule__StaRepository__Group__14__Impl rule__StaRepository__Group__15 ;
+    public final void rule__StaRepository__Group__14() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1251:1: ( rule__StaRepository__Group__14__Impl rule__StaRepository__Group__15 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1252:2: rule__StaRepository__Group__14__Impl rule__StaRepository__Group__15
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__14__Impl_in_rule__StaRepository__Group__142568);
+            rule__StaRepository__Group__14__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__15_in_rule__StaRepository__Group__142571);
+            rule__StaRepository__Group__15();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__14"
+
+
+    // $ANTLR start "rule__StaRepository__Group__14__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1259:1: rule__StaRepository__Group__14__Impl : ( '}' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1263:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1264:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1264:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1265:1: '}'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_14()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__StaRepository__Group__14__Impl2599); 
+             after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_14()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__14__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__15"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1278:1: rule__StaRepository__Group__15 : rule__StaRepository__Group__15__Impl rule__StaRepository__Group__16 ;
+    public final void rule__StaRepository__Group__15() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1282:1: ( rule__StaRepository__Group__15__Impl rule__StaRepository__Group__16 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1283:2: rule__StaRepository__Group__15__Impl rule__StaRepository__Group__16
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__15__Impl_in_rule__StaRepository__Group__152630);
+            rule__StaRepository__Group__15__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__16_in_rule__StaRepository__Group__152633);
+            rule__StaRepository__Group__16();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__15"
+
+
+    // $ANTLR start "rule__StaRepository__Group__15__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1290:1: rule__StaRepository__Group__15__Impl : ( 'strategies' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1294:1: ( ( 'strategies' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1295:1: ( 'strategies' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1295:1: ( 'strategies' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1296:1: 'strategies'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getStrategiesKeyword_15()); 
+            match(input,19,FollowSets000.FOLLOW_19_in_rule__StaRepository__Group__15__Impl2661); 
+             after(grammarAccess.getStaRepositoryAccess().getStrategiesKeyword_15()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__15__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__16"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1309:1: rule__StaRepository__Group__16 : rule__StaRepository__Group__16__Impl rule__StaRepository__Group__17 ;
+    public final void rule__StaRepository__Group__16() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1313:1: ( rule__StaRepository__Group__16__Impl rule__StaRepository__Group__17 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1314:2: rule__StaRepository__Group__16__Impl rule__StaRepository__Group__17
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__16__Impl_in_rule__StaRepository__Group__162692);
+            rule__StaRepository__Group__16__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__17_in_rule__StaRepository__Group__162695);
+            rule__StaRepository__Group__17();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__16"
+
+
+    // $ANTLR start "rule__StaRepository__Group__16__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1321:1: rule__StaRepository__Group__16__Impl : ( '{' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1325:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1326:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1326:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1327:1: '{'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_16()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__StaRepository__Group__16__Impl2723); 
+             after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_16()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__16__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__17"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1340:1: rule__StaRepository__Group__17 : rule__StaRepository__Group__17__Impl rule__StaRepository__Group__18 ;
+    public final void rule__StaRepository__Group__17() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1344:1: ( rule__StaRepository__Group__17__Impl rule__StaRepository__Group__18 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1345:2: rule__StaRepository__Group__17__Impl rule__StaRepository__Group__18
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__17__Impl_in_rule__StaRepository__Group__172754);
+            rule__StaRepository__Group__17__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__18_in_rule__StaRepository__Group__172757);
+            rule__StaRepository__Group__18();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__17"
+
+
+    // $ANTLR start "rule__StaRepository__Group__17__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1352:1: rule__StaRepository__Group__17__Impl : ( ( rule__StaRepository__StrategiesAssignment_17 ) ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1356:1: ( ( ( rule__StaRepository__StrategiesAssignment_17 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1357:1: ( ( rule__StaRepository__StrategiesAssignment_17 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1357:1: ( ( rule__StaRepository__StrategiesAssignment_17 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1358:1: ( rule__StaRepository__StrategiesAssignment_17 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_17()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1359:1: ( rule__StaRepository__StrategiesAssignment_17 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1359:2: rule__StaRepository__StrategiesAssignment_17
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__StrategiesAssignment_17_in_rule__StaRepository__Group__17__Impl2784);
+            rule__StaRepository__StrategiesAssignment_17();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_17()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__17__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__18"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1369:1: rule__StaRepository__Group__18 : rule__StaRepository__Group__18__Impl rule__StaRepository__Group__19 ;
+    public final void rule__StaRepository__Group__18() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1373:1: ( rule__StaRepository__Group__18__Impl rule__StaRepository__Group__19 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1374:2: rule__StaRepository__Group__18__Impl rule__StaRepository__Group__19
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__18__Impl_in_rule__StaRepository__Group__182814);
+            rule__StaRepository__Group__18__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__19_in_rule__StaRepository__Group__182817);
+            rule__StaRepository__Group__19();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__18"
+
+
+    // $ANTLR start "rule__StaRepository__Group__18__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1381:1: rule__StaRepository__Group__18__Impl : ( ( rule__StaRepository__Group_18__0 )* ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1385:1: ( ( ( rule__StaRepository__Group_18__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1386:1: ( ( rule__StaRepository__Group_18__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1386:1: ( ( rule__StaRepository__Group_18__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1387:1: ( rule__StaRepository__Group_18__0 )*
+            {
+             before(grammarAccess.getStaRepositoryAccess().getGroup_18()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1388:1: ( rule__StaRepository__Group_18__0 )*
+            loop7:
+            do {
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+
+                if ( (LA7_0==20) ) {
+                    alt7=1;
+                }
+
+
+                switch (alt7) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1388:2: rule__StaRepository__Group_18__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_18__0_in_rule__StaRepository__Group__18__Impl2844);
+            	    rule__StaRepository__Group_18__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop7;
+                }
+            } while (true);
+
+             after(grammarAccess.getStaRepositoryAccess().getGroup_18()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__18__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__19"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1398:1: rule__StaRepository__Group__19 : rule__StaRepository__Group__19__Impl rule__StaRepository__Group__20 ;
+    public final void rule__StaRepository__Group__19() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1402:1: ( rule__StaRepository__Group__19__Impl rule__StaRepository__Group__20 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1403:2: rule__StaRepository__Group__19__Impl rule__StaRepository__Group__20
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__19__Impl_in_rule__StaRepository__Group__192875);
+            rule__StaRepository__Group__19__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__20_in_rule__StaRepository__Group__192878);
+            rule__StaRepository__Group__20();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__19"
+
+
+    // $ANTLR start "rule__StaRepository__Group__19__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1410:1: rule__StaRepository__Group__19__Impl : ( '}' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1414:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1415:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1415:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1416:1: '}'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_19()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__StaRepository__Group__19__Impl2906); 
+             after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_19()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__19__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__20"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1429:1: rule__StaRepository__Group__20 : rule__StaRepository__Group__20__Impl rule__StaRepository__Group__21 ;
+    public final void rule__StaRepository__Group__20() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1433:1: ( rule__StaRepository__Group__20__Impl rule__StaRepository__Group__21 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1434:2: rule__StaRepository__Group__20__Impl rule__StaRepository__Group__21
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__20__Impl_in_rule__StaRepository__Group__202937);
+            rule__StaRepository__Group__20__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__21_in_rule__StaRepository__Group__202940);
+            rule__StaRepository__Group__21();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__20"
+
+
+    // $ANTLR start "rule__StaRepository__Group__20__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1441:1: rule__StaRepository__Group__20__Impl : ( ( rule__StaRepository__Group_20__0 )? ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1445:1: ( ( ( rule__StaRepository__Group_20__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1446:1: ( ( rule__StaRepository__Group_20__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1446:1: ( ( rule__StaRepository__Group_20__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1447:1: ( rule__StaRepository__Group_20__0 )?
+            {
+             before(grammarAccess.getStaRepositoryAccess().getGroup_20()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1448:1: ( rule__StaRepository__Group_20__0 )?
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==21) ) {
+                alt8=1;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1448:2: rule__StaRepository__Group_20__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__0_in_rule__StaRepository__Group__20__Impl2967);
+                    rule__StaRepository__Group_20__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getGroup_20()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__20__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group__21"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1458:1: rule__StaRepository__Group__21 : rule__StaRepository__Group__21__Impl ;
+    public final void rule__StaRepository__Group__21() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1462:1: ( rule__StaRepository__Group__21__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1463:2: rule__StaRepository__Group__21__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group__21__Impl_in_rule__StaRepository__Group__212998);
+            rule__StaRepository__Group__21__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__21"
+
+
+    // $ANTLR start "rule__StaRepository__Group__21__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1469:1: rule__StaRepository__Group__21__Impl : ( '}' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1473:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1474:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1474:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1475:1: '}'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_21()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__StaRepository__Group__21__Impl3026); 
+             after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_21()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group__21__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_8__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1532:1: rule__StaRepository__Group_8__0 : rule__StaRepository__Group_8__0__Impl rule__StaRepository__Group_8__1 ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1536:1: ( rule__StaRepository__Group_8__0__Impl rule__StaRepository__Group_8__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1537:2: rule__StaRepository__Group_8__0__Impl rule__StaRepository__Group_8__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_8__0__Impl_in_rule__StaRepository__Group_8__03101);
+            rule__StaRepository__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_8__1_in_rule__StaRepository__Group_8__03104);
+            rule__StaRepository__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_8__0"
+
+
+    // $ANTLR start "rule__StaRepository__Group_8__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1544:1: rule__StaRepository__Group_8__0__Impl : ( ',' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1548:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1549:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1549:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1550:1: ','
+            {
+             before(grammarAccess.getStaRepositoryAccess().getCommaKeyword_8_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__StaRepository__Group_8__0__Impl3132); 
+             after(grammarAccess.getStaRepositoryAccess().getCommaKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_8__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1563:1: rule__StaRepository__Group_8__1 : rule__StaRepository__Group_8__1__Impl ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1567:1: ( rule__StaRepository__Group_8__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1568:2: rule__StaRepository__Group_8__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_8__1__Impl_in_rule__StaRepository__Group_8__13163);
+            rule__StaRepository__Group_8__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_8__1"
+
+
+    // $ANTLR start "rule__StaRepository__Group_8__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1574:1: rule__StaRepository__Group_8__1__Impl : ( ( rule__StaRepository__TacticsAssignment_8_1 ) ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1578:1: ( ( ( rule__StaRepository__TacticsAssignment_8_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1579:1: ( ( rule__StaRepository__TacticsAssignment_8_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1579:1: ( ( rule__StaRepository__TacticsAssignment_8_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1580:1: ( rule__StaRepository__TacticsAssignment_8_1 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_8_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1581:1: ( rule__StaRepository__TacticsAssignment_8_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1581:2: rule__StaRepository__TacticsAssignment_8_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__TacticsAssignment_8_1_in_rule__StaRepository__Group_8__1__Impl3190);
+            rule__StaRepository__TacticsAssignment_8_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getTacticsAssignment_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_13__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1595:1: rule__StaRepository__Group_13__0 : rule__StaRepository__Group_13__0__Impl rule__StaRepository__Group_13__1 ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1599:1: ( rule__StaRepository__Group_13__0__Impl rule__StaRepository__Group_13__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1600:2: rule__StaRepository__Group_13__0__Impl rule__StaRepository__Group_13__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_13__0__Impl_in_rule__StaRepository__Group_13__03224);
+            rule__StaRepository__Group_13__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_13__1_in_rule__StaRepository__Group_13__03227);
+            rule__StaRepository__Group_13__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_13__0"
+
+
+    // $ANTLR start "rule__StaRepository__Group_13__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1607:1: rule__StaRepository__Group_13__0__Impl : ( ',' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1611:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1612:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1612:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1613:1: ','
+            {
+             before(grammarAccess.getStaRepositoryAccess().getCommaKeyword_13_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__StaRepository__Group_13__0__Impl3255); 
+             after(grammarAccess.getStaRepositoryAccess().getCommaKeyword_13_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_13__0__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_13__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1626:1: rule__StaRepository__Group_13__1 : rule__StaRepository__Group_13__1__Impl ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1630:1: ( rule__StaRepository__Group_13__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1631:2: rule__StaRepository__Group_13__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_13__1__Impl_in_rule__StaRepository__Group_13__13286);
+            rule__StaRepository__Group_13__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_13__1"
+
+
+    // $ANTLR start "rule__StaRepository__Group_13__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1637:1: rule__StaRepository__Group_13__1__Impl : ( ( rule__StaRepository__ActionsAssignment_13_1 ) ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1641:1: ( ( ( rule__StaRepository__ActionsAssignment_13_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1642:1: ( ( rule__StaRepository__ActionsAssignment_13_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1642:1: ( ( rule__StaRepository__ActionsAssignment_13_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1643:1: ( rule__StaRepository__ActionsAssignment_13_1 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getActionsAssignment_13_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1644:1: ( rule__StaRepository__ActionsAssignment_13_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1644:2: rule__StaRepository__ActionsAssignment_13_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__ActionsAssignment_13_1_in_rule__StaRepository__Group_13__1__Impl3313);
+            rule__StaRepository__ActionsAssignment_13_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getActionsAssignment_13_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_13__1__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_18__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1658:1: rule__StaRepository__Group_18__0 : rule__StaRepository__Group_18__0__Impl rule__StaRepository__Group_18__1 ;
+    public final void rule__StaRepository__Group_18__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1662:1: ( rule__StaRepository__Group_18__0__Impl rule__StaRepository__Group_18__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1663:2: rule__StaRepository__Group_18__0__Impl rule__StaRepository__Group_18__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_18__0__Impl_in_rule__StaRepository__Group_18__03347);
+            rule__StaRepository__Group_18__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_18__1_in_rule__StaRepository__Group_18__03350);
+            rule__StaRepository__Group_18__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_18__0"
+
+
+    // $ANTLR start "rule__StaRepository__Group_18__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1670:1: rule__StaRepository__Group_18__0__Impl : ( ',' ) ;
+    public final void rule__StaRepository__Group_18__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1674:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1675:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1675:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1676:1: ','
+            {
+             before(grammarAccess.getStaRepositoryAccess().getCommaKeyword_18_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__StaRepository__Group_18__0__Impl3378); 
+             after(grammarAccess.getStaRepositoryAccess().getCommaKeyword_18_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_18__0__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_18__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1689:1: rule__StaRepository__Group_18__1 : rule__StaRepository__Group_18__1__Impl ;
+    public final void rule__StaRepository__Group_18__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1693:1: ( rule__StaRepository__Group_18__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1694:2: rule__StaRepository__Group_18__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_18__1__Impl_in_rule__StaRepository__Group_18__13409);
+            rule__StaRepository__Group_18__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_18__1"
+
+
+    // $ANTLR start "rule__StaRepository__Group_18__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1700:1: rule__StaRepository__Group_18__1__Impl : ( ( rule__StaRepository__StrategiesAssignment_18_1 ) ) ;
+    public final void rule__StaRepository__Group_18__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1704:1: ( ( ( rule__StaRepository__StrategiesAssignment_18_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1705:1: ( ( rule__StaRepository__StrategiesAssignment_18_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1705:1: ( ( rule__StaRepository__StrategiesAssignment_18_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1706:1: ( rule__StaRepository__StrategiesAssignment_18_1 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_18_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1707:1: ( rule__StaRepository__StrategiesAssignment_18_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1707:2: rule__StaRepository__StrategiesAssignment_18_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__StrategiesAssignment_18_1_in_rule__StaRepository__Group_18__1__Impl3436);
+            rule__StaRepository__StrategiesAssignment_18_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_18_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_18__1__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1721:1: rule__StaRepository__Group_20__0 : rule__StaRepository__Group_20__0__Impl rule__StaRepository__Group_20__1 ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1725:1: ( rule__StaRepository__Group_20__0__Impl rule__StaRepository__Group_20__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1726:2: rule__StaRepository__Group_20__0__Impl rule__StaRepository__Group_20__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__0__Impl_in_rule__StaRepository__Group_20__03470);
+            rule__StaRepository__Group_20__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__1_in_rule__StaRepository__Group_20__03473);
+            rule__StaRepository__Group_20__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__0"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1733:1: rule__StaRepository__Group_20__0__Impl : ( 'parameters' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1737:1: ( ( 'parameters' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1738:1: ( 'parameters' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1738:1: ( 'parameters' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1739:1: 'parameters'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getParametersKeyword_20_0()); 
+            match(input,21,FollowSets000.FOLLOW_21_in_rule__StaRepository__Group_20__0__Impl3501); 
+             after(grammarAccess.getStaRepositoryAccess().getParametersKeyword_20_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__0__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1752:1: rule__StaRepository__Group_20__1 : rule__StaRepository__Group_20__1__Impl rule__StaRepository__Group_20__2 ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1756:1: ( rule__StaRepository__Group_20__1__Impl rule__StaRepository__Group_20__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1757:2: rule__StaRepository__Group_20__1__Impl rule__StaRepository__Group_20__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__1__Impl_in_rule__StaRepository__Group_20__13532);
+            rule__StaRepository__Group_20__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__2_in_rule__StaRepository__Group_20__13535);
+            rule__StaRepository__Group_20__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__1"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1764:1: rule__StaRepository__Group_20__1__Impl : ( '{' ) ;
+    public final void rule__StaRepository__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1768:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1769:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1769:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1770:1: '{'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_20_1()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__StaRepository__Group_20__1__Impl3563); 
+             after(grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_20_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__1__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1783:1: rule__StaRepository__Group_20__2 : rule__StaRepository__Group_20__2__Impl rule__StaRepository__Group_20__3 ;
+    public final void rule__StaRepository__Group_20__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1787:1: ( rule__StaRepository__Group_20__2__Impl rule__StaRepository__Group_20__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1788:2: rule__StaRepository__Group_20__2__Impl rule__StaRepository__Group_20__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__2__Impl_in_rule__StaRepository__Group_20__23594);
+            rule__StaRepository__Group_20__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__3_in_rule__StaRepository__Group_20__23597);
+            rule__StaRepository__Group_20__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__2"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1795:1: rule__StaRepository__Group_20__2__Impl : ( ( rule__StaRepository__ParametersAssignment_20_2 ) ) ;
+    public final void rule__StaRepository__Group_20__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1799:1: ( ( ( rule__StaRepository__ParametersAssignment_20_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1800:1: ( ( rule__StaRepository__ParametersAssignment_20_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1800:1: ( ( rule__StaRepository__ParametersAssignment_20_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1801:1: ( rule__StaRepository__ParametersAssignment_20_2 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1802:1: ( rule__StaRepository__ParametersAssignment_20_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1802:2: rule__StaRepository__ParametersAssignment_20_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__ParametersAssignment_20_2_in_rule__StaRepository__Group_20__2__Impl3624);
+            rule__StaRepository__ParametersAssignment_20_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__2__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1812:1: rule__StaRepository__Group_20__3 : rule__StaRepository__Group_20__3__Impl rule__StaRepository__Group_20__4 ;
+    public final void rule__StaRepository__Group_20__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1816:1: ( rule__StaRepository__Group_20__3__Impl rule__StaRepository__Group_20__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1817:2: rule__StaRepository__Group_20__3__Impl rule__StaRepository__Group_20__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__3__Impl_in_rule__StaRepository__Group_20__33654);
+            rule__StaRepository__Group_20__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__4_in_rule__StaRepository__Group_20__33657);
+            rule__StaRepository__Group_20__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__3"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1824:1: rule__StaRepository__Group_20__3__Impl : ( ( rule__StaRepository__Group_20_3__0 )* ) ;
+    public final void rule__StaRepository__Group_20__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1828:1: ( ( ( rule__StaRepository__Group_20_3__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1829:1: ( ( rule__StaRepository__Group_20_3__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1829:1: ( ( rule__StaRepository__Group_20_3__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1830:1: ( rule__StaRepository__Group_20_3__0 )*
+            {
+             before(grammarAccess.getStaRepositoryAccess().getGroup_20_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1831:1: ( rule__StaRepository__Group_20_3__0 )*
+            loop9:
+            do {
+                int alt9=2;
+                int LA9_0 = input.LA(1);
+
+                if ( (LA9_0==20) ) {
+                    alt9=1;
+                }
+
+
+                switch (alt9) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1831:2: rule__StaRepository__Group_20_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20_3__0_in_rule__StaRepository__Group_20__3__Impl3684);
+            	    rule__StaRepository__Group_20_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop9;
+                }
+            } while (true);
+
+             after(grammarAccess.getStaRepositoryAccess().getGroup_20_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__3__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1841:1: rule__StaRepository__Group_20__4 : rule__StaRepository__Group_20__4__Impl ;
+    public final void rule__StaRepository__Group_20__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1845:1: ( rule__StaRepository__Group_20__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1846:2: rule__StaRepository__Group_20__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20__4__Impl_in_rule__StaRepository__Group_20__43715);
+            rule__StaRepository__Group_20__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__4"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1852:1: rule__StaRepository__Group_20__4__Impl : ( '}' ) ;
+    public final void rule__StaRepository__Group_20__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1856:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1857:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1857:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1858:1: '}'
+            {
+             before(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_20_4()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__StaRepository__Group_20__4__Impl3743); 
+             after(grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_20_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20__4__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1881:1: rule__StaRepository__Group_20_3__0 : rule__StaRepository__Group_20_3__0__Impl rule__StaRepository__Group_20_3__1 ;
+    public final void rule__StaRepository__Group_20_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1885:1: ( rule__StaRepository__Group_20_3__0__Impl rule__StaRepository__Group_20_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1886:2: rule__StaRepository__Group_20_3__0__Impl rule__StaRepository__Group_20_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20_3__0__Impl_in_rule__StaRepository__Group_20_3__03784);
+            rule__StaRepository__Group_20_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20_3__1_in_rule__StaRepository__Group_20_3__03787);
+            rule__StaRepository__Group_20_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20_3__0"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1893:1: rule__StaRepository__Group_20_3__0__Impl : ( ',' ) ;
+    public final void rule__StaRepository__Group_20_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1897:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1898:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1898:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1899:1: ','
+            {
+             before(grammarAccess.getStaRepositoryAccess().getCommaKeyword_20_3_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__StaRepository__Group_20_3__0__Impl3815); 
+             after(grammarAccess.getStaRepositoryAccess().getCommaKeyword_20_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20_3__0__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1912:1: rule__StaRepository__Group_20_3__1 : rule__StaRepository__Group_20_3__1__Impl ;
+    public final void rule__StaRepository__Group_20_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1916:1: ( rule__StaRepository__Group_20_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1917:2: rule__StaRepository__Group_20_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__Group_20_3__1__Impl_in_rule__StaRepository__Group_20_3__13846);
+            rule__StaRepository__Group_20_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20_3__1"
+
+
+    // $ANTLR start "rule__StaRepository__Group_20_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1923:1: rule__StaRepository__Group_20_3__1__Impl : ( ( rule__StaRepository__ParametersAssignment_20_3_1 ) ) ;
+    public final void rule__StaRepository__Group_20_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1927:1: ( ( ( rule__StaRepository__ParametersAssignment_20_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1928:1: ( ( rule__StaRepository__ParametersAssignment_20_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1928:1: ( ( rule__StaRepository__ParametersAssignment_20_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1929:1: ( rule__StaRepository__ParametersAssignment_20_3_1 )
+            {
+             before(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1930:1: ( rule__StaRepository__ParametersAssignment_20_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1930:2: rule__StaRepository__ParametersAssignment_20_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StaRepository__ParametersAssignment_20_3_1_in_rule__StaRepository__Group_20_3__1__Impl3873);
+            rule__StaRepository__ParametersAssignment_20_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__Group_20_3__1__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1944: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1948: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1949:2: rule__Tactic__Group__0__Impl rule__Tactic__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__0__Impl_in_rule__Tactic__Group__03907);
+            rule__Tactic__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__1_in_rule__Tactic__Group__03910);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1956: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1960:1: ( ( 'Tactic' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1961:1: ( 'Tactic' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1961:1: ( 'Tactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1962:1: 'Tactic'
+            {
+             before(grammarAccess.getTacticAccess().getTacticKeyword_0()); 
+            match(input,22,FollowSets000.FOLLOW_22_in_rule__Tactic__Group__0__Impl3938); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1975: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1979: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1980:2: rule__Tactic__Group__1__Impl rule__Tactic__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__1__Impl_in_rule__Tactic__Group__13969);
+            rule__Tactic__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__2_in_rule__Tactic__Group__13972);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1987:1: rule__Tactic__Group__1__Impl : ( ( rule__Tactic__IdAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1991:1: ( ( ( rule__Tactic__IdAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1992:1: ( ( rule__Tactic__IdAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1992:1: ( ( rule__Tactic__IdAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1993:1: ( rule__Tactic__IdAssignment_1 )
+            {
+             before(grammarAccess.getTacticAccess().getIdAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1994:1: ( rule__Tactic__IdAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:1994:2: rule__Tactic__IdAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__IdAssignment_1_in_rule__Tactic__Group__1__Impl3999);
+            rule__Tactic__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getIdAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2004: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2008: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2009:2: rule__Tactic__Group__2__Impl rule__Tactic__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__2__Impl_in_rule__Tactic__Group__24029);
+            rule__Tactic__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__3_in_rule__Tactic__Group__24032);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2016:1: rule__Tactic__Group__2__Impl : ( '{' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2020:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2021:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2021:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2022:1: '{'
+            {
+             before(grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Tactic__Group__2__Impl4060); 
+             after(grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2035: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2039: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2040:2: rule__Tactic__Group__3__Impl rule__Tactic__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__3__Impl_in_rule__Tactic__Group__34091);
+            rule__Tactic__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__4_in_rule__Tactic__Group__34094);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2047:1: rule__Tactic__Group__3__Impl : ( 'name' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2051:1: ( ( 'name' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2052:1: ( 'name' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2052:1: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2053:1: 'name'
+            {
+             before(grammarAccess.getTacticAccess().getNameKeyword_3()); 
+            match(input,15,FollowSets000.FOLLOW_15_in_rule__Tactic__Group__3__Impl4122); 
+             after(grammarAccess.getTacticAccess().getNameKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2066: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2070: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2071:2: rule__Tactic__Group__4__Impl rule__Tactic__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__4__Impl_in_rule__Tactic__Group__44153);
+            rule__Tactic__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__5_in_rule__Tactic__Group__44156);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2078:1: rule__Tactic__Group__4__Impl : ( ( rule__Tactic__NameAssignment_4 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2082:1: ( ( ( rule__Tactic__NameAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2083:1: ( ( rule__Tactic__NameAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2083:1: ( ( rule__Tactic__NameAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2084:1: ( rule__Tactic__NameAssignment_4 )
+            {
+             before(grammarAccess.getTacticAccess().getNameAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2085:1: ( rule__Tactic__NameAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2085:2: rule__Tactic__NameAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__NameAssignment_4_in_rule__Tactic__Group__4__Impl4183);
+            rule__Tactic__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getNameAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2095: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2099: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2100:2: rule__Tactic__Group__5__Impl rule__Tactic__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__5__Impl_in_rule__Tactic__Group__54213);
+            rule__Tactic__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__6_in_rule__Tactic__Group__54216);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2107:1: rule__Tactic__Group__5__Impl : ( ( rule__Tactic__Group_5__0 )? ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2111:1: ( ( ( rule__Tactic__Group_5__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2112:1: ( ( rule__Tactic__Group_5__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2112:1: ( ( rule__Tactic__Group_5__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2113:1: ( rule__Tactic__Group_5__0 )?
+            {
+             before(grammarAccess.getTacticAccess().getGroup_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2114:1: ( rule__Tactic__Group_5__0 )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==24) ) {
+                alt10=1;
+            }
+            switch (alt10) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2114:2: rule__Tactic__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__0_in_rule__Tactic__Group__5__Impl4243);
+                    rule__Tactic__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTacticAccess().getGroup_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2124: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2128: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2129:2: rule__Tactic__Group__6__Impl rule__Tactic__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__6__Impl_in_rule__Tactic__Group__64274);
+            rule__Tactic__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__7_in_rule__Tactic__Group__64277);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2136: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2140:1: ( ( ( rule__Tactic__Group_6__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2141:1: ( ( rule__Tactic__Group_6__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2141:1: ( ( rule__Tactic__Group_6__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2142: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2143:1: ( rule__Tactic__Group_6__0 )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==27) ) {
+                alt11=1;
+            }
+            switch (alt11) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2143:2: rule__Tactic__Group_6__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__0_in_rule__Tactic__Group__6__Impl4304);
+                    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2153: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2157: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2158:2: rule__Tactic__Group__7__Impl rule__Tactic__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__7__Impl_in_rule__Tactic__Group__74335);
+            rule__Tactic__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__8_in_rule__Tactic__Group__74338);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2165:1: rule__Tactic__Group__7__Impl : ( 'implementedPlan' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2169:1: ( ( 'implementedPlan' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2170:1: ( 'implementedPlan' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2170:1: ( 'implementedPlan' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2171:1: 'implementedPlan'
+            {
+             before(grammarAccess.getTacticAccess().getImplementedPlanKeyword_7()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__Tactic__Group__7__Impl4366); 
+             after(grammarAccess.getTacticAccess().getImplementedPlanKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2184:1: rule__Tactic__Group__8 : rule__Tactic__Group__8__Impl rule__Tactic__Group__9 ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2188:1: ( rule__Tactic__Group__8__Impl rule__Tactic__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2189:2: rule__Tactic__Group__8__Impl rule__Tactic__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__8__Impl_in_rule__Tactic__Group__84397);
+            rule__Tactic__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__9_in_rule__Tactic__Group__84400);
+            rule__Tactic__Group__9();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2196:1: rule__Tactic__Group__8__Impl : ( ( rule__Tactic__ImplementedPlanAssignment_8 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2200:1: ( ( ( rule__Tactic__ImplementedPlanAssignment_8 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2201:1: ( ( rule__Tactic__ImplementedPlanAssignment_8 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2201:1: ( ( rule__Tactic__ImplementedPlanAssignment_8 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2202:1: ( rule__Tactic__ImplementedPlanAssignment_8 )
+            {
+             before(grammarAccess.getTacticAccess().getImplementedPlanAssignment_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2203:1: ( rule__Tactic__ImplementedPlanAssignment_8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2203:2: rule__Tactic__ImplementedPlanAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__ImplementedPlanAssignment_8_in_rule__Tactic__Group__8__Impl4427);
+            rule__Tactic__ImplementedPlanAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getImplementedPlanAssignment_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__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2213:1: rule__Tactic__Group__9 : rule__Tactic__Group__9__Impl ;
+    public final void rule__Tactic__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2217:1: ( rule__Tactic__Group__9__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2218:2: rule__Tactic__Group__9__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group__9__Impl_in_rule__Tactic__Group__94457);
+            rule__Tactic__Group__9__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__9"
+
+
+    // $ANTLR start "rule__Tactic__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2224:1: rule__Tactic__Group__9__Impl : ( '}' ) ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2228:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2229:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2229:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2230:1: '}'
+            {
+             before(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_9()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Tactic__Group__9__Impl4485); 
+             after(grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2263:1: rule__Tactic__Group_5__0 : rule__Tactic__Group_5__0__Impl rule__Tactic__Group_5__1 ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2267:1: ( rule__Tactic__Group_5__0__Impl rule__Tactic__Group_5__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2268:2: rule__Tactic__Group_5__0__Impl rule__Tactic__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__0__Impl_in_rule__Tactic__Group_5__04536);
+            rule__Tactic__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__1_in_rule__Tactic__Group_5__04539);
+            rule__Tactic__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__0"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2275:1: rule__Tactic__Group_5__0__Impl : ( 'inputParams' ) ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2279:1: ( ( 'inputParams' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2280:1: ( 'inputParams' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2280:1: ( 'inputParams' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2281:1: 'inputParams'
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsKeyword_5_0()); 
+            match(input,24,FollowSets000.FOLLOW_24_in_rule__Tactic__Group_5__0__Impl4567); 
+             after(grammarAccess.getTacticAccess().getInputParamsKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2294:1: rule__Tactic__Group_5__1 : rule__Tactic__Group_5__1__Impl rule__Tactic__Group_5__2 ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2298:1: ( rule__Tactic__Group_5__1__Impl rule__Tactic__Group_5__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2299:2: rule__Tactic__Group_5__1__Impl rule__Tactic__Group_5__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__1__Impl_in_rule__Tactic__Group_5__14598);
+            rule__Tactic__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__2_in_rule__Tactic__Group_5__14601);
+            rule__Tactic__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__1"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2306:1: rule__Tactic__Group_5__1__Impl : ( '(' ) ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2310:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2311:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2311:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2312:1: '('
+            {
+             before(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_5_1()); 
+            match(input,25,FollowSets000.FOLLOW_25_in_rule__Tactic__Group_5__1__Impl4629); 
+             after(grammarAccess.getTacticAccess().getLeftParenthesisKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2325:1: rule__Tactic__Group_5__2 : rule__Tactic__Group_5__2__Impl rule__Tactic__Group_5__3 ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2329:1: ( rule__Tactic__Group_5__2__Impl rule__Tactic__Group_5__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2330:2: rule__Tactic__Group_5__2__Impl rule__Tactic__Group_5__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__2__Impl_in_rule__Tactic__Group_5__24660);
+            rule__Tactic__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__3_in_rule__Tactic__Group_5__24663);
+            rule__Tactic__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__2"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2337:1: rule__Tactic__Group_5__2__Impl : ( ( rule__Tactic__InputParamsAssignment_5_2 ) ) ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2341:1: ( ( ( rule__Tactic__InputParamsAssignment_5_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2342:1: ( ( rule__Tactic__InputParamsAssignment_5_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2342:1: ( ( rule__Tactic__InputParamsAssignment_5_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2343:1: ( rule__Tactic__InputParamsAssignment_5_2 )
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsAssignment_5_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2344:1: ( rule__Tactic__InputParamsAssignment_5_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2344:2: rule__Tactic__InputParamsAssignment_5_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__InputParamsAssignment_5_2_in_rule__Tactic__Group_5__2__Impl4690);
+            rule__Tactic__InputParamsAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getInputParamsAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2354:1: rule__Tactic__Group_5__3 : rule__Tactic__Group_5__3__Impl rule__Tactic__Group_5__4 ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2358:1: ( rule__Tactic__Group_5__3__Impl rule__Tactic__Group_5__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2359:2: rule__Tactic__Group_5__3__Impl rule__Tactic__Group_5__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__3__Impl_in_rule__Tactic__Group_5__34720);
+            rule__Tactic__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__4_in_rule__Tactic__Group_5__34723);
+            rule__Tactic__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__3"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2366:1: rule__Tactic__Group_5__3__Impl : ( ( rule__Tactic__Group_5_3__0 )* ) ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2370:1: ( ( ( rule__Tactic__Group_5_3__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2371:1: ( ( rule__Tactic__Group_5_3__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2371:1: ( ( rule__Tactic__Group_5_3__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2372:1: ( rule__Tactic__Group_5_3__0 )*
+            {
+             before(grammarAccess.getTacticAccess().getGroup_5_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2373:1: ( rule__Tactic__Group_5_3__0 )*
+            loop12:
+            do {
+                int alt12=2;
+                int LA12_0 = input.LA(1);
+
+                if ( (LA12_0==20) ) {
+                    alt12=1;
+                }
+
+
+                switch (alt12) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2373:2: rule__Tactic__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5_3__0_in_rule__Tactic__Group_5__3__Impl4750);
+            	    rule__Tactic__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop12;
+                }
+            } while (true);
+
+             after(grammarAccess.getTacticAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2383:1: rule__Tactic__Group_5__4 : rule__Tactic__Group_5__4__Impl ;
+    public final void rule__Tactic__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2387:1: ( rule__Tactic__Group_5__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2388:2: rule__Tactic__Group_5__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5__4__Impl_in_rule__Tactic__Group_5__44781);
+            rule__Tactic__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__4"
+
+
+    // $ANTLR start "rule__Tactic__Group_5__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2394:1: rule__Tactic__Group_5__4__Impl : ( ')' ) ;
+    public final void rule__Tactic__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2398:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2399:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2399:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2400:1: ')'
+            {
+             before(grammarAccess.getTacticAccess().getRightParenthesisKeyword_5_4()); 
+            match(input,26,FollowSets000.FOLLOW_26_in_rule__Tactic__Group_5__4__Impl4809); 
+             after(grammarAccess.getTacticAccess().getRightParenthesisKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_5_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2423:1: rule__Tactic__Group_5_3__0 : rule__Tactic__Group_5_3__0__Impl rule__Tactic__Group_5_3__1 ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2427:1: ( rule__Tactic__Group_5_3__0__Impl rule__Tactic__Group_5_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2428:2: rule__Tactic__Group_5_3__0__Impl rule__Tactic__Group_5_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5_3__0__Impl_in_rule__Tactic__Group_5_3__04850);
+            rule__Tactic__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5_3__1_in_rule__Tactic__Group_5_3__04853);
+            rule__Tactic__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5_3__0"
+
+
+    // $ANTLR start "rule__Tactic__Group_5_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2435:1: rule__Tactic__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2439:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2440:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2440:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2441:1: ','
+            {
+             before(grammarAccess.getTacticAccess().getCommaKeyword_5_3_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__Tactic__Group_5_3__0__Impl4881); 
+             after(grammarAccess.getTacticAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_5_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2454:1: rule__Tactic__Group_5_3__1 : rule__Tactic__Group_5_3__1__Impl ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2458:1: ( rule__Tactic__Group_5_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2459:2: rule__Tactic__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_5_3__1__Impl_in_rule__Tactic__Group_5_3__14912);
+            rule__Tactic__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5_3__1"
+
+
+    // $ANTLR start "rule__Tactic__Group_5_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2465:1: rule__Tactic__Group_5_3__1__Impl : ( ( rule__Tactic__InputParamsAssignment_5_3_1 ) ) ;
+    public final void rule__Tactic__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2469:1: ( ( ( rule__Tactic__InputParamsAssignment_5_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2470:1: ( ( rule__Tactic__InputParamsAssignment_5_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2470:1: ( ( rule__Tactic__InputParamsAssignment_5_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2471:1: ( rule__Tactic__InputParamsAssignment_5_3_1 )
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsAssignment_5_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2472:1: ( rule__Tactic__InputParamsAssignment_5_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2472:2: rule__Tactic__InputParamsAssignment_5_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__InputParamsAssignment_5_3_1_in_rule__Tactic__Group_5_3__1__Impl4939);
+            rule__Tactic__InputParamsAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getInputParamsAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__Tactic__Group_6__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2486: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2490: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2491: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__04973);
+            rule__Tactic__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__1_in_rule__Tactic__Group_6__04976);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2498:1: rule__Tactic__Group_6__0__Impl : ( 'outputParam' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2502:1: ( ( 'outputParam' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2503:1: ( 'outputParam' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2503:1: ( 'outputParam' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2504:1: 'outputParam'
+            {
+             before(grammarAccess.getTacticAccess().getOutputParamKeyword_6_0()); 
+            match(input,27,FollowSets000.FOLLOW_27_in_rule__Tactic__Group_6__0__Impl5004); 
+             after(grammarAccess.getTacticAccess().getOutputParamKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2517:1: rule__Tactic__Group_6__1 : rule__Tactic__Group_6__1__Impl ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2521:1: ( rule__Tactic__Group_6__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2522:2: rule__Tactic__Group_6__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__Group_6__1__Impl_in_rule__Tactic__Group_6__15035);
+            rule__Tactic__Group_6__1__Impl();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2528:1: rule__Tactic__Group_6__1__Impl : ( ( rule__Tactic__OutputParamAssignment_6_1 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2532:1: ( ( ( rule__Tactic__OutputParamAssignment_6_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2533:1: ( ( rule__Tactic__OutputParamAssignment_6_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2533:1: ( ( rule__Tactic__OutputParamAssignment_6_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2534:1: ( rule__Tactic__OutputParamAssignment_6_1 )
+            {
+             before(grammarAccess.getTacticAccess().getOutputParamAssignment_6_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2535:1: ( rule__Tactic__OutputParamAssignment_6_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2535:2: rule__Tactic__OutputParamAssignment_6_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Tactic__OutputParamAssignment_6_1_in_rule__Tactic__Group_6__1__Impl5062);
+            rule__Tactic__OutputParamAssignment_6_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTacticAccess().getOutputParamAssignment_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__Action__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2549: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2553: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2554:2: rule__Action__Group__0__Impl rule__Action__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__0__Impl_in_rule__Action__Group__05096);
+            rule__Action__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__1_in_rule__Action__Group__05099);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2561: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2565:1: ( ( 'Action' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2566:1: ( 'Action' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2566:1: ( 'Action' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2567:1: 'Action'
+            {
+             before(grammarAccess.getActionAccess().getActionKeyword_0()); 
+            match(input,28,FollowSets000.FOLLOW_28_in_rule__Action__Group__0__Impl5127); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2580: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2584: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2585:2: rule__Action__Group__1__Impl rule__Action__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__1__Impl_in_rule__Action__Group__15158);
+            rule__Action__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__2_in_rule__Action__Group__15161);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2592:1: rule__Action__Group__1__Impl : ( ( rule__Action__IdAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2596:1: ( ( ( rule__Action__IdAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2597:1: ( ( rule__Action__IdAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2597:1: ( ( rule__Action__IdAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2598:1: ( rule__Action__IdAssignment_1 )
+            {
+             before(grammarAccess.getActionAccess().getIdAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2599:1: ( rule__Action__IdAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2599:2: rule__Action__IdAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__IdAssignment_1_in_rule__Action__Group__1__Impl5188);
+            rule__Action__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getIdAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2609: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2613: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2614:2: rule__Action__Group__2__Impl rule__Action__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__2__Impl_in_rule__Action__Group__25218);
+            rule__Action__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__3_in_rule__Action__Group__25221);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2621:1: rule__Action__Group__2__Impl : ( '{' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2625:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2626:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2626:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2627:1: '{'
+            {
+             before(grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Action__Group__2__Impl5249); 
+             after(grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2640: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2644: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2645:2: rule__Action__Group__3__Impl rule__Action__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__3__Impl_in_rule__Action__Group__35280);
+            rule__Action__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__4_in_rule__Action__Group__35283);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2652:1: rule__Action__Group__3__Impl : ( 'name' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2656:1: ( ( 'name' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2657:1: ( 'name' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2657:1: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2658:1: 'name'
+            {
+             before(grammarAccess.getActionAccess().getNameKeyword_3()); 
+            match(input,15,FollowSets000.FOLLOW_15_in_rule__Action__Group__3__Impl5311); 
+             after(grammarAccess.getActionAccess().getNameKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2671: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2675: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2676:2: rule__Action__Group__4__Impl rule__Action__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__4__Impl_in_rule__Action__Group__45342);
+            rule__Action__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__5_in_rule__Action__Group__45345);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2683:1: rule__Action__Group__4__Impl : ( ( rule__Action__NameAssignment_4 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2687:1: ( ( ( rule__Action__NameAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2688:1: ( ( rule__Action__NameAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2688:1: ( ( rule__Action__NameAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2689:1: ( rule__Action__NameAssignment_4 )
+            {
+             before(grammarAccess.getActionAccess().getNameAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2690:1: ( rule__Action__NameAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2690:2: rule__Action__NameAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__NameAssignment_4_in_rule__Action__Group__4__Impl5372);
+            rule__Action__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getNameAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2700: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2704: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2705:2: rule__Action__Group__5__Impl rule__Action__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__5__Impl_in_rule__Action__Group__55402);
+            rule__Action__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__6_in_rule__Action__Group__55405);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2712:1: rule__Action__Group__5__Impl : ( ( rule__Action__Group_5__0 )? ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2716:1: ( ( ( rule__Action__Group_5__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2717:1: ( ( rule__Action__Group_5__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2717:1: ( ( rule__Action__Group_5__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2718:1: ( rule__Action__Group_5__0 )?
+            {
+             before(grammarAccess.getActionAccess().getGroup_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2719:1: ( rule__Action__Group_5__0 )?
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0==27) ) {
+                alt13=1;
+            }
+            switch (alt13) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2719:2: rule__Action__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Action__Group_5__0_in_rule__Action__Group__5__Impl5432);
+                    rule__Action__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getActionAccess().getGroup_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2729: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2733: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2734:2: rule__Action__Group__6__Impl rule__Action__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__6__Impl_in_rule__Action__Group__65463);
+            rule__Action__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__7_in_rule__Action__Group__65466);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2741:1: rule__Action__Group__6__Impl : ( ( rule__Action__Group_6__0 )? ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2745:1: ( ( ( rule__Action__Group_6__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2746:1: ( ( rule__Action__Group_6__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2746:1: ( ( rule__Action__Group_6__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2747:1: ( rule__Action__Group_6__0 )?
+            {
+             before(grammarAccess.getActionAccess().getGroup_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2748:1: ( rule__Action__Group_6__0 )?
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+
+            if ( (LA14_0==24) ) {
+                alt14=1;
+            }
+            switch (alt14) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2748:2: rule__Action__Group_6__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__0_in_rule__Action__Group__6__Impl5493);
+                    rule__Action__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getActionAccess().getGroup_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2758: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2762: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2763:2: rule__Action__Group__7__Impl rule__Action__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__7__Impl_in_rule__Action__Group__75524);
+            rule__Action__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__8_in_rule__Action__Group__75527);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2770: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2774:1: ( ( 'referredAdaptationPoint' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2775:1: ( 'referredAdaptationPoint' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2775:1: ( 'referredAdaptationPoint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2776:1: 'referredAdaptationPoint'
+            {
+             before(grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__Action__Group__7__Impl5555); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2789: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2793: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2794:2: rule__Action__Group__8__Impl rule__Action__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__8__Impl_in_rule__Action__Group__85586);
+            rule__Action__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__9_in_rule__Action__Group__85589);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2801:1: rule__Action__Group__8__Impl : ( ( rule__Action__ReferredAdaptationPointAssignment_8 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2805:1: ( ( ( rule__Action__ReferredAdaptationPointAssignment_8 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2806:1: ( ( rule__Action__ReferredAdaptationPointAssignment_8 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2806:1: ( ( rule__Action__ReferredAdaptationPointAssignment_8 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2807:1: ( rule__Action__ReferredAdaptationPointAssignment_8 )
+            {
+             before(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2808:1: ( rule__Action__ReferredAdaptationPointAssignment_8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2808:2: rule__Action__ReferredAdaptationPointAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__ReferredAdaptationPointAssignment_8_in_rule__Action__Group__8__Impl5616);
+            rule__Action__ReferredAdaptationPointAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2818:1: rule__Action__Group__9 : rule__Action__Group__9__Impl ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2822:1: ( rule__Action__Group__9__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2823:2: rule__Action__Group__9__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group__9__Impl_in_rule__Action__Group__95646);
+            rule__Action__Group__9__Impl();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2829:1: rule__Action__Group__9__Impl : ( '}' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2833:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2834:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2834:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2835:1: '}'
+            {
+             before(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_9()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Action__Group__9__Impl5674); 
+             after(grammarAccess.getActionAccess().getRightCurlyBracketKeyword_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_5__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2868:1: rule__Action__Group_5__0 : rule__Action__Group_5__0__Impl rule__Action__Group_5__1 ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2872:1: ( rule__Action__Group_5__0__Impl rule__Action__Group_5__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2873:2: rule__Action__Group_5__0__Impl rule__Action__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_5__0__Impl_in_rule__Action__Group_5__05725);
+            rule__Action__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_5__1_in_rule__Action__Group_5__05728);
+            rule__Action__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_5__0"
+
+
+    // $ANTLR start "rule__Action__Group_5__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2880:1: rule__Action__Group_5__0__Impl : ( 'outputParam' ) ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2884:1: ( ( 'outputParam' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2885:1: ( 'outputParam' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2885:1: ( 'outputParam' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2886:1: 'outputParam'
+            {
+             before(grammarAccess.getActionAccess().getOutputParamKeyword_5_0()); 
+            match(input,27,FollowSets000.FOLLOW_27_in_rule__Action__Group_5__0__Impl5756); 
+             after(grammarAccess.getActionAccess().getOutputParamKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_5__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2899:1: rule__Action__Group_5__1 : rule__Action__Group_5__1__Impl ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2903:1: ( rule__Action__Group_5__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2904:2: rule__Action__Group_5__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_5__1__Impl_in_rule__Action__Group_5__15787);
+            rule__Action__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_5__1"
+
+
+    // $ANTLR start "rule__Action__Group_5__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2910:1: rule__Action__Group_5__1__Impl : ( ( rule__Action__OutputParamAssignment_5_1 ) ) ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2914:1: ( ( ( rule__Action__OutputParamAssignment_5_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2915:1: ( ( rule__Action__OutputParamAssignment_5_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2915:1: ( ( rule__Action__OutputParamAssignment_5_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2916:1: ( rule__Action__OutputParamAssignment_5_1 )
+            {
+             before(grammarAccess.getActionAccess().getOutputParamAssignment_5_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2917:1: ( rule__Action__OutputParamAssignment_5_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2917:2: rule__Action__OutputParamAssignment_5_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__OutputParamAssignment_5_1_in_rule__Action__Group_5__1__Impl5814);
+            rule__Action__OutputParamAssignment_5_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getOutputParamAssignment_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_6__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2931:1: rule__Action__Group_6__0 : rule__Action__Group_6__0__Impl rule__Action__Group_6__1 ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2935:1: ( rule__Action__Group_6__0__Impl rule__Action__Group_6__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2936:2: rule__Action__Group_6__0__Impl rule__Action__Group_6__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__0__Impl_in_rule__Action__Group_6__05848);
+            rule__Action__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__1_in_rule__Action__Group_6__05851);
+            rule__Action__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__0"
+
+
+    // $ANTLR start "rule__Action__Group_6__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2943:1: rule__Action__Group_6__0__Impl : ( 'inputParams' ) ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2947:1: ( ( 'inputParams' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2948:1: ( 'inputParams' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2948:1: ( 'inputParams' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2949:1: 'inputParams'
+            {
+             before(grammarAccess.getActionAccess().getInputParamsKeyword_6_0()); 
+            match(input,24,FollowSets000.FOLLOW_24_in_rule__Action__Group_6__0__Impl5879); 
+             after(grammarAccess.getActionAccess().getInputParamsKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_6__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2962:1: rule__Action__Group_6__1 : rule__Action__Group_6__1__Impl rule__Action__Group_6__2 ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2966:1: ( rule__Action__Group_6__1__Impl rule__Action__Group_6__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2967:2: rule__Action__Group_6__1__Impl rule__Action__Group_6__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__1__Impl_in_rule__Action__Group_6__15910);
+            rule__Action__Group_6__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__2_in_rule__Action__Group_6__15913);
+            rule__Action__Group_6__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__1"
+
+
+    // $ANTLR start "rule__Action__Group_6__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2974:1: rule__Action__Group_6__1__Impl : ( '(' ) ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2978:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2979:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2979:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2980:1: '('
+            {
+             before(grammarAccess.getActionAccess().getLeftParenthesisKeyword_6_1()); 
+            match(input,25,FollowSets000.FOLLOW_25_in_rule__Action__Group_6__1__Impl5941); 
+             after(grammarAccess.getActionAccess().getLeftParenthesisKeyword_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_6__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2993:1: rule__Action__Group_6__2 : rule__Action__Group_6__2__Impl rule__Action__Group_6__3 ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2997:1: ( rule__Action__Group_6__2__Impl rule__Action__Group_6__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:2998:2: rule__Action__Group_6__2__Impl rule__Action__Group_6__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__2__Impl_in_rule__Action__Group_6__25972);
+            rule__Action__Group_6__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__3_in_rule__Action__Group_6__25975);
+            rule__Action__Group_6__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__2"
+
+
+    // $ANTLR start "rule__Action__Group_6__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3005:1: rule__Action__Group_6__2__Impl : ( ( rule__Action__InputParamsAssignment_6_2 ) ) ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3009:1: ( ( ( rule__Action__InputParamsAssignment_6_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3010:1: ( ( rule__Action__InputParamsAssignment_6_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3010:1: ( ( rule__Action__InputParamsAssignment_6_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3011:1: ( rule__Action__InputParamsAssignment_6_2 )
+            {
+             before(grammarAccess.getActionAccess().getInputParamsAssignment_6_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3012:1: ( rule__Action__InputParamsAssignment_6_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3012:2: rule__Action__InputParamsAssignment_6_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__InputParamsAssignment_6_2_in_rule__Action__Group_6__2__Impl6002);
+            rule__Action__InputParamsAssignment_6_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getInputParamsAssignment_6_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_6__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3022:1: rule__Action__Group_6__3 : rule__Action__Group_6__3__Impl rule__Action__Group_6__4 ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3026:1: ( rule__Action__Group_6__3__Impl rule__Action__Group_6__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3027:2: rule__Action__Group_6__3__Impl rule__Action__Group_6__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__3__Impl_in_rule__Action__Group_6__36032);
+            rule__Action__Group_6__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__4_in_rule__Action__Group_6__36035);
+            rule__Action__Group_6__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__3"
+
+
+    // $ANTLR start "rule__Action__Group_6__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3034:1: rule__Action__Group_6__3__Impl : ( ( rule__Action__Group_6_3__0 )* ) ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3038:1: ( ( ( rule__Action__Group_6_3__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3039:1: ( ( rule__Action__Group_6_3__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3039:1: ( ( rule__Action__Group_6_3__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3040:1: ( rule__Action__Group_6_3__0 )*
+            {
+             before(grammarAccess.getActionAccess().getGroup_6_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3041:1: ( rule__Action__Group_6_3__0 )*
+            loop15:
+            do {
+                int alt15=2;
+                int LA15_0 = input.LA(1);
+
+                if ( (LA15_0==20) ) {
+                    alt15=1;
+                }
+
+
+                switch (alt15) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3041:2: rule__Action__Group_6_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6_3__0_in_rule__Action__Group_6__3__Impl6062);
+            	    rule__Action__Group_6_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop15;
+                }
+            } while (true);
+
+             after(grammarAccess.getActionAccess().getGroup_6_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__3__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_6__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3051:1: rule__Action__Group_6__4 : rule__Action__Group_6__4__Impl ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3055:1: ( rule__Action__Group_6__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3056:2: rule__Action__Group_6__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6__4__Impl_in_rule__Action__Group_6__46093);
+            rule__Action__Group_6__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__4"
+
+
+    // $ANTLR start "rule__Action__Group_6__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3062:1: rule__Action__Group_6__4__Impl : ( ')' ) ;
+    public final void rule__Action__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3066:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3067:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3067:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3068:1: ')'
+            {
+             before(grammarAccess.getActionAccess().getRightParenthesisKeyword_6_4()); 
+            match(input,26,FollowSets000.FOLLOW_26_in_rule__Action__Group_6__4__Impl6121); 
+             after(grammarAccess.getActionAccess().getRightParenthesisKeyword_6_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6__4__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_6_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3091:1: rule__Action__Group_6_3__0 : rule__Action__Group_6_3__0__Impl rule__Action__Group_6_3__1 ;
+    public final void rule__Action__Group_6_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3095:1: ( rule__Action__Group_6_3__0__Impl rule__Action__Group_6_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3096:2: rule__Action__Group_6_3__0__Impl rule__Action__Group_6_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6_3__0__Impl_in_rule__Action__Group_6_3__06162);
+            rule__Action__Group_6_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6_3__1_in_rule__Action__Group_6_3__06165);
+            rule__Action__Group_6_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6_3__0"
+
+
+    // $ANTLR start "rule__Action__Group_6_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3103:1: rule__Action__Group_6_3__0__Impl : ( ',' ) ;
+    public final void rule__Action__Group_6_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3107:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3108:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3108:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3109:1: ','
+            {
+             before(grammarAccess.getActionAccess().getCommaKeyword_6_3_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__Action__Group_6_3__0__Impl6193); 
+             after(grammarAccess.getActionAccess().getCommaKeyword_6_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6_3__0__Impl"
+
+
+    // $ANTLR start "rule__Action__Group_6_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3122:1: rule__Action__Group_6_3__1 : rule__Action__Group_6_3__1__Impl ;
+    public final void rule__Action__Group_6_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3126:1: ( rule__Action__Group_6_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3127:2: rule__Action__Group_6_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__Group_6_3__1__Impl_in_rule__Action__Group_6_3__16224);
+            rule__Action__Group_6_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6_3__1"
+
+
+    // $ANTLR start "rule__Action__Group_6_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3133:1: rule__Action__Group_6_3__1__Impl : ( ( rule__Action__InputParamsAssignment_6_3_1 ) ) ;
+    public final void rule__Action__Group_6_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3137:1: ( ( ( rule__Action__InputParamsAssignment_6_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3138:1: ( ( rule__Action__InputParamsAssignment_6_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3138:1: ( ( rule__Action__InputParamsAssignment_6_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3139:1: ( rule__Action__InputParamsAssignment_6_3_1 )
+            {
+             before(grammarAccess.getActionAccess().getInputParamsAssignment_6_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3140:1: ( rule__Action__InputParamsAssignment_6_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3140:2: rule__Action__InputParamsAssignment_6_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Action__InputParamsAssignment_6_3_1_in_rule__Action__Group_6_3__1__Impl6251);
+            rule__Action__InputParamsAssignment_6_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionAccess().getInputParamsAssignment_6_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__Group_6_3__1__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3154: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3158: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3159:2: rule__Strategy__Group__0__Impl rule__Strategy__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__0__Impl_in_rule__Strategy__Group__06285);
+            rule__Strategy__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__1_in_rule__Strategy__Group__06288);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3166:1: rule__Strategy__Group__0__Impl : ( 'Strategy' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3170:1: ( ( 'Strategy' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3171:1: ( 'Strategy' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3171:1: ( 'Strategy' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3172:1: 'Strategy'
+            {
+             before(grammarAccess.getStrategyAccess().getStrategyKeyword_0()); 
+            match(input,30,FollowSets000.FOLLOW_30_in_rule__Strategy__Group__0__Impl6316); 
+             after(grammarAccess.getStrategyAccess().getStrategyKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3185: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3189: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3190:2: rule__Strategy__Group__1__Impl rule__Strategy__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__1__Impl_in_rule__Strategy__Group__16347);
+            rule__Strategy__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__2_in_rule__Strategy__Group__16350);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3197:1: rule__Strategy__Group__1__Impl : ( ( rule__Strategy__IdAssignment_1 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3201:1: ( ( ( rule__Strategy__IdAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3202:1: ( ( rule__Strategy__IdAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3202:1: ( ( rule__Strategy__IdAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3203:1: ( rule__Strategy__IdAssignment_1 )
+            {
+             before(grammarAccess.getStrategyAccess().getIdAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3204:1: ( rule__Strategy__IdAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3204:2: rule__Strategy__IdAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__IdAssignment_1_in_rule__Strategy__Group__1__Impl6377);
+            rule__Strategy__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getIdAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3214: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3218: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3219:2: rule__Strategy__Group__2__Impl rule__Strategy__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__2__Impl_in_rule__Strategy__Group__26407);
+            rule__Strategy__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__3_in_rule__Strategy__Group__26410);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3226: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3230:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3231:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3231:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3232:1: '{'
+            {
+             before(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Strategy__Group__2__Impl6438); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3245: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3249: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3250:2: rule__Strategy__Group__3__Impl rule__Strategy__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__3__Impl_in_rule__Strategy__Group__36469);
+            rule__Strategy__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__4_in_rule__Strategy__Group__36472);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3257:1: rule__Strategy__Group__3__Impl : ( 'name' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3261:1: ( ( 'name' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3262:1: ( 'name' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3262:1: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3263:1: 'name'
+            {
+             before(grammarAccess.getStrategyAccess().getNameKeyword_3()); 
+            match(input,15,FollowSets000.FOLLOW_15_in_rule__Strategy__Group__3__Impl6500); 
+             after(grammarAccess.getStrategyAccess().getNameKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3276: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3280: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3281:2: rule__Strategy__Group__4__Impl rule__Strategy__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__4__Impl_in_rule__Strategy__Group__46531);
+            rule__Strategy__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__5_in_rule__Strategy__Group__46534);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3288:1: rule__Strategy__Group__4__Impl : ( ( rule__Strategy__NameAssignment_4 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3292:1: ( ( ( rule__Strategy__NameAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3293:1: ( ( rule__Strategy__NameAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3293:1: ( ( rule__Strategy__NameAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3294:1: ( rule__Strategy__NameAssignment_4 )
+            {
+             before(grammarAccess.getStrategyAccess().getNameAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3295:1: ( rule__Strategy__NameAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3295:2: rule__Strategy__NameAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__NameAssignment_4_in_rule__Strategy__Group__4__Impl6561);
+            rule__Strategy__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getNameAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3305: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3309: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3310:2: rule__Strategy__Group__5__Impl rule__Strategy__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__5__Impl_in_rule__Strategy__Group__56591);
+            rule__Strategy__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__6_in_rule__Strategy__Group__56594);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3317:1: rule__Strategy__Group__5__Impl : ( 'objective' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3321:1: ( ( 'objective' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3322:1: ( 'objective' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3322:1: ( 'objective' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3323:1: 'objective'
+            {
+             before(grammarAccess.getStrategyAccess().getObjectiveKeyword_5()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__Strategy__Group__5__Impl6622); 
+             after(grammarAccess.getStrategyAccess().getObjectiveKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3336: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3340: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3341:2: rule__Strategy__Group__6__Impl rule__Strategy__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__6__Impl_in_rule__Strategy__Group__66653);
+            rule__Strategy__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__7_in_rule__Strategy__Group__66656);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3348:1: rule__Strategy__Group__6__Impl : ( ( rule__Strategy__ObjectiveAssignment_6 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3352:1: ( ( ( rule__Strategy__ObjectiveAssignment_6 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3353:1: ( ( rule__Strategy__ObjectiveAssignment_6 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3353:1: ( ( rule__Strategy__ObjectiveAssignment_6 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3354:1: ( rule__Strategy__ObjectiveAssignment_6 )
+            {
+             before(grammarAccess.getStrategyAccess().getObjectiveAssignment_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3355:1: ( rule__Strategy__ObjectiveAssignment_6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3355:2: rule__Strategy__ObjectiveAssignment_6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__ObjectiveAssignment_6_in_rule__Strategy__Group__6__Impl6683);
+            rule__Strategy__ObjectiveAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getObjectiveAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3365: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3369: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3370:2: rule__Strategy__Group__7__Impl rule__Strategy__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__7__Impl_in_rule__Strategy__Group__76713);
+            rule__Strategy__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__8_in_rule__Strategy__Group__76716);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3377:1: rule__Strategy__Group__7__Impl : ( ( rule__Strategy__Group_7__0 )? ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3381:1: ( ( ( rule__Strategy__Group_7__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3382:1: ( ( rule__Strategy__Group_7__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3382:1: ( ( rule__Strategy__Group_7__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3383:1: ( rule__Strategy__Group_7__0 )?
+            {
+             before(grammarAccess.getStrategyAccess().getGroup_7()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3384:1: ( rule__Strategy__Group_7__0 )?
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+
+            if ( (LA16_0==33) ) {
+                alt16=1;
+            }
+            switch (alt16) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3384:2: rule__Strategy__Group_7__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_7__0_in_rule__Strategy__Group__7__Impl6743);
+                    rule__Strategy__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getGroup_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3394: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3398: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3399:2: rule__Strategy__Group__8__Impl rule__Strategy__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__8__Impl_in_rule__Strategy__Group__86774);
+            rule__Strategy__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__9_in_rule__Strategy__Group__86777);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3406:1: rule__Strategy__Group__8__Impl : ( 'tactics' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3410:1: ( ( 'tactics' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3411:1: ( 'tactics' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3411:1: ( 'tactics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3412:1: 'tactics'
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsKeyword_8()); 
+            match(input,16,FollowSets000.FOLLOW_16_in_rule__Strategy__Group__8__Impl6805); 
+             after(grammarAccess.getStrategyAccess().getTacticsKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3425: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3429: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3430:2: rule__Strategy__Group__9__Impl rule__Strategy__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__9__Impl_in_rule__Strategy__Group__96836);
+            rule__Strategy__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__10_in_rule__Strategy__Group__96839);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3437:1: rule__Strategy__Group__9__Impl : ( '{' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3441:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3442:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3442:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3443:1: '{'
+            {
+             before(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_9()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Strategy__Group__9__Impl6867); 
+             after(grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3456: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3460: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3461:2: rule__Strategy__Group__10__Impl rule__Strategy__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__10__Impl_in_rule__Strategy__Group__106898);
+            rule__Strategy__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__11_in_rule__Strategy__Group__106901);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3468:1: rule__Strategy__Group__10__Impl : ( ( rule__Strategy__TacticsAssignment_10 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3472:1: ( ( ( rule__Strategy__TacticsAssignment_10 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3473:1: ( ( rule__Strategy__TacticsAssignment_10 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3473:1: ( ( rule__Strategy__TacticsAssignment_10 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3474:1: ( rule__Strategy__TacticsAssignment_10 )
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsAssignment_10()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3475:1: ( rule__Strategy__TacticsAssignment_10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3475:2: rule__Strategy__TacticsAssignment_10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__TacticsAssignment_10_in_rule__Strategy__Group__10__Impl6928);
+            rule__Strategy__TacticsAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getTacticsAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3485: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3489: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3490:2: rule__Strategy__Group__11__Impl rule__Strategy__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__11__Impl_in_rule__Strategy__Group__116958);
+            rule__Strategy__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__12_in_rule__Strategy__Group__116961);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3497:1: rule__Strategy__Group__11__Impl : ( ( rule__Strategy__Group_11__0 )* ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3501:1: ( ( ( rule__Strategy__Group_11__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3502:1: ( ( rule__Strategy__Group_11__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3502:1: ( ( rule__Strategy__Group_11__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3503:1: ( rule__Strategy__Group_11__0 )*
+            {
+             before(grammarAccess.getStrategyAccess().getGroup_11()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3504:1: ( rule__Strategy__Group_11__0 )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( (LA17_0==20) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3504:2: rule__Strategy__Group_11__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_11__0_in_rule__Strategy__Group__11__Impl6988);
+            	    rule__Strategy__Group_11__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop17;
+                }
+            } while (true);
+
+             after(grammarAccess.getStrategyAccess().getGroup_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3514: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3518: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3519:2: rule__Strategy__Group__12__Impl rule__Strategy__Group__13
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__12__Impl_in_rule__Strategy__Group__127019);
+            rule__Strategy__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__13_in_rule__Strategy__Group__127022);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3526:1: rule__Strategy__Group__12__Impl : ( '}' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3530:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3531:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3531:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3532:1: '}'
+            {
+             before(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_12()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Strategy__Group__12__Impl7050); 
+             after(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3545: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3549: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3550:2: rule__Strategy__Group__13__Impl rule__Strategy__Group__14
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__13__Impl_in_rule__Strategy__Group__137081);
+            rule__Strategy__Group__13__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__14_in_rule__Strategy__Group__137084);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3557:1: rule__Strategy__Group__13__Impl : ( 'weightingFunction' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3561:1: ( ( 'weightingFunction' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3562:1: ( 'weightingFunction' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3562:1: ( 'weightingFunction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3563:1: 'weightingFunction'
+            {
+             before(grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_13()); 
+            match(input,32,FollowSets000.FOLLOW_32_in_rule__Strategy__Group__13__Impl7112); 
+             after(grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3576: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3580: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3581:2: rule__Strategy__Group__14__Impl rule__Strategy__Group__15
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__14__Impl_in_rule__Strategy__Group__147143);
+            rule__Strategy__Group__14__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__15_in_rule__Strategy__Group__147146);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3588:1: rule__Strategy__Group__14__Impl : ( ( rule__Strategy__WeightingFunctionAssignment_14 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3592:1: ( ( ( rule__Strategy__WeightingFunctionAssignment_14 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3593:1: ( ( rule__Strategy__WeightingFunctionAssignment_14 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3593:1: ( ( rule__Strategy__WeightingFunctionAssignment_14 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3594:1: ( rule__Strategy__WeightingFunctionAssignment_14 )
+            {
+             before(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_14()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3595:1: ( rule__Strategy__WeightingFunctionAssignment_14 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3595:2: rule__Strategy__WeightingFunctionAssignment_14
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__WeightingFunctionAssignment_14_in_rule__Strategy__Group__14__Impl7173);
+            rule__Strategy__WeightingFunctionAssignment_14();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3605:1: rule__Strategy__Group__15 : rule__Strategy__Group__15__Impl ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3609:1: ( rule__Strategy__Group__15__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3610:2: rule__Strategy__Group__15__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group__15__Impl_in_rule__Strategy__Group__157203);
+            rule__Strategy__Group__15__Impl();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3616:1: rule__Strategy__Group__15__Impl : ( '}' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3620:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3621:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3621:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3622:1: '}'
+            {
+             before(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_15()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Strategy__Group__15__Impl7231); 
+             after(grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_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_7__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3667:1: rule__Strategy__Group_7__0 : rule__Strategy__Group_7__0__Impl rule__Strategy__Group_7__1 ;
+    public final void rule__Strategy__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3671:1: ( rule__Strategy__Group_7__0__Impl rule__Strategy__Group_7__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3672:2: rule__Strategy__Group_7__0__Impl rule__Strategy__Group_7__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_7__0__Impl_in_rule__Strategy__Group_7__07294);
+            rule__Strategy__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_7__1_in_rule__Strategy__Group_7__07297);
+            rule__Strategy__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_7__0"
+
+
+    // $ANTLR start "rule__Strategy__Group_7__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3679:1: rule__Strategy__Group_7__0__Impl : ( 'triggeringEvents' ) ;
+    public final void rule__Strategy__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3683:1: ( ( 'triggeringEvents' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3684:1: ( 'triggeringEvents' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3684:1: ( 'triggeringEvents' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3685:1: 'triggeringEvents'
+            {
+             before(grammarAccess.getStrategyAccess().getTriggeringEventsKeyword_7_0()); 
+            match(input,33,FollowSets000.FOLLOW_33_in_rule__Strategy__Group_7__0__Impl7325); 
+             after(grammarAccess.getStrategyAccess().getTriggeringEventsKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group_7__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3698:1: rule__Strategy__Group_7__1 : rule__Strategy__Group_7__1__Impl ;
+    public final void rule__Strategy__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3702:1: ( rule__Strategy__Group_7__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3703:2: rule__Strategy__Group_7__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_7__1__Impl_in_rule__Strategy__Group_7__17356);
+            rule__Strategy__Group_7__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_7__1"
+
+
+    // $ANTLR start "rule__Strategy__Group_7__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3709:1: rule__Strategy__Group_7__1__Impl : ( ( rule__Strategy__TriggeringEventsAssignment_7_1 ) ) ;
+    public final void rule__Strategy__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3713:1: ( ( ( rule__Strategy__TriggeringEventsAssignment_7_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3714:1: ( ( rule__Strategy__TriggeringEventsAssignment_7_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3714:1: ( ( rule__Strategy__TriggeringEventsAssignment_7_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3715:1: ( rule__Strategy__TriggeringEventsAssignment_7_1 )
+            {
+             before(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_7_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3716:1: ( rule__Strategy__TriggeringEventsAssignment_7_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3716:2: rule__Strategy__TriggeringEventsAssignment_7_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__TriggeringEventsAssignment_7_1_in_rule__Strategy__Group_7__1__Impl7383);
+            rule__Strategy__TriggeringEventsAssignment_7_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group_11__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3730:1: rule__Strategy__Group_11__0 : rule__Strategy__Group_11__0__Impl rule__Strategy__Group_11__1 ;
+    public final void rule__Strategy__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3734:1: ( rule__Strategy__Group_11__0__Impl rule__Strategy__Group_11__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3735:2: rule__Strategy__Group_11__0__Impl rule__Strategy__Group_11__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_11__0__Impl_in_rule__Strategy__Group_11__07417);
+            rule__Strategy__Group_11__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_11__1_in_rule__Strategy__Group_11__07420);
+            rule__Strategy__Group_11__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_11__0"
+
+
+    // $ANTLR start "rule__Strategy__Group_11__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3742:1: rule__Strategy__Group_11__0__Impl : ( ',' ) ;
+    public final void rule__Strategy__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3746:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3747:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3747:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3748:1: ','
+            {
+             before(grammarAccess.getStrategyAccess().getCommaKeyword_11_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__Strategy__Group_11__0__Impl7448); 
+             after(grammarAccess.getStrategyAccess().getCommaKeyword_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_11__0__Impl"
+
+
+    // $ANTLR start "rule__Strategy__Group_11__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3761:1: rule__Strategy__Group_11__1 : rule__Strategy__Group_11__1__Impl ;
+    public final void rule__Strategy__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3765:1: ( rule__Strategy__Group_11__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3766:2: rule__Strategy__Group_11__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__Group_11__1__Impl_in_rule__Strategy__Group_11__17479);
+            rule__Strategy__Group_11__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_11__1"
+
+
+    // $ANTLR start "rule__Strategy__Group_11__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3772:1: rule__Strategy__Group_11__1__Impl : ( ( rule__Strategy__TacticsAssignment_11_1 ) ) ;
+    public final void rule__Strategy__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3776:1: ( ( ( rule__Strategy__TacticsAssignment_11_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3777:1: ( ( rule__Strategy__TacticsAssignment_11_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3777:1: ( ( rule__Strategy__TacticsAssignment_11_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3778:1: ( rule__Strategy__TacticsAssignment_11_1 )
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsAssignment_11_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3779:1: ( rule__Strategy__TacticsAssignment_11_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3779:2: rule__Strategy__TacticsAssignment_11_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Strategy__TacticsAssignment_11_1_in_rule__Strategy__Group_11__1__Impl7506);
+            rule__Strategy__TacticsAssignment_11_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getTacticsAssignment_11_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__Group_11__1__Impl"
+
+
+    // $ANTLR start "rule__Parameter__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3793: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3797: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3798:2: rule__Parameter__Group__0__Impl rule__Parameter__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__0__Impl_in_rule__Parameter__Group__07540);
+            rule__Parameter__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__1_in_rule__Parameter__Group__07543);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3805:1: rule__Parameter__Group__0__Impl : ( 'Parameter' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3809:1: ( ( 'Parameter' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3810:1: ( 'Parameter' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3810:1: ( 'Parameter' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3811:1: 'Parameter'
+            {
+             before(grammarAccess.getParameterAccess().getParameterKeyword_0()); 
+            match(input,34,FollowSets000.FOLLOW_34_in_rule__Parameter__Group__0__Impl7571); 
+             after(grammarAccess.getParameterAccess().getParameterKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3824: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3828: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3829:2: rule__Parameter__Group__1__Impl rule__Parameter__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__1__Impl_in_rule__Parameter__Group__17602);
+            rule__Parameter__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__2_in_rule__Parameter__Group__17605);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3836:1: rule__Parameter__Group__1__Impl : ( ( rule__Parameter__NameAssignment_1 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3840:1: ( ( ( rule__Parameter__NameAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3841:1: ( ( rule__Parameter__NameAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3841:1: ( ( rule__Parameter__NameAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3842:1: ( rule__Parameter__NameAssignment_1 )
+            {
+             before(grammarAccess.getParameterAccess().getNameAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3843:1: ( rule__Parameter__NameAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3843:2: rule__Parameter__NameAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__NameAssignment_1_in_rule__Parameter__Group__1__Impl7632);
+            rule__Parameter__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getParameterAccess().getNameAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3853: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3857: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3858:2: rule__Parameter__Group__2__Impl rule__Parameter__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__2__Impl_in_rule__Parameter__Group__27662);
+            rule__Parameter__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__3_in_rule__Parameter__Group__27665);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3865:1: rule__Parameter__Group__2__Impl : ( '{' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3869:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3870:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3870:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3871:1: '{'
+            {
+             before(grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Parameter__Group__2__Impl7693); 
+             after(grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3884: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3888: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3889:2: rule__Parameter__Group__3__Impl rule__Parameter__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__3__Impl_in_rule__Parameter__Group__37724);
+            rule__Parameter__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__4_in_rule__Parameter__Group__37727);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3896:1: rule__Parameter__Group__3__Impl : ( 'type' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3900:1: ( ( 'type' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3901:1: ( 'type' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3901:1: ( 'type' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3902:1: 'type'
+            {
+             before(grammarAccess.getParameterAccess().getTypeKeyword_3()); 
+            match(input,35,FollowSets000.FOLLOW_35_in_rule__Parameter__Group__3__Impl7755); 
+             after(grammarAccess.getParameterAccess().getTypeKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3915: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3919: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3920:2: rule__Parameter__Group__4__Impl rule__Parameter__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__4__Impl_in_rule__Parameter__Group__47786);
+            rule__Parameter__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__5_in_rule__Parameter__Group__47789);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3927:1: rule__Parameter__Group__4__Impl : ( ( rule__Parameter__TypeAssignment_4 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3931:1: ( ( ( rule__Parameter__TypeAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3932:1: ( ( rule__Parameter__TypeAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3932:1: ( ( rule__Parameter__TypeAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3933:1: ( rule__Parameter__TypeAssignment_4 )
+            {
+             before(grammarAccess.getParameterAccess().getTypeAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3934:1: ( rule__Parameter__TypeAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3934:2: rule__Parameter__TypeAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__TypeAssignment_4_in_rule__Parameter__Group__4__Impl7816);
+            rule__Parameter__TypeAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getParameterAccess().getTypeAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3944: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3948:1: ( rule__Parameter__Group__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3949:2: rule__Parameter__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Parameter__Group__5__Impl_in_rule__Parameter__Group__57846);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3955: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3959:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3960:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3960:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3961:1: '}'
+            {
+             before(grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Parameter__Group__5__Impl7874); 
+             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__AdaptationPlan__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3986: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3990: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3991:2: rule__AdaptationPlan__Group__0__Impl rule__AdaptationPlan__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__0__Impl_in_rule__AdaptationPlan__Group__07917);
+            rule__AdaptationPlan__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__1_in_rule__AdaptationPlan__Group__07920);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:3998:1: rule__AdaptationPlan__Group__0__Impl : ( 'AdaptationPlan' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4002:1: ( ( 'AdaptationPlan' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4003:1: ( 'AdaptationPlan' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4003:1: ( 'AdaptationPlan' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4004:1: 'AdaptationPlan'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getAdaptationPlanKeyword_0()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__AdaptationPlan__Group__0__Impl7948); 
+             after(grammarAccess.getAdaptationPlanAccess().getAdaptationPlanKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4017: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4021: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4022:2: rule__AdaptationPlan__Group__1__Impl rule__AdaptationPlan__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__1__Impl_in_rule__AdaptationPlan__Group__17979);
+            rule__AdaptationPlan__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__2_in_rule__AdaptationPlan__Group__17982);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4029:1: rule__AdaptationPlan__Group__1__Impl : ( ( rule__AdaptationPlan__IdAssignment_1 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4033:1: ( ( ( rule__AdaptationPlan__IdAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4034:1: ( ( rule__AdaptationPlan__IdAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4034:1: ( ( rule__AdaptationPlan__IdAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4035:1: ( rule__AdaptationPlan__IdAssignment_1 )
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getIdAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4036:1: ( rule__AdaptationPlan__IdAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4036:2: rule__AdaptationPlan__IdAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__IdAssignment_1_in_rule__AdaptationPlan__Group__1__Impl8009);
+            rule__AdaptationPlan__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getIdAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4046: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4050: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4051:2: rule__AdaptationPlan__Group__2__Impl rule__AdaptationPlan__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__2__Impl_in_rule__AdaptationPlan__Group__28039);
+            rule__AdaptationPlan__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__3_in_rule__AdaptationPlan__Group__28042);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4058: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4062:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4063:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4063:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4064:1: '{'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__AdaptationPlan__Group__2__Impl8070); 
+             after(grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4077:1: rule__AdaptationPlan__Group__3 : rule__AdaptationPlan__Group__3__Impl rule__AdaptationPlan__Group__4 ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4081:1: ( rule__AdaptationPlan__Group__3__Impl rule__AdaptationPlan__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4082:2: rule__AdaptationPlan__Group__3__Impl rule__AdaptationPlan__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__3__Impl_in_rule__AdaptationPlan__Group__38101);
+            rule__AdaptationPlan__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__4_in_rule__AdaptationPlan__Group__38104);
+            rule__AdaptationPlan__Group__4();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4089:1: rule__AdaptationPlan__Group__3__Impl : ( 'name' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4093:1: ( ( 'name' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4094:1: ( 'name' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4094:1: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4095:1: 'name'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getNameKeyword_3()); 
+            match(input,15,FollowSets000.FOLLOW_15_in_rule__AdaptationPlan__Group__3__Impl8132); 
+             after(grammarAccess.getAdaptationPlanAccess().getNameKeyword_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__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4108:1: rule__AdaptationPlan__Group__4 : rule__AdaptationPlan__Group__4__Impl rule__AdaptationPlan__Group__5 ;
+    public final void rule__AdaptationPlan__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4112:1: ( rule__AdaptationPlan__Group__4__Impl rule__AdaptationPlan__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4113:2: rule__AdaptationPlan__Group__4__Impl rule__AdaptationPlan__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__4__Impl_in_rule__AdaptationPlan__Group__48163);
+            rule__AdaptationPlan__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__5_in_rule__AdaptationPlan__Group__48166);
+            rule__AdaptationPlan__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__4"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4120:1: rule__AdaptationPlan__Group__4__Impl : ( ( rule__AdaptationPlan__NameAssignment_4 ) ) ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4124:1: ( ( ( rule__AdaptationPlan__NameAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4125:1: ( ( rule__AdaptationPlan__NameAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4125:1: ( ( rule__AdaptationPlan__NameAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4126:1: ( rule__AdaptationPlan__NameAssignment_4 )
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getNameAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4127:1: ( rule__AdaptationPlan__NameAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4127:2: rule__AdaptationPlan__NameAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__NameAssignment_4_in_rule__AdaptationPlan__Group__4__Impl8193);
+            rule__AdaptationPlan__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__4__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4137:1: rule__AdaptationPlan__Group__5 : rule__AdaptationPlan__Group__5__Impl rule__AdaptationPlan__Group__6 ;
+    public final void rule__AdaptationPlan__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4141:1: ( rule__AdaptationPlan__Group__5__Impl rule__AdaptationPlan__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4142:2: rule__AdaptationPlan__Group__5__Impl rule__AdaptationPlan__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__5__Impl_in_rule__AdaptationPlan__Group__58223);
+            rule__AdaptationPlan__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__6_in_rule__AdaptationPlan__Group__58226);
+            rule__AdaptationPlan__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__5"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4149:1: rule__AdaptationPlan__Group__5__Impl : ( ( rule__AdaptationPlan__Group_5__0 )? ) ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4153:1: ( ( ( rule__AdaptationPlan__Group_5__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4154:1: ( ( rule__AdaptationPlan__Group_5__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4154:1: ( ( rule__AdaptationPlan__Group_5__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4155:1: ( rule__AdaptationPlan__Group_5__0 )?
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getGroup_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4156:1: ( rule__AdaptationPlan__Group_5__0 )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0==37) ) {
+                alt18=1;
+            }
+            switch (alt18) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4156:2: rule__AdaptationPlan__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__0_in_rule__AdaptationPlan__Group__5__Impl8253);
+                    rule__AdaptationPlan__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__5__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4166:1: rule__AdaptationPlan__Group__6 : rule__AdaptationPlan__Group__6__Impl ;
+    public final void rule__AdaptationPlan__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4170:1: ( rule__AdaptationPlan__Group__6__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4171:2: rule__AdaptationPlan__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group__6__Impl_in_rule__AdaptationPlan__Group__68284);
+            rule__AdaptationPlan__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__6"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4177:1: rule__AdaptationPlan__Group__6__Impl : ( '}' ) ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4181:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4182:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4182:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4183:1: '}'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__AdaptationPlan__Group__6__Impl8312); 
+             after(grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group__6__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4210:1: rule__AdaptationPlan__Group_5__0 : rule__AdaptationPlan__Group_5__0__Impl rule__AdaptationPlan__Group_5__1 ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4214:1: ( rule__AdaptationPlan__Group_5__0__Impl rule__AdaptationPlan__Group_5__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4215:2: rule__AdaptationPlan__Group_5__0__Impl rule__AdaptationPlan__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__0__Impl_in_rule__AdaptationPlan__Group_5__08357);
+            rule__AdaptationPlan__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__1_in_rule__AdaptationPlan__Group_5__08360);
+            rule__AdaptationPlan__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__0"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4222:1: rule__AdaptationPlan__Group_5__0__Impl : ( 'steps' ) ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4226:1: ( ( 'steps' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4227:1: ( 'steps' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4227:1: ( 'steps' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4228:1: 'steps'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getStepsKeyword_5_0()); 
+            match(input,37,FollowSets000.FOLLOW_37_in_rule__AdaptationPlan__Group_5__0__Impl8388); 
+             after(grammarAccess.getAdaptationPlanAccess().getStepsKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4241:1: rule__AdaptationPlan__Group_5__1 : rule__AdaptationPlan__Group_5__1__Impl rule__AdaptationPlan__Group_5__2 ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4245:1: ( rule__AdaptationPlan__Group_5__1__Impl rule__AdaptationPlan__Group_5__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4246:2: rule__AdaptationPlan__Group_5__1__Impl rule__AdaptationPlan__Group_5__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__1__Impl_in_rule__AdaptationPlan__Group_5__18419);
+            rule__AdaptationPlan__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__2_in_rule__AdaptationPlan__Group_5__18422);
+            rule__AdaptationPlan__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4253:1: rule__AdaptationPlan__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4257:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4258:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4258:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4259:1: '{'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__AdaptationPlan__Group_5__1__Impl8450); 
+             after(grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4272:1: rule__AdaptationPlan__Group_5__2 : rule__AdaptationPlan__Group_5__2__Impl rule__AdaptationPlan__Group_5__3 ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4276:1: ( rule__AdaptationPlan__Group_5__2__Impl rule__AdaptationPlan__Group_5__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4277:2: rule__AdaptationPlan__Group_5__2__Impl rule__AdaptationPlan__Group_5__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__2__Impl_in_rule__AdaptationPlan__Group_5__28481);
+            rule__AdaptationPlan__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__3_in_rule__AdaptationPlan__Group_5__28484);
+            rule__AdaptationPlan__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__2"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4284:1: rule__AdaptationPlan__Group_5__2__Impl : ( ( rule__AdaptationPlan__StepsAssignment_5_2 ) ) ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4288:1: ( ( ( rule__AdaptationPlan__StepsAssignment_5_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4289:1: ( ( rule__AdaptationPlan__StepsAssignment_5_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4289:1: ( ( rule__AdaptationPlan__StepsAssignment_5_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4290:1: ( rule__AdaptationPlan__StepsAssignment_5_2 )
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4291:1: ( rule__AdaptationPlan__StepsAssignment_5_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4291:2: rule__AdaptationPlan__StepsAssignment_5_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__StepsAssignment_5_2_in_rule__AdaptationPlan__Group_5__2__Impl8511);
+            rule__AdaptationPlan__StepsAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4301:1: rule__AdaptationPlan__Group_5__3 : rule__AdaptationPlan__Group_5__3__Impl rule__AdaptationPlan__Group_5__4 ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4305:1: ( rule__AdaptationPlan__Group_5__3__Impl rule__AdaptationPlan__Group_5__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4306:2: rule__AdaptationPlan__Group_5__3__Impl rule__AdaptationPlan__Group_5__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__3__Impl_in_rule__AdaptationPlan__Group_5__38541);
+            rule__AdaptationPlan__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__4_in_rule__AdaptationPlan__Group_5__38544);
+            rule__AdaptationPlan__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__3"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4313:1: rule__AdaptationPlan__Group_5__3__Impl : ( ( rule__AdaptationPlan__Group_5_3__0 )* ) ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4317:1: ( ( ( rule__AdaptationPlan__Group_5_3__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4318:1: ( ( rule__AdaptationPlan__Group_5_3__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4318:1: ( ( rule__AdaptationPlan__Group_5_3__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4319:1: ( rule__AdaptationPlan__Group_5_3__0 )*
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getGroup_5_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4320:1: ( rule__AdaptationPlan__Group_5_3__0 )*
+            loop19:
+            do {
+                int alt19=2;
+                int LA19_0 = input.LA(1);
+
+                if ( (LA19_0==20) ) {
+                    alt19=1;
+                }
+
+
+                switch (alt19) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4320:2: rule__AdaptationPlan__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5_3__0_in_rule__AdaptationPlan__Group_5__3__Impl8571);
+            	    rule__AdaptationPlan__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop19;
+                }
+            } while (true);
+
+             after(grammarAccess.getAdaptationPlanAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4330:1: rule__AdaptationPlan__Group_5__4 : rule__AdaptationPlan__Group_5__4__Impl ;
+    public final void rule__AdaptationPlan__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4334:1: ( rule__AdaptationPlan__Group_5__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4335:2: rule__AdaptationPlan__Group_5__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5__4__Impl_in_rule__AdaptationPlan__Group_5__48602);
+            rule__AdaptationPlan__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__4"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4341:1: rule__AdaptationPlan__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__AdaptationPlan__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4345:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4346:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4346:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4347:1: '}'
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__AdaptationPlan__Group_5__4__Impl8630); 
+             after(grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4370:1: rule__AdaptationPlan__Group_5_3__0 : rule__AdaptationPlan__Group_5_3__0__Impl rule__AdaptationPlan__Group_5_3__1 ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4374:1: ( rule__AdaptationPlan__Group_5_3__0__Impl rule__AdaptationPlan__Group_5_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4375:2: rule__AdaptationPlan__Group_5_3__0__Impl rule__AdaptationPlan__Group_5_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5_3__0__Impl_in_rule__AdaptationPlan__Group_5_3__08671);
+            rule__AdaptationPlan__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5_3__1_in_rule__AdaptationPlan__Group_5_3__08674);
+            rule__AdaptationPlan__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5_3__0"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4382:1: rule__AdaptationPlan__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4386:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4387:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4387:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4388:1: ','
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_5_3_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__AdaptationPlan__Group_5_3__0__Impl8702); 
+             after(grammarAccess.getAdaptationPlanAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4401:1: rule__AdaptationPlan__Group_5_3__1 : rule__AdaptationPlan__Group_5_3__1__Impl ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4405:1: ( rule__AdaptationPlan__Group_5_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4406:2: rule__AdaptationPlan__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__Group_5_3__1__Impl_in_rule__AdaptationPlan__Group_5_3__18733);
+            rule__AdaptationPlan__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5_3__1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__Group_5_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4412:1: rule__AdaptationPlan__Group_5_3__1__Impl : ( ( rule__AdaptationPlan__StepsAssignment_5_3_1 ) ) ;
+    public final void rule__AdaptationPlan__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4416:1: ( ( ( rule__AdaptationPlan__StepsAssignment_5_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4417:1: ( ( rule__AdaptationPlan__StepsAssignment_5_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4417:1: ( ( rule__AdaptationPlan__StepsAssignment_5_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4418:1: ( rule__AdaptationPlan__StepsAssignment_5_3_1 )
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4419:1: ( rule__AdaptationPlan__StepsAssignment_5_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4419:2: rule__AdaptationPlan__StepsAssignment_5_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AdaptationPlan__StepsAssignment_5_3_1_in_rule__AdaptationPlan__Group_5_3__1__Impl8760);
+            rule__AdaptationPlan__StepsAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__Start__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4433:1: rule__Start__Group__0 : rule__Start__Group__0__Impl rule__Start__Group__1 ;
+    public final void rule__Start__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4437:1: ( rule__Start__Group__0__Impl rule__Start__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4438:2: rule__Start__Group__0__Impl rule__Start__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__0__Impl_in_rule__Start__Group__08794);
+            rule__Start__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__1_in_rule__Start__Group__08797);
+            rule__Start__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__0"
+
+
+    // $ANTLR start "rule__Start__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4445:1: rule__Start__Group__0__Impl : ( () ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4449:1: ( ( () ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4450:1: ( () )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4450:1: ( () )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4451:1: ()
+            {
+             before(grammarAccess.getStartAccess().getStartAction_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4452:1: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4454:1: 
+            {
+            }
+
+             after(grammarAccess.getStartAccess().getStartAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Start__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4464:1: rule__Start__Group__1 : rule__Start__Group__1__Impl rule__Start__Group__2 ;
+    public final void rule__Start__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4468:1: ( rule__Start__Group__1__Impl rule__Start__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4469:2: rule__Start__Group__1__Impl rule__Start__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__1__Impl_in_rule__Start__Group__18855);
+            rule__Start__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__2_in_rule__Start__Group__18858);
+            rule__Start__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__1"
+
+
+    // $ANTLR start "rule__Start__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4476:1: rule__Start__Group__1__Impl : ( 'Start' ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4480:1: ( ( 'Start' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4481:1: ( 'Start' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4481:1: ( 'Start' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4482:1: 'Start'
+            {
+             before(grammarAccess.getStartAccess().getStartKeyword_1()); 
+            match(input,38,FollowSets000.FOLLOW_38_in_rule__Start__Group__1__Impl8886); 
+             after(grammarAccess.getStartAccess().getStartKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Start__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4495:1: rule__Start__Group__2 : rule__Start__Group__2__Impl rule__Start__Group__3 ;
+    public final void rule__Start__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4499:1: ( rule__Start__Group__2__Impl rule__Start__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4500:2: rule__Start__Group__2__Impl rule__Start__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__2__Impl_in_rule__Start__Group__28917);
+            rule__Start__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__3_in_rule__Start__Group__28920);
+            rule__Start__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__2"
+
+
+    // $ANTLR start "rule__Start__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4507:1: rule__Start__Group__2__Impl : ( '{' ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4511:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4512:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4512:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4513:1: '{'
+            {
+             before(grammarAccess.getStartAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Start__Group__2__Impl8948); 
+             after(grammarAccess.getStartAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Start__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4526:1: rule__Start__Group__3 : rule__Start__Group__3__Impl rule__Start__Group__4 ;
+    public final void rule__Start__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4530:1: ( rule__Start__Group__3__Impl rule__Start__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4531:2: rule__Start__Group__3__Impl rule__Start__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__3__Impl_in_rule__Start__Group__38979);
+            rule__Start__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__4_in_rule__Start__Group__38982);
+            rule__Start__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__3"
+
+
+    // $ANTLR start "rule__Start__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4538:1: rule__Start__Group__3__Impl : ( ( rule__Start__Group_3__0 )? ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4542:1: ( ( ( rule__Start__Group_3__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4543:1: ( ( rule__Start__Group_3__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4543:1: ( ( rule__Start__Group_3__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4544:1: ( rule__Start__Group_3__0 )?
+            {
+             before(grammarAccess.getStartAccess().getGroup_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4545:1: ( rule__Start__Group_3__0 )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==39) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4545:2: rule__Start__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Start__Group_3__0_in_rule__Start__Group__3__Impl9009);
+                    rule__Start__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStartAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Start__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4555:1: rule__Start__Group__4 : rule__Start__Group__4__Impl rule__Start__Group__5 ;
+    public final void rule__Start__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4559:1: ( rule__Start__Group__4__Impl rule__Start__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4560:2: rule__Start__Group__4__Impl rule__Start__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__4__Impl_in_rule__Start__Group__49040);
+            rule__Start__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__5_in_rule__Start__Group__49043);
+            rule__Start__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__4"
+
+
+    // $ANTLR start "rule__Start__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4567:1: rule__Start__Group__4__Impl : ( ( rule__Start__Group_4__0 )? ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4571:1: ( ( ( rule__Start__Group_4__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4572:1: ( ( rule__Start__Group_4__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4572:1: ( ( rule__Start__Group_4__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4573:1: ( rule__Start__Group_4__0 )?
+            {
+             before(grammarAccess.getStartAccess().getGroup_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4574:1: ( rule__Start__Group_4__0 )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==40) ) {
+                alt21=1;
+            }
+            switch (alt21) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4574:2: rule__Start__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Start__Group_4__0_in_rule__Start__Group__4__Impl9070);
+                    rule__Start__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStartAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Start__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4584:1: rule__Start__Group__5 : rule__Start__Group__5__Impl ;
+    public final void rule__Start__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4588:1: ( rule__Start__Group__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4589:2: rule__Start__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group__5__Impl_in_rule__Start__Group__59101);
+            rule__Start__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__5"
+
+
+    // $ANTLR start "rule__Start__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4595:1: rule__Start__Group__5__Impl : ( '}' ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4599:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4600:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4600:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4601:1: '}'
+            {
+             before(grammarAccess.getStartAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Start__Group__5__Impl9129); 
+             after(grammarAccess.getStartAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Start__Group_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4626:1: rule__Start__Group_3__0 : rule__Start__Group_3__0__Impl rule__Start__Group_3__1 ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4630:1: ( rule__Start__Group_3__0__Impl rule__Start__Group_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4631:2: rule__Start__Group_3__0__Impl rule__Start__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group_3__0__Impl_in_rule__Start__Group_3__09172);
+            rule__Start__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group_3__1_in_rule__Start__Group_3__09175);
+            rule__Start__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group_3__0"
+
+
+    // $ANTLR start "rule__Start__Group_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4638:1: rule__Start__Group_3__0__Impl : ( 'predecessor' ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4642:1: ( ( 'predecessor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4643:1: ( 'predecessor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4643:1: ( 'predecessor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4644:1: 'predecessor'
+            {
+             before(grammarAccess.getStartAccess().getPredecessorKeyword_3_0()); 
+            match(input,39,FollowSets000.FOLLOW_39_in_rule__Start__Group_3__0__Impl9203); 
+             after(grammarAccess.getStartAccess().getPredecessorKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__Start__Group_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4657:1: rule__Start__Group_3__1 : rule__Start__Group_3__1__Impl ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4661:1: ( rule__Start__Group_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4662:2: rule__Start__Group_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group_3__1__Impl_in_rule__Start__Group_3__19234);
+            rule__Start__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group_3__1"
+
+
+    // $ANTLR start "rule__Start__Group_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4668:1: rule__Start__Group_3__1__Impl : ( ( rule__Start__PredecessorAssignment_3_1 ) ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4672:1: ( ( ( rule__Start__PredecessorAssignment_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4673:1: ( ( rule__Start__PredecessorAssignment_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4673:1: ( ( rule__Start__PredecessorAssignment_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4674:1: ( rule__Start__PredecessorAssignment_3_1 )
+            {
+             before(grammarAccess.getStartAccess().getPredecessorAssignment_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4675:1: ( rule__Start__PredecessorAssignment_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4675:2: rule__Start__PredecessorAssignment_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__PredecessorAssignment_3_1_in_rule__Start__Group_3__1__Impl9261);
+            rule__Start__PredecessorAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartAccess().getPredecessorAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__Start__Group_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4689:1: rule__Start__Group_4__0 : rule__Start__Group_4__0__Impl rule__Start__Group_4__1 ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4693:1: ( rule__Start__Group_4__0__Impl rule__Start__Group_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4694:2: rule__Start__Group_4__0__Impl rule__Start__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group_4__0__Impl_in_rule__Start__Group_4__09295);
+            rule__Start__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group_4__1_in_rule__Start__Group_4__09298);
+            rule__Start__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group_4__0"
+
+
+    // $ANTLR start "rule__Start__Group_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4701:1: rule__Start__Group_4__0__Impl : ( 'successor' ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4705:1: ( ( 'successor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4706:1: ( 'successor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4706:1: ( 'successor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4707:1: 'successor'
+            {
+             before(grammarAccess.getStartAccess().getSuccessorKeyword_4_0()); 
+            match(input,40,FollowSets000.FOLLOW_40_in_rule__Start__Group_4__0__Impl9326); 
+             after(grammarAccess.getStartAccess().getSuccessorKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__Start__Group_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4720:1: rule__Start__Group_4__1 : rule__Start__Group_4__1__Impl ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4724:1: ( rule__Start__Group_4__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4725:2: rule__Start__Group_4__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__Group_4__1__Impl_in_rule__Start__Group_4__19357);
+            rule__Start__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group_4__1"
+
+
+    // $ANTLR start "rule__Start__Group_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4731:1: rule__Start__Group_4__1__Impl : ( ( rule__Start__SuccessorAssignment_4_1 ) ) ;
+    public final void rule__Start__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4735:1: ( ( ( rule__Start__SuccessorAssignment_4_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4736:1: ( ( rule__Start__SuccessorAssignment_4_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4736:1: ( ( rule__Start__SuccessorAssignment_4_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4737:1: ( rule__Start__SuccessorAssignment_4_1 )
+            {
+             before(grammarAccess.getStartAccess().getSuccessorAssignment_4_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4738:1: ( rule__Start__SuccessorAssignment_4_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4738:2: rule__Start__SuccessorAssignment_4_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Start__SuccessorAssignment_4_1_in_rule__Start__Group_4__1__Impl9384);
+            rule__Start__SuccessorAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartAccess().getSuccessorAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4752:1: rule__Stop__Group__0 : rule__Stop__Group__0__Impl rule__Stop__Group__1 ;
+    public final void rule__Stop__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4756:1: ( rule__Stop__Group__0__Impl rule__Stop__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4757:2: rule__Stop__Group__0__Impl rule__Stop__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__0__Impl_in_rule__Stop__Group__09418);
+            rule__Stop__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__1_in_rule__Stop__Group__09421);
+            rule__Stop__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__0"
+
+
+    // $ANTLR start "rule__Stop__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4764:1: rule__Stop__Group__0__Impl : ( () ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4768:1: ( ( () ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4769:1: ( () )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4769:1: ( () )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4770:1: ()
+            {
+             before(grammarAccess.getStopAccess().getStopAction_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4771:1: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4773:1: 
+            {
+            }
+
+             after(grammarAccess.getStopAccess().getStopAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4783:1: rule__Stop__Group__1 : rule__Stop__Group__1__Impl rule__Stop__Group__2 ;
+    public final void rule__Stop__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4787:1: ( rule__Stop__Group__1__Impl rule__Stop__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4788:2: rule__Stop__Group__1__Impl rule__Stop__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__1__Impl_in_rule__Stop__Group__19479);
+            rule__Stop__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__2_in_rule__Stop__Group__19482);
+            rule__Stop__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__1"
+
+
+    // $ANTLR start "rule__Stop__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4795:1: rule__Stop__Group__1__Impl : ( 'Stop' ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4799:1: ( ( 'Stop' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4800:1: ( 'Stop' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4800:1: ( 'Stop' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4801:1: 'Stop'
+            {
+             before(grammarAccess.getStopAccess().getStopKeyword_1()); 
+            match(input,41,FollowSets000.FOLLOW_41_in_rule__Stop__Group__1__Impl9510); 
+             after(grammarAccess.getStopAccess().getStopKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4814:1: rule__Stop__Group__2 : rule__Stop__Group__2__Impl rule__Stop__Group__3 ;
+    public final void rule__Stop__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4818:1: ( rule__Stop__Group__2__Impl rule__Stop__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4819:2: rule__Stop__Group__2__Impl rule__Stop__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__2__Impl_in_rule__Stop__Group__29541);
+            rule__Stop__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__3_in_rule__Stop__Group__29544);
+            rule__Stop__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__2"
+
+
+    // $ANTLR start "rule__Stop__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4826:1: rule__Stop__Group__2__Impl : ( '{' ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4830:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4831:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4831:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4832:1: '{'
+            {
+             before(grammarAccess.getStopAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Stop__Group__2__Impl9572); 
+             after(grammarAccess.getStopAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4845:1: rule__Stop__Group__3 : rule__Stop__Group__3__Impl rule__Stop__Group__4 ;
+    public final void rule__Stop__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4849:1: ( rule__Stop__Group__3__Impl rule__Stop__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4850:2: rule__Stop__Group__3__Impl rule__Stop__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__3__Impl_in_rule__Stop__Group__39603);
+            rule__Stop__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__4_in_rule__Stop__Group__39606);
+            rule__Stop__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__3"
+
+
+    // $ANTLR start "rule__Stop__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4857:1: rule__Stop__Group__3__Impl : ( ( rule__Stop__Group_3__0 )? ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4861:1: ( ( ( rule__Stop__Group_3__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4862:1: ( ( rule__Stop__Group_3__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4862:1: ( ( rule__Stop__Group_3__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4863:1: ( rule__Stop__Group_3__0 )?
+            {
+             before(grammarAccess.getStopAccess().getGroup_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4864:1: ( rule__Stop__Group_3__0 )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0==39) ) {
+                alt22=1;
+            }
+            switch (alt22) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4864:2: rule__Stop__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Stop__Group_3__0_in_rule__Stop__Group__3__Impl9633);
+                    rule__Stop__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStopAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4874:1: rule__Stop__Group__4 : rule__Stop__Group__4__Impl rule__Stop__Group__5 ;
+    public final void rule__Stop__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4878:1: ( rule__Stop__Group__4__Impl rule__Stop__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4879:2: rule__Stop__Group__4__Impl rule__Stop__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__4__Impl_in_rule__Stop__Group__49664);
+            rule__Stop__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__5_in_rule__Stop__Group__49667);
+            rule__Stop__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__4"
+
+
+    // $ANTLR start "rule__Stop__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4886:1: rule__Stop__Group__4__Impl : ( ( rule__Stop__Group_4__0 )? ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4890:1: ( ( ( rule__Stop__Group_4__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4891:1: ( ( rule__Stop__Group_4__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4891:1: ( ( rule__Stop__Group_4__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4892:1: ( rule__Stop__Group_4__0 )?
+            {
+             before(grammarAccess.getStopAccess().getGroup_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4893:1: ( rule__Stop__Group_4__0 )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==40) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4893:2: rule__Stop__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Stop__Group_4__0_in_rule__Stop__Group__4__Impl9694);
+                    rule__Stop__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStopAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4903:1: rule__Stop__Group__5 : rule__Stop__Group__5__Impl ;
+    public final void rule__Stop__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4907:1: ( rule__Stop__Group__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4908:2: rule__Stop__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group__5__Impl_in_rule__Stop__Group__59725);
+            rule__Stop__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__5"
+
+
+    // $ANTLR start "rule__Stop__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4914:1: rule__Stop__Group__5__Impl : ( '}' ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4918:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4919:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4919:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4920:1: '}'
+            {
+             before(grammarAccess.getStopAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Stop__Group__5__Impl9753); 
+             after(grammarAccess.getStopAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4945:1: rule__Stop__Group_3__0 : rule__Stop__Group_3__0__Impl rule__Stop__Group_3__1 ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4949:1: ( rule__Stop__Group_3__0__Impl rule__Stop__Group_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4950:2: rule__Stop__Group_3__0__Impl rule__Stop__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group_3__0__Impl_in_rule__Stop__Group_3__09796);
+            rule__Stop__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group_3__1_in_rule__Stop__Group_3__09799);
+            rule__Stop__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group_3__0"
+
+
+    // $ANTLR start "rule__Stop__Group_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4957:1: rule__Stop__Group_3__0__Impl : ( 'predecessor' ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4961:1: ( ( 'predecessor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4962:1: ( 'predecessor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4962:1: ( 'predecessor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4963:1: 'predecessor'
+            {
+             before(grammarAccess.getStopAccess().getPredecessorKeyword_3_0()); 
+            match(input,39,FollowSets000.FOLLOW_39_in_rule__Stop__Group_3__0__Impl9827); 
+             after(grammarAccess.getStopAccess().getPredecessorKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4976:1: rule__Stop__Group_3__1 : rule__Stop__Group_3__1__Impl ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4980:1: ( rule__Stop__Group_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4981:2: rule__Stop__Group_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group_3__1__Impl_in_rule__Stop__Group_3__19858);
+            rule__Stop__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group_3__1"
+
+
+    // $ANTLR start "rule__Stop__Group_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4987:1: rule__Stop__Group_3__1__Impl : ( ( rule__Stop__PredecessorAssignment_3_1 ) ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4991:1: ( ( ( rule__Stop__PredecessorAssignment_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4992:1: ( ( rule__Stop__PredecessorAssignment_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4992:1: ( ( rule__Stop__PredecessorAssignment_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4993:1: ( rule__Stop__PredecessorAssignment_3_1 )
+            {
+             before(grammarAccess.getStopAccess().getPredecessorAssignment_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4994:1: ( rule__Stop__PredecessorAssignment_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:4994:2: rule__Stop__PredecessorAssignment_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__PredecessorAssignment_3_1_in_rule__Stop__Group_3__1__Impl9885);
+            rule__Stop__PredecessorAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStopAccess().getPredecessorAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5008:1: rule__Stop__Group_4__0 : rule__Stop__Group_4__0__Impl rule__Stop__Group_4__1 ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5012:1: ( rule__Stop__Group_4__0__Impl rule__Stop__Group_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5013:2: rule__Stop__Group_4__0__Impl rule__Stop__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group_4__0__Impl_in_rule__Stop__Group_4__09919);
+            rule__Stop__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group_4__1_in_rule__Stop__Group_4__09922);
+            rule__Stop__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group_4__0"
+
+
+    // $ANTLR start "rule__Stop__Group_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5020:1: rule__Stop__Group_4__0__Impl : ( 'successor' ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5024:1: ( ( 'successor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5025:1: ( 'successor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5025:1: ( 'successor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5026:1: 'successor'
+            {
+             before(grammarAccess.getStopAccess().getSuccessorKeyword_4_0()); 
+            match(input,40,FollowSets000.FOLLOW_40_in_rule__Stop__Group_4__0__Impl9950); 
+             after(grammarAccess.getStopAccess().getSuccessorKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__Stop__Group_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5039:1: rule__Stop__Group_4__1 : rule__Stop__Group_4__1__Impl ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5043:1: ( rule__Stop__Group_4__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5044:2: rule__Stop__Group_4__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__Group_4__1__Impl_in_rule__Stop__Group_4__19981);
+            rule__Stop__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group_4__1"
+
+
+    // $ANTLR start "rule__Stop__Group_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5050:1: rule__Stop__Group_4__1__Impl : ( ( rule__Stop__SuccessorAssignment_4_1 ) ) ;
+    public final void rule__Stop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5054:1: ( ( ( rule__Stop__SuccessorAssignment_4_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5055:1: ( ( rule__Stop__SuccessorAssignment_4_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5055:1: ( ( rule__Stop__SuccessorAssignment_4_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5056:1: ( rule__Stop__SuccessorAssignment_4_1 )
+            {
+             before(grammarAccess.getStopAccess().getSuccessorAssignment_4_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5057:1: ( rule__Stop__SuccessorAssignment_4_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5057:2: rule__Stop__SuccessorAssignment_4_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Stop__SuccessorAssignment_4_1_in_rule__Stop__Group_4__1__Impl10008);
+            rule__Stop__SuccessorAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStopAccess().getSuccessorAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5071:1: rule__Loop__Group__0 : rule__Loop__Group__0__Impl rule__Loop__Group__1 ;
+    public final void rule__Loop__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5075:1: ( rule__Loop__Group__0__Impl rule__Loop__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5076:2: rule__Loop__Group__0__Impl rule__Loop__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__0__Impl_in_rule__Loop__Group__010042);
+            rule__Loop__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__1_in_rule__Loop__Group__010045);
+            rule__Loop__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__0"
+
+
+    // $ANTLR start "rule__Loop__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5083:1: rule__Loop__Group__0__Impl : ( 'Loop' ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5087:1: ( ( 'Loop' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5088:1: ( 'Loop' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5088:1: ( 'Loop' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5089:1: 'Loop'
+            {
+             before(grammarAccess.getLoopAccess().getLoopKeyword_0()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__Loop__Group__0__Impl10073); 
+             after(grammarAccess.getLoopAccess().getLoopKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5102:1: rule__Loop__Group__1 : rule__Loop__Group__1__Impl rule__Loop__Group__2 ;
+    public final void rule__Loop__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5106:1: ( rule__Loop__Group__1__Impl rule__Loop__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5107:2: rule__Loop__Group__1__Impl rule__Loop__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__1__Impl_in_rule__Loop__Group__110104);
+            rule__Loop__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__2_in_rule__Loop__Group__110107);
+            rule__Loop__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__1"
+
+
+    // $ANTLR start "rule__Loop__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5114:1: rule__Loop__Group__1__Impl : ( '{' ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5118:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5119:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5119:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5120:1: '{'
+            {
+             before(grammarAccess.getLoopAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Loop__Group__1__Impl10135); 
+             after(grammarAccess.getLoopAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5133:1: rule__Loop__Group__2 : rule__Loop__Group__2__Impl rule__Loop__Group__3 ;
+    public final void rule__Loop__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5137:1: ( rule__Loop__Group__2__Impl rule__Loop__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5138:2: rule__Loop__Group__2__Impl rule__Loop__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__2__Impl_in_rule__Loop__Group__210166);
+            rule__Loop__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__3_in_rule__Loop__Group__210169);
+            rule__Loop__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__2"
+
+
+    // $ANTLR start "rule__Loop__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5145:1: rule__Loop__Group__2__Impl : ( 'counter' ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5149:1: ( ( 'counter' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5150:1: ( 'counter' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5150:1: ( 'counter' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5151:1: 'counter'
+            {
+             before(grammarAccess.getLoopAccess().getCounterKeyword_2()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__Loop__Group__2__Impl10197); 
+             after(grammarAccess.getLoopAccess().getCounterKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5164:1: rule__Loop__Group__3 : rule__Loop__Group__3__Impl rule__Loop__Group__4 ;
+    public final void rule__Loop__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5168:1: ( rule__Loop__Group__3__Impl rule__Loop__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5169:2: rule__Loop__Group__3__Impl rule__Loop__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__3__Impl_in_rule__Loop__Group__310228);
+            rule__Loop__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__4_in_rule__Loop__Group__310231);
+            rule__Loop__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__3"
+
+
+    // $ANTLR start "rule__Loop__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5176:1: rule__Loop__Group__3__Impl : ( ( rule__Loop__CounterAssignment_3 ) ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5180:1: ( ( ( rule__Loop__CounterAssignment_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5181:1: ( ( rule__Loop__CounterAssignment_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5181:1: ( ( rule__Loop__CounterAssignment_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5182:1: ( rule__Loop__CounterAssignment_3 )
+            {
+             before(grammarAccess.getLoopAccess().getCounterAssignment_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5183:1: ( rule__Loop__CounterAssignment_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5183:2: rule__Loop__CounterAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__CounterAssignment_3_in_rule__Loop__Group__3__Impl10258);
+            rule__Loop__CounterAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getCounterAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5193:1: rule__Loop__Group__4 : rule__Loop__Group__4__Impl rule__Loop__Group__5 ;
+    public final void rule__Loop__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5197:1: ( rule__Loop__Group__4__Impl rule__Loop__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5198:2: rule__Loop__Group__4__Impl rule__Loop__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__4__Impl_in_rule__Loop__Group__410288);
+            rule__Loop__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__5_in_rule__Loop__Group__410291);
+            rule__Loop__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__4"
+
+
+    // $ANTLR start "rule__Loop__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5205:1: rule__Loop__Group__4__Impl : ( ( rule__Loop__Group_4__0 )? ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5209:1: ( ( ( rule__Loop__Group_4__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5210:1: ( ( rule__Loop__Group_4__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5210:1: ( ( rule__Loop__Group_4__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5211:1: ( rule__Loop__Group_4__0 )?
+            {
+             before(grammarAccess.getLoopAccess().getGroup_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5212:1: ( rule__Loop__Group_4__0 )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==39) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5212:2: rule__Loop__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Loop__Group_4__0_in_rule__Loop__Group__4__Impl10318);
+                    rule__Loop__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getLoopAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5222:1: rule__Loop__Group__5 : rule__Loop__Group__5__Impl rule__Loop__Group__6 ;
+    public final void rule__Loop__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5226:1: ( rule__Loop__Group__5__Impl rule__Loop__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5227:2: rule__Loop__Group__5__Impl rule__Loop__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__5__Impl_in_rule__Loop__Group__510349);
+            rule__Loop__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__6_in_rule__Loop__Group__510352);
+            rule__Loop__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__5"
+
+
+    // $ANTLR start "rule__Loop__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5234:1: rule__Loop__Group__5__Impl : ( ( rule__Loop__Group_5__0 )? ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5238:1: ( ( ( rule__Loop__Group_5__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5239:1: ( ( rule__Loop__Group_5__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5239:1: ( ( rule__Loop__Group_5__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5240:1: ( rule__Loop__Group_5__0 )?
+            {
+             before(grammarAccess.getLoopAccess().getGroup_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5241:1: ( rule__Loop__Group_5__0 )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==40) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5241:2: rule__Loop__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Loop__Group_5__0_in_rule__Loop__Group__5__Impl10379);
+                    rule__Loop__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getLoopAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5251:1: rule__Loop__Group__6 : rule__Loop__Group__6__Impl rule__Loop__Group__7 ;
+    public final void rule__Loop__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5255:1: ( rule__Loop__Group__6__Impl rule__Loop__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5256:2: rule__Loop__Group__6__Impl rule__Loop__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__6__Impl_in_rule__Loop__Group__610410);
+            rule__Loop__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__7_in_rule__Loop__Group__610413);
+            rule__Loop__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__6"
+
+
+    // $ANTLR start "rule__Loop__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5263:1: rule__Loop__Group__6__Impl : ( 'body' ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5267:1: ( ( 'body' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5268:1: ( 'body' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5268:1: ( 'body' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5269:1: 'body'
+            {
+             before(grammarAccess.getLoopAccess().getBodyKeyword_6()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__Loop__Group__6__Impl10441); 
+             after(grammarAccess.getLoopAccess().getBodyKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5282:1: rule__Loop__Group__7 : rule__Loop__Group__7__Impl rule__Loop__Group__8 ;
+    public final void rule__Loop__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5286:1: ( rule__Loop__Group__7__Impl rule__Loop__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5287:2: rule__Loop__Group__7__Impl rule__Loop__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__7__Impl_in_rule__Loop__Group__710472);
+            rule__Loop__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__8_in_rule__Loop__Group__710475);
+            rule__Loop__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__7"
+
+
+    // $ANTLR start "rule__Loop__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5294:1: rule__Loop__Group__7__Impl : ( ( rule__Loop__BodyAssignment_7 ) ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5298:1: ( ( ( rule__Loop__BodyAssignment_7 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5299:1: ( ( rule__Loop__BodyAssignment_7 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5299:1: ( ( rule__Loop__BodyAssignment_7 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5300:1: ( rule__Loop__BodyAssignment_7 )
+            {
+             before(grammarAccess.getLoopAccess().getBodyAssignment_7()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5301:1: ( rule__Loop__BodyAssignment_7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5301:2: rule__Loop__BodyAssignment_7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__BodyAssignment_7_in_rule__Loop__Group__7__Impl10502);
+            rule__Loop__BodyAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getBodyAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5311:1: rule__Loop__Group__8 : rule__Loop__Group__8__Impl ;
+    public final void rule__Loop__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5315:1: ( rule__Loop__Group__8__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5316:2: rule__Loop__Group__8__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group__8__Impl_in_rule__Loop__Group__810532);
+            rule__Loop__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__8"
+
+
+    // $ANTLR start "rule__Loop__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5322:1: rule__Loop__Group__8__Impl : ( '}' ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5326:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5327:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5327:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5328:1: '}'
+            {
+             before(grammarAccess.getLoopAccess().getRightCurlyBracketKeyword_8()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Loop__Group__8__Impl10560); 
+             after(grammarAccess.getLoopAccess().getRightCurlyBracketKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5359:1: rule__Loop__Group_4__0 : rule__Loop__Group_4__0__Impl rule__Loop__Group_4__1 ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5363:1: ( rule__Loop__Group_4__0__Impl rule__Loop__Group_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5364:2: rule__Loop__Group_4__0__Impl rule__Loop__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group_4__0__Impl_in_rule__Loop__Group_4__010609);
+            rule__Loop__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group_4__1_in_rule__Loop__Group_4__010612);
+            rule__Loop__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_4__0"
+
+
+    // $ANTLR start "rule__Loop__Group_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5371:1: rule__Loop__Group_4__0__Impl : ( 'predecessor' ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5375:1: ( ( 'predecessor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5376:1: ( 'predecessor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5376:1: ( 'predecessor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5377:1: 'predecessor'
+            {
+             before(grammarAccess.getLoopAccess().getPredecessorKeyword_4_0()); 
+            match(input,39,FollowSets000.FOLLOW_39_in_rule__Loop__Group_4__0__Impl10640); 
+             after(grammarAccess.getLoopAccess().getPredecessorKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5390:1: rule__Loop__Group_4__1 : rule__Loop__Group_4__1__Impl ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5394:1: ( rule__Loop__Group_4__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5395:2: rule__Loop__Group_4__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group_4__1__Impl_in_rule__Loop__Group_4__110671);
+            rule__Loop__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_4__1"
+
+
+    // $ANTLR start "rule__Loop__Group_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5401:1: rule__Loop__Group_4__1__Impl : ( ( rule__Loop__PredecessorAssignment_4_1 ) ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5405:1: ( ( ( rule__Loop__PredecessorAssignment_4_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5406:1: ( ( rule__Loop__PredecessorAssignment_4_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5406:1: ( ( rule__Loop__PredecessorAssignment_4_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5407:1: ( rule__Loop__PredecessorAssignment_4_1 )
+            {
+             before(grammarAccess.getLoopAccess().getPredecessorAssignment_4_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5408:1: ( rule__Loop__PredecessorAssignment_4_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5408:2: rule__Loop__PredecessorAssignment_4_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__PredecessorAssignment_4_1_in_rule__Loop__Group_4__1__Impl10698);
+            rule__Loop__PredecessorAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getPredecessorAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group_5__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5422:1: rule__Loop__Group_5__0 : rule__Loop__Group_5__0__Impl rule__Loop__Group_5__1 ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5426:1: ( rule__Loop__Group_5__0__Impl rule__Loop__Group_5__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5427:2: rule__Loop__Group_5__0__Impl rule__Loop__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group_5__0__Impl_in_rule__Loop__Group_5__010732);
+            rule__Loop__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group_5__1_in_rule__Loop__Group_5__010735);
+            rule__Loop__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_5__0"
+
+
+    // $ANTLR start "rule__Loop__Group_5__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5434:1: rule__Loop__Group_5__0__Impl : ( 'successor' ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5438:1: ( ( 'successor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5439:1: ( 'successor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5439:1: ( 'successor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5440:1: 'successor'
+            {
+             before(grammarAccess.getLoopAccess().getSuccessorKeyword_5_0()); 
+            match(input,40,FollowSets000.FOLLOW_40_in_rule__Loop__Group_5__0__Impl10763); 
+             after(grammarAccess.getLoopAccess().getSuccessorKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group_5__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5453:1: rule__Loop__Group_5__1 : rule__Loop__Group_5__1__Impl ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5457:1: ( rule__Loop__Group_5__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5458:2: rule__Loop__Group_5__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__Group_5__1__Impl_in_rule__Loop__Group_5__110794);
+            rule__Loop__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_5__1"
+
+
+    // $ANTLR start "rule__Loop__Group_5__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5464:1: rule__Loop__Group_5__1__Impl : ( ( rule__Loop__SuccessorAssignment_5_1 ) ) ;
+    public final void rule__Loop__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5468:1: ( ( ( rule__Loop__SuccessorAssignment_5_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5469:1: ( ( rule__Loop__SuccessorAssignment_5_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5469:1: ( ( rule__Loop__SuccessorAssignment_5_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5470:1: ( rule__Loop__SuccessorAssignment_5_1 )
+            {
+             before(grammarAccess.getLoopAccess().getSuccessorAssignment_5_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5471:1: ( rule__Loop__SuccessorAssignment_5_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5471:2: rule__Loop__SuccessorAssignment_5_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Loop__SuccessorAssignment_5_1_in_rule__Loop__Group_5__1__Impl10821);
+            rule__Loop__SuccessorAssignment_5_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getSuccessorAssignment_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5485:1: rule__Branch__Group__0 : rule__Branch__Group__0__Impl rule__Branch__Group__1 ;
+    public final void rule__Branch__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5489:1: ( rule__Branch__Group__0__Impl rule__Branch__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5490:2: rule__Branch__Group__0__Impl rule__Branch__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__0__Impl_in_rule__Branch__Group__010855);
+            rule__Branch__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__1_in_rule__Branch__Group__010858);
+            rule__Branch__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__0"
+
+
+    // $ANTLR start "rule__Branch__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5497:1: rule__Branch__Group__0__Impl : ( 'Branch' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5501:1: ( ( 'Branch' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5502:1: ( 'Branch' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5502:1: ( 'Branch' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5503:1: 'Branch'
+            {
+             before(grammarAccess.getBranchAccess().getBranchKeyword_0()); 
+            match(input,45,FollowSets000.FOLLOW_45_in_rule__Branch__Group__0__Impl10886); 
+             after(grammarAccess.getBranchAccess().getBranchKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5516:1: rule__Branch__Group__1 : rule__Branch__Group__1__Impl rule__Branch__Group__2 ;
+    public final void rule__Branch__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5520:1: ( rule__Branch__Group__1__Impl rule__Branch__Group__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5521:2: rule__Branch__Group__1__Impl rule__Branch__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__1__Impl_in_rule__Branch__Group__110917);
+            rule__Branch__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__2_in_rule__Branch__Group__110920);
+            rule__Branch__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__1"
+
+
+    // $ANTLR start "rule__Branch__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5528:1: rule__Branch__Group__1__Impl : ( '{' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5532:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5533:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5533:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5534:1: '{'
+            {
+             before(grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Branch__Group__1__Impl10948); 
+             after(grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5547:1: rule__Branch__Group__2 : rule__Branch__Group__2__Impl rule__Branch__Group__3 ;
+    public final void rule__Branch__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5551:1: ( rule__Branch__Group__2__Impl rule__Branch__Group__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5552:2: rule__Branch__Group__2__Impl rule__Branch__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__2__Impl_in_rule__Branch__Group__210979);
+            rule__Branch__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__3_in_rule__Branch__Group__210982);
+            rule__Branch__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__2"
+
+
+    // $ANTLR start "rule__Branch__Group__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5559:1: rule__Branch__Group__2__Impl : ( ( rule__Branch__Group_2__0 )? ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5563:1: ( ( ( rule__Branch__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5564:1: ( ( rule__Branch__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5564:1: ( ( rule__Branch__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5565:1: ( rule__Branch__Group_2__0 )?
+            {
+             before(grammarAccess.getBranchAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5566:1: ( rule__Branch__Group_2__0 )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
+
+            if ( (LA26_0==47) ) {
+                alt26=1;
+            }
+            switch (alt26) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5566:2: rule__Branch__Group_2__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_2__0_in_rule__Branch__Group__2__Impl11009);
+                    rule__Branch__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBranchAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5576:1: rule__Branch__Group__3 : rule__Branch__Group__3__Impl rule__Branch__Group__4 ;
+    public final void rule__Branch__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5580:1: ( rule__Branch__Group__3__Impl rule__Branch__Group__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5581:2: rule__Branch__Group__3__Impl rule__Branch__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__3__Impl_in_rule__Branch__Group__311040);
+            rule__Branch__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__4_in_rule__Branch__Group__311043);
+            rule__Branch__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__3"
+
+
+    // $ANTLR start "rule__Branch__Group__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5588:1: rule__Branch__Group__3__Impl : ( ( rule__Branch__Group_3__0 )? ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5592:1: ( ( ( rule__Branch__Group_3__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5593:1: ( ( rule__Branch__Group_3__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5593:1: ( ( rule__Branch__Group_3__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5594:1: ( rule__Branch__Group_3__0 )?
+            {
+             before(grammarAccess.getBranchAccess().getGroup_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5595:1: ( rule__Branch__Group_3__0 )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( (LA27_0==39) ) {
+                alt27=1;
+            }
+            switch (alt27) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5595:2: rule__Branch__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_3__0_in_rule__Branch__Group__3__Impl11070);
+                    rule__Branch__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBranchAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5605:1: rule__Branch__Group__4 : rule__Branch__Group__4__Impl rule__Branch__Group__5 ;
+    public final void rule__Branch__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5609:1: ( rule__Branch__Group__4__Impl rule__Branch__Group__5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5610:2: rule__Branch__Group__4__Impl rule__Branch__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__4__Impl_in_rule__Branch__Group__411101);
+            rule__Branch__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__5_in_rule__Branch__Group__411104);
+            rule__Branch__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__4"
+
+
+    // $ANTLR start "rule__Branch__Group__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5617:1: rule__Branch__Group__4__Impl : ( ( rule__Branch__Group_4__0 )? ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5621:1: ( ( ( rule__Branch__Group_4__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5622:1: ( ( rule__Branch__Group_4__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5622:1: ( ( rule__Branch__Group_4__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5623:1: ( rule__Branch__Group_4__0 )?
+            {
+             before(grammarAccess.getBranchAccess().getGroup_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5624:1: ( rule__Branch__Group_4__0 )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==40) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5624:2: rule__Branch__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_4__0_in_rule__Branch__Group__4__Impl11131);
+                    rule__Branch__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBranchAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5634:1: rule__Branch__Group__5 : rule__Branch__Group__5__Impl rule__Branch__Group__6 ;
+    public final void rule__Branch__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5638:1: ( rule__Branch__Group__5__Impl rule__Branch__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5639:2: rule__Branch__Group__5__Impl rule__Branch__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__5__Impl_in_rule__Branch__Group__511162);
+            rule__Branch__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__6_in_rule__Branch__Group__511165);
+            rule__Branch__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__5"
+
+
+    // $ANTLR start "rule__Branch__Group__5__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5646:1: rule__Branch__Group__5__Impl : ( 'branches' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5650:1: ( ( 'branches' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5651:1: ( 'branches' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5651:1: ( 'branches' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5652:1: 'branches'
+            {
+             before(grammarAccess.getBranchAccess().getBranchesKeyword_5()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__Branch__Group__5__Impl11193); 
+             after(grammarAccess.getBranchAccess().getBranchesKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5665:1: rule__Branch__Group__6 : rule__Branch__Group__6__Impl rule__Branch__Group__7 ;
+    public final void rule__Branch__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5669:1: ( rule__Branch__Group__6__Impl rule__Branch__Group__7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5670:2: rule__Branch__Group__6__Impl rule__Branch__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__6__Impl_in_rule__Branch__Group__611224);
+            rule__Branch__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__7_in_rule__Branch__Group__611227);
+            rule__Branch__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__6"
+
+
+    // $ANTLR start "rule__Branch__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5677:1: rule__Branch__Group__6__Impl : ( '{' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5681:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5682:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5682:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5683:1: '{'
+            {
+             before(grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_6()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__Branch__Group__6__Impl11255); 
+             after(grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5696:1: rule__Branch__Group__7 : rule__Branch__Group__7__Impl rule__Branch__Group__8 ;
+    public final void rule__Branch__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5700:1: ( rule__Branch__Group__7__Impl rule__Branch__Group__8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5701:2: rule__Branch__Group__7__Impl rule__Branch__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__7__Impl_in_rule__Branch__Group__711286);
+            rule__Branch__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__8_in_rule__Branch__Group__711289);
+            rule__Branch__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__7"
+
+
+    // $ANTLR start "rule__Branch__Group__7__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5708:1: rule__Branch__Group__7__Impl : ( ( rule__Branch__BranchesAssignment_7 ) ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5712:1: ( ( ( rule__Branch__BranchesAssignment_7 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5713:1: ( ( rule__Branch__BranchesAssignment_7 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5713:1: ( ( rule__Branch__BranchesAssignment_7 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5714:1: ( rule__Branch__BranchesAssignment_7 )
+            {
+             before(grammarAccess.getBranchAccess().getBranchesAssignment_7()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5715:1: ( rule__Branch__BranchesAssignment_7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5715:2: rule__Branch__BranchesAssignment_7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__BranchesAssignment_7_in_rule__Branch__Group__7__Impl11316);
+            rule__Branch__BranchesAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchAccess().getBranchesAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5725:1: rule__Branch__Group__8 : rule__Branch__Group__8__Impl rule__Branch__Group__9 ;
+    public final void rule__Branch__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5729:1: ( rule__Branch__Group__8__Impl rule__Branch__Group__9 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5730:2: rule__Branch__Group__8__Impl rule__Branch__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__8__Impl_in_rule__Branch__Group__811346);
+            rule__Branch__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__9_in_rule__Branch__Group__811349);
+            rule__Branch__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__8"
+
+
+    // $ANTLR start "rule__Branch__Group__8__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5737:1: rule__Branch__Group__8__Impl : ( ( rule__Branch__Group_8__0 )* ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5741:1: ( ( ( rule__Branch__Group_8__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5742:1: ( ( rule__Branch__Group_8__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5742:1: ( ( rule__Branch__Group_8__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5743:1: ( rule__Branch__Group_8__0 )*
+            {
+             before(grammarAccess.getBranchAccess().getGroup_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5744:1: ( rule__Branch__Group_8__0 )*
+            loop29:
+            do {
+                int alt29=2;
+                int LA29_0 = input.LA(1);
+
+                if ( (LA29_0==20) ) {
+                    alt29=1;
+                }
+
+
+                switch (alt29) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5744:2: rule__Branch__Group_8__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_8__0_in_rule__Branch__Group__8__Impl11376);
+            	    rule__Branch__Group_8__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop29;
+                }
+            } while (true);
+
+             after(grammarAccess.getBranchAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__9"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5754:1: rule__Branch__Group__9 : rule__Branch__Group__9__Impl rule__Branch__Group__10 ;
+    public final void rule__Branch__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5758:1: ( rule__Branch__Group__9__Impl rule__Branch__Group__10 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5759:2: rule__Branch__Group__9__Impl rule__Branch__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__9__Impl_in_rule__Branch__Group__911407);
+            rule__Branch__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__10_in_rule__Branch__Group__911410);
+            rule__Branch__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__9"
+
+
+    // $ANTLR start "rule__Branch__Group__9__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5766:1: rule__Branch__Group__9__Impl : ( '}' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5770:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5771:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5771:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5772:1: '}'
+            {
+             before(grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_9()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Branch__Group__9__Impl11438); 
+             after(grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group__10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5785:1: rule__Branch__Group__10 : rule__Branch__Group__10__Impl ;
+    public final void rule__Branch__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5789:1: ( rule__Branch__Group__10__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5790:2: rule__Branch__Group__10__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group__10__Impl_in_rule__Branch__Group__1011469);
+            rule__Branch__Group__10__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__10"
+
+
+    // $ANTLR start "rule__Branch__Group__10__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5796:1: rule__Branch__Group__10__Impl : ( '}' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5800:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5801:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5801:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5802:1: '}'
+            {
+             before(grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_10()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__Branch__Group__10__Impl11497); 
+             after(grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group__10__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5837:1: rule__Branch__Group_2__0 : rule__Branch__Group_2__0__Impl rule__Branch__Group_2__1 ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5841:1: ( rule__Branch__Group_2__0__Impl rule__Branch__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5842:2: rule__Branch__Group_2__0__Impl rule__Branch__Group_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_2__0__Impl_in_rule__Branch__Group_2__011550);
+            rule__Branch__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_2__1_in_rule__Branch__Group_2__011553);
+            rule__Branch__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_2__0"
+
+
+    // $ANTLR start "rule__Branch__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5849:1: rule__Branch__Group_2__0__Impl : ( 'condition' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5853:1: ( ( 'condition' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5854:1: ( 'condition' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5854:1: ( 'condition' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5855:1: 'condition'
+            {
+             before(grammarAccess.getBranchAccess().getConditionKeyword_2_0()); 
+            match(input,47,FollowSets000.FOLLOW_47_in_rule__Branch__Group_2__0__Impl11581); 
+             after(grammarAccess.getBranchAccess().getConditionKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5868:1: rule__Branch__Group_2__1 : rule__Branch__Group_2__1__Impl ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5872:1: ( rule__Branch__Group_2__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5873:2: rule__Branch__Group_2__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_2__1__Impl_in_rule__Branch__Group_2__111612);
+            rule__Branch__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_2__1"
+
+
+    // $ANTLR start "rule__Branch__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5879:1: rule__Branch__Group_2__1__Impl : ( ( rule__Branch__ConditionAssignment_2_1 ) ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5883:1: ( ( ( rule__Branch__ConditionAssignment_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5884:1: ( ( rule__Branch__ConditionAssignment_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5884:1: ( ( rule__Branch__ConditionAssignment_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5885:1: ( rule__Branch__ConditionAssignment_2_1 )
+            {
+             before(grammarAccess.getBranchAccess().getConditionAssignment_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5886:1: ( rule__Branch__ConditionAssignment_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5886:2: rule__Branch__ConditionAssignment_2_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__ConditionAssignment_2_1_in_rule__Branch__Group_2__1__Impl11639);
+            rule__Branch__ConditionAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchAccess().getConditionAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5900:1: rule__Branch__Group_3__0 : rule__Branch__Group_3__0__Impl rule__Branch__Group_3__1 ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5904:1: ( rule__Branch__Group_3__0__Impl rule__Branch__Group_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5905:2: rule__Branch__Group_3__0__Impl rule__Branch__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_3__0__Impl_in_rule__Branch__Group_3__011673);
+            rule__Branch__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_3__1_in_rule__Branch__Group_3__011676);
+            rule__Branch__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_3__0"
+
+
+    // $ANTLR start "rule__Branch__Group_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5912:1: rule__Branch__Group_3__0__Impl : ( 'predecessor' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5916:1: ( ( 'predecessor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5917:1: ( 'predecessor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5917:1: ( 'predecessor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5918:1: 'predecessor'
+            {
+             before(grammarAccess.getBranchAccess().getPredecessorKeyword_3_0()); 
+            match(input,39,FollowSets000.FOLLOW_39_in_rule__Branch__Group_3__0__Impl11704); 
+             after(grammarAccess.getBranchAccess().getPredecessorKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5931:1: rule__Branch__Group_3__1 : rule__Branch__Group_3__1__Impl ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5935:1: ( rule__Branch__Group_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5936:2: rule__Branch__Group_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_3__1__Impl_in_rule__Branch__Group_3__111735);
+            rule__Branch__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_3__1"
+
+
+    // $ANTLR start "rule__Branch__Group_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5942:1: rule__Branch__Group_3__1__Impl : ( ( rule__Branch__PredecessorAssignment_3_1 ) ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5946:1: ( ( ( rule__Branch__PredecessorAssignment_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5947:1: ( ( rule__Branch__PredecessorAssignment_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5947:1: ( ( rule__Branch__PredecessorAssignment_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5948:1: ( rule__Branch__PredecessorAssignment_3_1 )
+            {
+             before(grammarAccess.getBranchAccess().getPredecessorAssignment_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5949:1: ( rule__Branch__PredecessorAssignment_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5949:2: rule__Branch__PredecessorAssignment_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__PredecessorAssignment_3_1_in_rule__Branch__Group_3__1__Impl11762);
+            rule__Branch__PredecessorAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchAccess().getPredecessorAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5963:1: rule__Branch__Group_4__0 : rule__Branch__Group_4__0__Impl rule__Branch__Group_4__1 ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5967:1: ( rule__Branch__Group_4__0__Impl rule__Branch__Group_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5968:2: rule__Branch__Group_4__0__Impl rule__Branch__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_4__0__Impl_in_rule__Branch__Group_4__011796);
+            rule__Branch__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_4__1_in_rule__Branch__Group_4__011799);
+            rule__Branch__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_4__0"
+
+
+    // $ANTLR start "rule__Branch__Group_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5975:1: rule__Branch__Group_4__0__Impl : ( 'successor' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5979:1: ( ( 'successor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5980:1: ( 'successor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5980:1: ( 'successor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5981:1: 'successor'
+            {
+             before(grammarAccess.getBranchAccess().getSuccessorKeyword_4_0()); 
+            match(input,40,FollowSets000.FOLLOW_40_in_rule__Branch__Group_4__0__Impl11827); 
+             after(grammarAccess.getBranchAccess().getSuccessorKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5994:1: rule__Branch__Group_4__1 : rule__Branch__Group_4__1__Impl ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5998:1: ( rule__Branch__Group_4__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:5999:2: rule__Branch__Group_4__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_4__1__Impl_in_rule__Branch__Group_4__111858);
+            rule__Branch__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_4__1"
+
+
+    // $ANTLR start "rule__Branch__Group_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6005:1: rule__Branch__Group_4__1__Impl : ( ( rule__Branch__SuccessorAssignment_4_1 ) ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6009:1: ( ( ( rule__Branch__SuccessorAssignment_4_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6010:1: ( ( rule__Branch__SuccessorAssignment_4_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6010:1: ( ( rule__Branch__SuccessorAssignment_4_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6011:1: ( rule__Branch__SuccessorAssignment_4_1 )
+            {
+             before(grammarAccess.getBranchAccess().getSuccessorAssignment_4_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6012:1: ( rule__Branch__SuccessorAssignment_4_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6012:2: rule__Branch__SuccessorAssignment_4_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__SuccessorAssignment_4_1_in_rule__Branch__Group_4__1__Impl11885);
+            rule__Branch__SuccessorAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchAccess().getSuccessorAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group_8__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6026:1: rule__Branch__Group_8__0 : rule__Branch__Group_8__0__Impl rule__Branch__Group_8__1 ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6030:1: ( rule__Branch__Group_8__0__Impl rule__Branch__Group_8__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6031:2: rule__Branch__Group_8__0__Impl rule__Branch__Group_8__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_8__0__Impl_in_rule__Branch__Group_8__011919);
+            rule__Branch__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_8__1_in_rule__Branch__Group_8__011922);
+            rule__Branch__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_8__0"
+
+
+    // $ANTLR start "rule__Branch__Group_8__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6038:1: rule__Branch__Group_8__0__Impl : ( ',' ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6042:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6043:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6043:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6044:1: ','
+            {
+             before(grammarAccess.getBranchAccess().getCommaKeyword_8_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__Branch__Group_8__0__Impl11950); 
+             after(grammarAccess.getBranchAccess().getCommaKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__Branch__Group_8__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6057:1: rule__Branch__Group_8__1 : rule__Branch__Group_8__1__Impl ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6061:1: ( rule__Branch__Group_8__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6062:2: rule__Branch__Group_8__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__Group_8__1__Impl_in_rule__Branch__Group_8__111981);
+            rule__Branch__Group_8__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_8__1"
+
+
+    // $ANTLR start "rule__Branch__Group_8__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6068:1: rule__Branch__Group_8__1__Impl : ( ( rule__Branch__BranchesAssignment_8_1 ) ) ;
+    public final void rule__Branch__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6072:1: ( ( ( rule__Branch__BranchesAssignment_8_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6073:1: ( ( rule__Branch__BranchesAssignment_8_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6073:1: ( ( rule__Branch__BranchesAssignment_8_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6074:1: ( rule__Branch__BranchesAssignment_8_1 )
+            {
+             before(grammarAccess.getBranchAccess().getBranchesAssignment_8_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6075:1: ( rule__Branch__BranchesAssignment_8_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6075:2: rule__Branch__BranchesAssignment_8_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Branch__BranchesAssignment_8_1_in_rule__Branch__Group_8__1__Impl12008);
+            rule__Branch__BranchesAssignment_8_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchAccess().getBranchesAssignment_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6089: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6093: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6094:2: rule__ActionReference__Group__0__Impl rule__ActionReference__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__0__Impl_in_rule__ActionReference__Group__012042);
+            rule__ActionReference__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__1_in_rule__ActionReference__Group__012045);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6101: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6105:1: ( ( 'ActionReference' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6106:1: ( 'ActionReference' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6106:1: ( 'ActionReference' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6107:1: 'ActionReference'
+            {
+             before(grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0()); 
+            match(input,48,FollowSets000.FOLLOW_48_in_rule__ActionReference__Group__0__Impl12073); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6120: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6124: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6125:2: rule__ActionReference__Group__1__Impl rule__ActionReference__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__1__Impl_in_rule__ActionReference__Group__112104);
+            rule__ActionReference__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__2_in_rule__ActionReference__Group__112107);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6132:1: rule__ActionReference__Group__1__Impl : ( '{' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6136:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6137:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6137:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6138:1: '{'
+            {
+             before(grammarAccess.getActionReferenceAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__ActionReference__Group__1__Impl12135); 
+             after(grammarAccess.getActionReferenceAccess().getLeftCurlyBracketKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6151: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6155: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6156:2: rule__ActionReference__Group__2__Impl rule__ActionReference__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__2__Impl_in_rule__ActionReference__Group__212166);
+            rule__ActionReference__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__3_in_rule__ActionReference__Group__212169);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6163:1: rule__ActionReference__Group__2__Impl : ( ( rule__ActionReference__Group_2__0 )? ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6167:1: ( ( ( rule__ActionReference__Group_2__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6168:1: ( ( rule__ActionReference__Group_2__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6168:1: ( ( rule__ActionReference__Group_2__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6169:1: ( rule__ActionReference__Group_2__0 )?
+            {
+             before(grammarAccess.getActionReferenceAccess().getGroup_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6170:1: ( rule__ActionReference__Group_2__0 )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
+
+            if ( (LA30_0==39) ) {
+                alt30=1;
+            }
+            switch (alt30) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6170:2: rule__ActionReference__Group_2__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_2__0_in_rule__ActionReference__Group__2__Impl12196);
+                    rule__ActionReference__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getGroup_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6180: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6184: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6185:2: rule__ActionReference__Group__3__Impl rule__ActionReference__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__3__Impl_in_rule__ActionReference__Group__312227);
+            rule__ActionReference__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__4_in_rule__ActionReference__Group__312230);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6192:1: rule__ActionReference__Group__3__Impl : ( ( rule__ActionReference__Group_3__0 )? ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6196:1: ( ( ( rule__ActionReference__Group_3__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6197:1: ( ( rule__ActionReference__Group_3__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6197:1: ( ( rule__ActionReference__Group_3__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6198:1: ( rule__ActionReference__Group_3__0 )?
+            {
+             before(grammarAccess.getActionReferenceAccess().getGroup_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6199:1: ( rule__ActionReference__Group_3__0 )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==40) ) {
+                alt31=1;
+            }
+            switch (alt31) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6199:2: rule__ActionReference__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_3__0_in_rule__ActionReference__Group__3__Impl12257);
+                    rule__ActionReference__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getGroup_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6209: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6213: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6214:2: rule__ActionReference__Group__4__Impl rule__ActionReference__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__4__Impl_in_rule__ActionReference__Group__412288);
+            rule__ActionReference__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__5_in_rule__ActionReference__Group__412291);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6221:1: rule__ActionReference__Group__4__Impl : ( 'refersTo' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6225:1: ( ( 'refersTo' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6226:1: ( 'refersTo' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6226:1: ( 'refersTo' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6227:1: 'refersTo'
+            {
+             before(grammarAccess.getActionReferenceAccess().getRefersToKeyword_4()); 
+            match(input,49,FollowSets000.FOLLOW_49_in_rule__ActionReference__Group__4__Impl12319); 
+             after(grammarAccess.getActionReferenceAccess().getRefersToKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6240:1: rule__ActionReference__Group__5 : rule__ActionReference__Group__5__Impl rule__ActionReference__Group__6 ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6244:1: ( rule__ActionReference__Group__5__Impl rule__ActionReference__Group__6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6245:2: rule__ActionReference__Group__5__Impl rule__ActionReference__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__5__Impl_in_rule__ActionReference__Group__512350);
+            rule__ActionReference__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__6_in_rule__ActionReference__Group__512353);
+            rule__ActionReference__Group__6();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6252:1: rule__ActionReference__Group__5__Impl : ( ( rule__ActionReference__RefersToAssignment_5 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6256:1: ( ( ( rule__ActionReference__RefersToAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6257:1: ( ( rule__ActionReference__RefersToAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6257:1: ( ( rule__ActionReference__RefersToAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6258:1: ( rule__ActionReference__RefersToAssignment_5 )
+            {
+             before(grammarAccess.getActionReferenceAccess().getRefersToAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6259:1: ( rule__ActionReference__RefersToAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6259:2: rule__ActionReference__RefersToAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__RefersToAssignment_5_in_rule__ActionReference__Group__5__Impl12380);
+            rule__ActionReference__RefersToAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getRefersToAssignment_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__6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6269:1: rule__ActionReference__Group__6 : rule__ActionReference__Group__6__Impl ;
+    public final void rule__ActionReference__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6273:1: ( rule__ActionReference__Group__6__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6274:2: rule__ActionReference__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group__6__Impl_in_rule__ActionReference__Group__612410);
+            rule__ActionReference__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__6"
+
+
+    // $ANTLR start "rule__ActionReference__Group__6__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6280:1: rule__ActionReference__Group__6__Impl : ( '}' ) ;
+    public final void rule__ActionReference__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6284:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6285:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6285:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6286:1: '}'
+            {
+             before(grammarAccess.getActionReferenceAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__ActionReference__Group__6__Impl12438); 
+             after(grammarAccess.getActionReferenceAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group_2__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6313:1: rule__ActionReference__Group_2__0 : rule__ActionReference__Group_2__0__Impl rule__ActionReference__Group_2__1 ;
+    public final void rule__ActionReference__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6317:1: ( rule__ActionReference__Group_2__0__Impl rule__ActionReference__Group_2__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6318:2: rule__ActionReference__Group_2__0__Impl rule__ActionReference__Group_2__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_2__0__Impl_in_rule__ActionReference__Group_2__012483);
+            rule__ActionReference__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_2__1_in_rule__ActionReference__Group_2__012486);
+            rule__ActionReference__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_2__0"
+
+
+    // $ANTLR start "rule__ActionReference__Group_2__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6325:1: rule__ActionReference__Group_2__0__Impl : ( 'predecessor' ) ;
+    public final void rule__ActionReference__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6329:1: ( ( 'predecessor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6330:1: ( 'predecessor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6330:1: ( 'predecessor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6331:1: 'predecessor'
+            {
+             before(grammarAccess.getActionReferenceAccess().getPredecessorKeyword_2_0()); 
+            match(input,39,FollowSets000.FOLLOW_39_in_rule__ActionReference__Group_2__0__Impl12514); 
+             after(grammarAccess.getActionReferenceAccess().getPredecessorKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group_2__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6344:1: rule__ActionReference__Group_2__1 : rule__ActionReference__Group_2__1__Impl ;
+    public final void rule__ActionReference__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6348:1: ( rule__ActionReference__Group_2__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6349:2: rule__ActionReference__Group_2__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_2__1__Impl_in_rule__ActionReference__Group_2__112545);
+            rule__ActionReference__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_2__1"
+
+
+    // $ANTLR start "rule__ActionReference__Group_2__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6355:1: rule__ActionReference__Group_2__1__Impl : ( ( rule__ActionReference__PredecessorAssignment_2_1 ) ) ;
+    public final void rule__ActionReference__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6359:1: ( ( ( rule__ActionReference__PredecessorAssignment_2_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6360:1: ( ( rule__ActionReference__PredecessorAssignment_2_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6360:1: ( ( rule__ActionReference__PredecessorAssignment_2_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6361:1: ( rule__ActionReference__PredecessorAssignment_2_1 )
+            {
+             before(grammarAccess.getActionReferenceAccess().getPredecessorAssignment_2_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6362:1: ( rule__ActionReference__PredecessorAssignment_2_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6362:2: rule__ActionReference__PredecessorAssignment_2_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__PredecessorAssignment_2_1_in_rule__ActionReference__Group_2__1__Impl12572);
+            rule__ActionReference__PredecessorAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getPredecessorAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6376:1: rule__ActionReference__Group_3__0 : rule__ActionReference__Group_3__0__Impl rule__ActionReference__Group_3__1 ;
+    public final void rule__ActionReference__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6380:1: ( rule__ActionReference__Group_3__0__Impl rule__ActionReference__Group_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6381:2: rule__ActionReference__Group_3__0__Impl rule__ActionReference__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_3__0__Impl_in_rule__ActionReference__Group_3__012606);
+            rule__ActionReference__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_3__1_in_rule__ActionReference__Group_3__012609);
+            rule__ActionReference__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_3__0"
+
+
+    // $ANTLR start "rule__ActionReference__Group_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6388:1: rule__ActionReference__Group_3__0__Impl : ( 'successor' ) ;
+    public final void rule__ActionReference__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6392:1: ( ( 'successor' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6393:1: ( 'successor' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6393:1: ( 'successor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6394:1: 'successor'
+            {
+             before(grammarAccess.getActionReferenceAccess().getSuccessorKeyword_3_0()); 
+            match(input,40,FollowSets000.FOLLOW_40_in_rule__ActionReference__Group_3__0__Impl12637); 
+             after(grammarAccess.getActionReferenceAccess().getSuccessorKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__ActionReference__Group_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6407:1: rule__ActionReference__Group_3__1 : rule__ActionReference__Group_3__1__Impl ;
+    public final void rule__ActionReference__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6411:1: ( rule__ActionReference__Group_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6412:2: rule__ActionReference__Group_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__Group_3__1__Impl_in_rule__ActionReference__Group_3__112668);
+            rule__ActionReference__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_3__1"
+
+
+    // $ANTLR start "rule__ActionReference__Group_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6418:1: rule__ActionReference__Group_3__1__Impl : ( ( rule__ActionReference__SuccessorAssignment_3_1 ) ) ;
+    public final void rule__ActionReference__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6422:1: ( ( ( rule__ActionReference__SuccessorAssignment_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6423:1: ( ( rule__ActionReference__SuccessorAssignment_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6423:1: ( ( rule__ActionReference__SuccessorAssignment_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6424:1: ( rule__ActionReference__SuccessorAssignment_3_1 )
+            {
+             before(grammarAccess.getActionReferenceAccess().getSuccessorAssignment_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6425:1: ( rule__ActionReference__SuccessorAssignment_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6425:2: rule__ActionReference__SuccessorAssignment_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ActionReference__SuccessorAssignment_3_1_in_rule__ActionReference__Group_3__1__Impl12695);
+            rule__ActionReference__SuccessorAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getSuccessorAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__EInt__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6439:1: rule__EInt__Group__0 : rule__EInt__Group__0__Impl rule__EInt__Group__1 ;
+    public final void rule__EInt__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6443:1: ( rule__EInt__Group__0__Impl rule__EInt__Group__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6444:2: rule__EInt__Group__0__Impl rule__EInt__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EInt__Group__0__Impl_in_rule__EInt__Group__012729);
+            rule__EInt__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EInt__Group__1_in_rule__EInt__Group__012732);
+            rule__EInt__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EInt__Group__0"
+
+
+    // $ANTLR start "rule__EInt__Group__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6451:1: rule__EInt__Group__0__Impl : ( ( '-' )? ) ;
+    public final void rule__EInt__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6455:1: ( ( ( '-' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6456:1: ( ( '-' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6456:1: ( ( '-' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6457:1: ( '-' )?
+            {
+             before(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6458:1: ( '-' )?
+            int alt32=2;
+            int LA32_0 = input.LA(1);
+
+            if ( (LA32_0==50) ) {
+                alt32=1;
+            }
+            switch (alt32) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6459:2: '-'
+                    {
+                    match(input,50,FollowSets000.FOLLOW_50_in_rule__EInt__Group__0__Impl12761); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EInt__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EInt__Group__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6470:1: rule__EInt__Group__1 : rule__EInt__Group__1__Impl ;
+    public final void rule__EInt__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6474:1: ( rule__EInt__Group__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6475:2: rule__EInt__Group__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EInt__Group__1__Impl_in_rule__EInt__Group__112794);
+            rule__EInt__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EInt__Group__1"
+
+
+    // $ANTLR start "rule__EInt__Group__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6481:1: rule__EInt__Group__1__Impl : ( RULE_INT ) ;
+    public final void rule__EInt__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6485:1: ( ( RULE_INT ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6486:1: ( RULE_INT )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6486:1: ( RULE_INT )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6487:1: RULE_INT
+            {
+             before(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); 
+            match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_rule__EInt__Group__1__Impl12821); 
+             after(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EInt__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6502: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6506: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6507:2: rule__ModelVariableConfigurationRange__Group__0__Impl rule__ModelVariableConfigurationRange__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__0__Impl_in_rule__ModelVariableConfigurationRange__Group__012854);
+            rule__ModelVariableConfigurationRange__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__1_in_rule__ModelVariableConfigurationRange__Group__012857);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6514: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6518:1: ( ( 'ModelVariableConfigurationRange' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6519:1: ( 'ModelVariableConfigurationRange' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6519:1: ( 'ModelVariableConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6520:1: 'ModelVariableConfigurationRange'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__ModelVariableConfigurationRange__Group__0__Impl12885); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6533: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6537: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6538:2: rule__ModelVariableConfigurationRange__Group__1__Impl rule__ModelVariableConfigurationRange__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__1__Impl_in_rule__ModelVariableConfigurationRange__Group__112916);
+            rule__ModelVariableConfigurationRange__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__2_in_rule__ModelVariableConfigurationRange__Group__112919);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6545:1: rule__ModelVariableConfigurationRange__Group__1__Impl : ( ( rule__ModelVariableConfigurationRange__IdAssignment_1 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6549:1: ( ( ( rule__ModelVariableConfigurationRange__IdAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6550:1: ( ( rule__ModelVariableConfigurationRange__IdAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6550:1: ( ( rule__ModelVariableConfigurationRange__IdAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6551:1: ( rule__ModelVariableConfigurationRange__IdAssignment_1 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6552:1: ( rule__ModelVariableConfigurationRange__IdAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6552:2: rule__ModelVariableConfigurationRange__IdAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__IdAssignment_1_in_rule__ModelVariableConfigurationRange__Group__1__Impl12946);
+            rule__ModelVariableConfigurationRange__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6562: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6566: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6567:2: rule__ModelVariableConfigurationRange__Group__2__Impl rule__ModelVariableConfigurationRange__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__2__Impl_in_rule__ModelVariableConfigurationRange__Group__212976);
+            rule__ModelVariableConfigurationRange__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__3_in_rule__ModelVariableConfigurationRange__Group__212979);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6574: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6578:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6579:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6579:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6580:1: '{'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__ModelVariableConfigurationRange__Group__2__Impl13007); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6593: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6597: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6598:2: rule__ModelVariableConfigurationRange__Group__3__Impl rule__ModelVariableConfigurationRange__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__3__Impl_in_rule__ModelVariableConfigurationRange__Group__313038);
+            rule__ModelVariableConfigurationRange__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__4_in_rule__ModelVariableConfigurationRange__Group__313041);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6605:1: rule__ModelVariableConfigurationRange__Group__3__Impl : ( 'minValue' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6609:1: ( ( 'minValue' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6610:1: ( 'minValue' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6610:1: ( 'minValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6611:1: 'minValue'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_3()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__ModelVariableConfigurationRange__Group__3__Impl13069); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6624: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6628: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6629:2: rule__ModelVariableConfigurationRange__Group__4__Impl rule__ModelVariableConfigurationRange__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__4__Impl_in_rule__ModelVariableConfigurationRange__Group__413100);
+            rule__ModelVariableConfigurationRange__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__5_in_rule__ModelVariableConfigurationRange__Group__413103);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6636:1: rule__ModelVariableConfigurationRange__Group__4__Impl : ( ( rule__ModelVariableConfigurationRange__MinValueAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6640:1: ( ( ( rule__ModelVariableConfigurationRange__MinValueAssignment_4 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6641:1: ( ( rule__ModelVariableConfigurationRange__MinValueAssignment_4 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6641:1: ( ( rule__ModelVariableConfigurationRange__MinValueAssignment_4 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6642:1: ( rule__ModelVariableConfigurationRange__MinValueAssignment_4 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6643:1: ( rule__ModelVariableConfigurationRange__MinValueAssignment_4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6643:2: rule__ModelVariableConfigurationRange__MinValueAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__MinValueAssignment_4_in_rule__ModelVariableConfigurationRange__Group__4__Impl13130);
+            rule__ModelVariableConfigurationRange__MinValueAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6653: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6657: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6658:2: rule__ModelVariableConfigurationRange__Group__5__Impl rule__ModelVariableConfigurationRange__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__5__Impl_in_rule__ModelVariableConfigurationRange__Group__513160);
+            rule__ModelVariableConfigurationRange__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__6_in_rule__ModelVariableConfigurationRange__Group__513163);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6665:1: rule__ModelVariableConfigurationRange__Group__5__Impl : ( 'maxValue' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6669:1: ( ( 'maxValue' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6670:1: ( 'maxValue' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6670:1: ( 'maxValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6671:1: 'maxValue'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_5()); 
+            match(input,53,FollowSets000.FOLLOW_53_in_rule__ModelVariableConfigurationRange__Group__5__Impl13191); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6684: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6688: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6689:2: rule__ModelVariableConfigurationRange__Group__6__Impl rule__ModelVariableConfigurationRange__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__6__Impl_in_rule__ModelVariableConfigurationRange__Group__613222);
+            rule__ModelVariableConfigurationRange__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__7_in_rule__ModelVariableConfigurationRange__Group__613225);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6696:1: rule__ModelVariableConfigurationRange__Group__6__Impl : ( ( rule__ModelVariableConfigurationRange__MaxValueAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6700:1: ( ( ( rule__ModelVariableConfigurationRange__MaxValueAssignment_6 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6701:1: ( ( rule__ModelVariableConfigurationRange__MaxValueAssignment_6 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6701:1: ( ( rule__ModelVariableConfigurationRange__MaxValueAssignment_6 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6702:1: ( rule__ModelVariableConfigurationRange__MaxValueAssignment_6 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_6()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6703:1: ( rule__ModelVariableConfigurationRange__MaxValueAssignment_6 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6703:2: rule__ModelVariableConfigurationRange__MaxValueAssignment_6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__MaxValueAssignment_6_in_rule__ModelVariableConfigurationRange__Group__6__Impl13252);
+            rule__ModelVariableConfigurationRange__MaxValueAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6713: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6717: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6718:2: rule__ModelVariableConfigurationRange__Group__7__Impl rule__ModelVariableConfigurationRange__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__7__Impl_in_rule__ModelVariableConfigurationRange__Group__713282);
+            rule__ModelVariableConfigurationRange__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__8_in_rule__ModelVariableConfigurationRange__Group__713285);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6725:1: rule__ModelVariableConfigurationRange__Group__7__Impl : ( 'adaptableEntity' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6729:1: ( ( 'adaptableEntity' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6730:1: ( 'adaptableEntity' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6730:1: ( 'adaptableEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6731:1: 'adaptableEntity'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_7()); 
+            match(input,54,FollowSets000.FOLLOW_54_in_rule__ModelVariableConfigurationRange__Group__7__Impl13313); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6744: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6748: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6749:2: rule__ModelVariableConfigurationRange__Group__8__Impl rule__ModelVariableConfigurationRange__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__8__Impl_in_rule__ModelVariableConfigurationRange__Group__813344);
+            rule__ModelVariableConfigurationRange__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__9_in_rule__ModelVariableConfigurationRange__Group__813347);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6756:1: rule__ModelVariableConfigurationRange__Group__8__Impl : ( ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6760:1: ( ( ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6761:1: ( ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6761:1: ( ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6762:1: ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8 )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_8()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6763:1: ( rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6763:2: rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8_in_rule__ModelVariableConfigurationRange__Group__8__Impl13374);
+            rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6773:1: rule__ModelVariableConfigurationRange__Group__9 : rule__ModelVariableConfigurationRange__Group__9__Impl ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6777:1: ( rule__ModelVariableConfigurationRange__Group__9__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6778:2: rule__ModelVariableConfigurationRange__Group__9__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelVariableConfigurationRange__Group__9__Impl_in_rule__ModelVariableConfigurationRange__Group__913404);
+            rule__ModelVariableConfigurationRange__Group__9__Impl();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6784:1: rule__ModelVariableConfigurationRange__Group__9__Impl : ( '}' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6788:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6789:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6789:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6790:1: '}'
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__ModelVariableConfigurationRange__Group__9__Impl13432); 
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__Group__9__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6823: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6827: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6828:2: rule__ModelEntityConfigurationRange__Group__0__Impl rule__ModelEntityConfigurationRange__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__0__Impl_in_rule__ModelEntityConfigurationRange__Group__013483);
+            rule__ModelEntityConfigurationRange__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__1_in_rule__ModelEntityConfigurationRange__Group__013486);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6835: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6839:1: ( ( 'ModelEntityConfigurationRange' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6840:1: ( 'ModelEntityConfigurationRange' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6840:1: ( 'ModelEntityConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6841:1: 'ModelEntityConfigurationRange'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0()); 
+            match(input,55,FollowSets000.FOLLOW_55_in_rule__ModelEntityConfigurationRange__Group__0__Impl13514); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6854: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6858: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6859:2: rule__ModelEntityConfigurationRange__Group__1__Impl rule__ModelEntityConfigurationRange__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__1__Impl_in_rule__ModelEntityConfigurationRange__Group__113545);
+            rule__ModelEntityConfigurationRange__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__2_in_rule__ModelEntityConfigurationRange__Group__113548);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6866:1: rule__ModelEntityConfigurationRange__Group__1__Impl : ( ( rule__ModelEntityConfigurationRange__IdAssignment_1 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6870:1: ( ( ( rule__ModelEntityConfigurationRange__IdAssignment_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6871:1: ( ( rule__ModelEntityConfigurationRange__IdAssignment_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6871:1: ( ( rule__ModelEntityConfigurationRange__IdAssignment_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6872:1: ( rule__ModelEntityConfigurationRange__IdAssignment_1 )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6873:1: ( rule__ModelEntityConfigurationRange__IdAssignment_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6873:2: rule__ModelEntityConfigurationRange__IdAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__IdAssignment_1_in_rule__ModelEntityConfigurationRange__Group__1__Impl13575);
+            rule__ModelEntityConfigurationRange__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6883: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6887: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6888:2: rule__ModelEntityConfigurationRange__Group__2__Impl rule__ModelEntityConfigurationRange__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__2__Impl_in_rule__ModelEntityConfigurationRange__Group__213605);
+            rule__ModelEntityConfigurationRange__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__3_in_rule__ModelEntityConfigurationRange__Group__213608);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6895: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6899:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6900:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6900:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6901:1: '{'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__ModelEntityConfigurationRange__Group__2__Impl13636); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6914: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6918: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6919:2: rule__ModelEntityConfigurationRange__Group__3__Impl rule__ModelEntityConfigurationRange__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__3__Impl_in_rule__ModelEntityConfigurationRange__Group__313667);
+            rule__ModelEntityConfigurationRange__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__4_in_rule__ModelEntityConfigurationRange__Group__313670);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6926:1: rule__ModelEntityConfigurationRange__Group__3__Impl : ( ( rule__ModelEntityConfigurationRange__Group_3__0 )? ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6930:1: ( ( ( rule__ModelEntityConfigurationRange__Group_3__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6931:1: ( ( rule__ModelEntityConfigurationRange__Group_3__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6931:1: ( ( rule__ModelEntityConfigurationRange__Group_3__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6932:1: ( rule__ModelEntityConfigurationRange__Group_3__0 )?
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6933:1: ( rule__ModelEntityConfigurationRange__Group_3__0 )?
+            int alt33=2;
+            int LA33_0 = input.LA(1);
+
+            if ( (LA33_0==57) ) {
+                alt33=1;
+            }
+            switch (alt33) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6933:2: rule__ModelEntityConfigurationRange__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__0_in_rule__ModelEntityConfigurationRange__Group__3__Impl13697);
+                    rule__ModelEntityConfigurationRange__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6943: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6947: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6948:2: rule__ModelEntityConfigurationRange__Group__4__Impl rule__ModelEntityConfigurationRange__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__4__Impl_in_rule__ModelEntityConfigurationRange__Group__413728);
+            rule__ModelEntityConfigurationRange__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__5_in_rule__ModelEntityConfigurationRange__Group__413731);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6955:1: rule__ModelEntityConfigurationRange__Group__4__Impl : ( 'variationPossibility' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6959:1: ( ( 'variationPossibility' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6960:1: ( 'variationPossibility' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6960:1: ( 'variationPossibility' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6961:1: 'variationPossibility'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_4()); 
+            match(input,56,FollowSets000.FOLLOW_56_in_rule__ModelEntityConfigurationRange__Group__4__Impl13759); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6974: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6978: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6979:2: rule__ModelEntityConfigurationRange__Group__5__Impl rule__ModelEntityConfigurationRange__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__5__Impl_in_rule__ModelEntityConfigurationRange__Group__513790);
+            rule__ModelEntityConfigurationRange__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__6_in_rule__ModelEntityConfigurationRange__Group__513793);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6986:1: rule__ModelEntityConfigurationRange__Group__5__Impl : ( ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6990:1: ( ( ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6991:1: ( ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6991:1: ( ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6992:1: ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5 )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6993:1: ( rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:6993:2: rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5_in_rule__ModelEntityConfigurationRange__Group__5__Impl13820);
+            rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7003:1: rule__ModelEntityConfigurationRange__Group__6 : rule__ModelEntityConfigurationRange__Group__6__Impl ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7007:1: ( rule__ModelEntityConfigurationRange__Group__6__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7008:2: rule__ModelEntityConfigurationRange__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group__6__Impl_in_rule__ModelEntityConfigurationRange__Group__613850);
+            rule__ModelEntityConfigurationRange__Group__6__Impl();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7014:1: rule__ModelEntityConfigurationRange__Group__6__Impl : ( '}' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7018:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7019:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7019:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7020:1: '}'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__ModelEntityConfigurationRange__Group__6__Impl13878); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_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_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7047:1: rule__ModelEntityConfigurationRange__Group_3__0 : rule__ModelEntityConfigurationRange__Group_3__0__Impl rule__ModelEntityConfigurationRange__Group_3__1 ;
+    public final void rule__ModelEntityConfigurationRange__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7051:1: ( rule__ModelEntityConfigurationRange__Group_3__0__Impl rule__ModelEntityConfigurationRange__Group_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7052:2: rule__ModelEntityConfigurationRange__Group_3__0__Impl rule__ModelEntityConfigurationRange__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__0__Impl_in_rule__ModelEntityConfigurationRange__Group_3__013923);
+            rule__ModelEntityConfigurationRange__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__1_in_rule__ModelEntityConfigurationRange__Group_3__013926);
+            rule__ModelEntityConfigurationRange__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__0"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7059:1: rule__ModelEntityConfigurationRange__Group_3__0__Impl : ( 'entity' ) ;
+    public final void rule__ModelEntityConfigurationRange__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7063:1: ( ( 'entity' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7064:1: ( 'entity' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7064:1: ( 'entity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7065:1: 'entity'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityKeyword_3_0()); 
+            match(input,57,FollowSets000.FOLLOW_57_in_rule__ModelEntityConfigurationRange__Group_3__0__Impl13954); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7078:1: rule__ModelEntityConfigurationRange__Group_3__1 : rule__ModelEntityConfigurationRange__Group_3__1__Impl rule__ModelEntityConfigurationRange__Group_3__2 ;
+    public final void rule__ModelEntityConfigurationRange__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7082:1: ( rule__ModelEntityConfigurationRange__Group_3__1__Impl rule__ModelEntityConfigurationRange__Group_3__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7083:2: rule__ModelEntityConfigurationRange__Group_3__1__Impl rule__ModelEntityConfigurationRange__Group_3__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__1__Impl_in_rule__ModelEntityConfigurationRange__Group_3__113985);
+            rule__ModelEntityConfigurationRange__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__2_in_rule__ModelEntityConfigurationRange__Group_3__113988);
+            rule__ModelEntityConfigurationRange__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__1"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7090:1: rule__ModelEntityConfigurationRange__Group_3__1__Impl : ( '(' ) ;
+    public final void rule__ModelEntityConfigurationRange__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7094:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7095:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7095:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7096:1: '('
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftParenthesisKeyword_3_1()); 
+            match(input,25,FollowSets000.FOLLOW_25_in_rule__ModelEntityConfigurationRange__Group_3__1__Impl14016); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getLeftParenthesisKeyword_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7109:1: rule__ModelEntityConfigurationRange__Group_3__2 : rule__ModelEntityConfigurationRange__Group_3__2__Impl rule__ModelEntityConfigurationRange__Group_3__3 ;
+    public final void rule__ModelEntityConfigurationRange__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7113:1: ( rule__ModelEntityConfigurationRange__Group_3__2__Impl rule__ModelEntityConfigurationRange__Group_3__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7114:2: rule__ModelEntityConfigurationRange__Group_3__2__Impl rule__ModelEntityConfigurationRange__Group_3__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__2__Impl_in_rule__ModelEntityConfigurationRange__Group_3__214047);
+            rule__ModelEntityConfigurationRange__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__3_in_rule__ModelEntityConfigurationRange__Group_3__214050);
+            rule__ModelEntityConfigurationRange__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__2"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7121:1: rule__ModelEntityConfigurationRange__Group_3__2__Impl : ( ( rule__ModelEntityConfigurationRange__EntityAssignment_3_2 ) ) ;
+    public final void rule__ModelEntityConfigurationRange__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7125:1: ( ( ( rule__ModelEntityConfigurationRange__EntityAssignment_3_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7126:1: ( ( rule__ModelEntityConfigurationRange__EntityAssignment_3_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7126:1: ( ( rule__ModelEntityConfigurationRange__EntityAssignment_3_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7127:1: ( rule__ModelEntityConfigurationRange__EntityAssignment_3_2 )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7128:1: ( rule__ModelEntityConfigurationRange__EntityAssignment_3_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7128:2: rule__ModelEntityConfigurationRange__EntityAssignment_3_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__EntityAssignment_3_2_in_rule__ModelEntityConfigurationRange__Group_3__2__Impl14077);
+            rule__ModelEntityConfigurationRange__EntityAssignment_3_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7138:1: rule__ModelEntityConfigurationRange__Group_3__3 : rule__ModelEntityConfigurationRange__Group_3__3__Impl rule__ModelEntityConfigurationRange__Group_3__4 ;
+    public final void rule__ModelEntityConfigurationRange__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7142:1: ( rule__ModelEntityConfigurationRange__Group_3__3__Impl rule__ModelEntityConfigurationRange__Group_3__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7143:2: rule__ModelEntityConfigurationRange__Group_3__3__Impl rule__ModelEntityConfigurationRange__Group_3__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__3__Impl_in_rule__ModelEntityConfigurationRange__Group_3__314107);
+            rule__ModelEntityConfigurationRange__Group_3__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__4_in_rule__ModelEntityConfigurationRange__Group_3__314110);
+            rule__ModelEntityConfigurationRange__Group_3__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__3"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7150:1: rule__ModelEntityConfigurationRange__Group_3__3__Impl : ( ( rule__ModelEntityConfigurationRange__Group_3_3__0 )* ) ;
+    public final void rule__ModelEntityConfigurationRange__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7154:1: ( ( ( rule__ModelEntityConfigurationRange__Group_3_3__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7155:1: ( ( rule__ModelEntityConfigurationRange__Group_3_3__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7155:1: ( ( rule__ModelEntityConfigurationRange__Group_3_3__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7156:1: ( rule__ModelEntityConfigurationRange__Group_3_3__0 )*
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_3_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7157:1: ( rule__ModelEntityConfigurationRange__Group_3_3__0 )*
+            loop34:
+            do {
+                int alt34=2;
+                int LA34_0 = input.LA(1);
+
+                if ( (LA34_0==20) ) {
+                    alt34=1;
+                }
+
+
+                switch (alt34) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7157:2: rule__ModelEntityConfigurationRange__Group_3_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3_3__0_in_rule__ModelEntityConfigurationRange__Group_3__3__Impl14137);
+            	    rule__ModelEntityConfigurationRange__Group_3_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop34;
+                }
+            } while (true);
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7167:1: rule__ModelEntityConfigurationRange__Group_3__4 : rule__ModelEntityConfigurationRange__Group_3__4__Impl ;
+    public final void rule__ModelEntityConfigurationRange__Group_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7171:1: ( rule__ModelEntityConfigurationRange__Group_3__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7172:2: rule__ModelEntityConfigurationRange__Group_3__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3__4__Impl_in_rule__ModelEntityConfigurationRange__Group_3__414168);
+            rule__ModelEntityConfigurationRange__Group_3__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__4"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7178:1: rule__ModelEntityConfigurationRange__Group_3__4__Impl : ( ')' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group_3__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7182:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7183:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7183:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7184:1: ')'
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getRightParenthesisKeyword_3_4()); 
+            match(input,26,FollowSets000.FOLLOW_26_in_rule__ModelEntityConfigurationRange__Group_3__4__Impl14196); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getRightParenthesisKeyword_3_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3__4__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7207:1: rule__ModelEntityConfigurationRange__Group_3_3__0 : rule__ModelEntityConfigurationRange__Group_3_3__0__Impl rule__ModelEntityConfigurationRange__Group_3_3__1 ;
+    public final void rule__ModelEntityConfigurationRange__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7211:1: ( rule__ModelEntityConfigurationRange__Group_3_3__0__Impl rule__ModelEntityConfigurationRange__Group_3_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7212:2: rule__ModelEntityConfigurationRange__Group_3_3__0__Impl rule__ModelEntityConfigurationRange__Group_3_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3_3__0__Impl_in_rule__ModelEntityConfigurationRange__Group_3_3__014237);
+            rule__ModelEntityConfigurationRange__Group_3_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3_3__1_in_rule__ModelEntityConfigurationRange__Group_3_3__014240);
+            rule__ModelEntityConfigurationRange__Group_3_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3_3__0"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7219:1: rule__ModelEntityConfigurationRange__Group_3_3__0__Impl : ( ',' ) ;
+    public final void rule__ModelEntityConfigurationRange__Group_3_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7223:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7224:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7224:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7225:1: ','
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getCommaKeyword_3_3_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__ModelEntityConfigurationRange__Group_3_3__0__Impl14268); 
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getCommaKeyword_3_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7238:1: rule__ModelEntityConfigurationRange__Group_3_3__1 : rule__ModelEntityConfigurationRange__Group_3_3__1__Impl ;
+    public final void rule__ModelEntityConfigurationRange__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7242:1: ( rule__ModelEntityConfigurationRange__Group_3_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7243:2: rule__ModelEntityConfigurationRange__Group_3_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__Group_3_3__1__Impl_in_rule__ModelEntityConfigurationRange__Group_3_3__114299);
+            rule__ModelEntityConfigurationRange__Group_3_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3_3__1"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__Group_3_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7249:1: rule__ModelEntityConfigurationRange__Group_3_3__1__Impl : ( ( rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1 ) ) ;
+    public final void rule__ModelEntityConfigurationRange__Group_3_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7253:1: ( ( ( rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7254:1: ( ( rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7254:1: ( ( rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7255:1: ( rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1 )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7256:1: ( rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7256:2: rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1_in_rule__ModelEntityConfigurationRange__Group_3_3__1__Impl14326);
+            rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7270: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7274: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7275:2: rule__EDouble__Group__0__Impl rule__EDouble__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__0__Impl_in_rule__EDouble__Group__014360);
+            rule__EDouble__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__1_in_rule__EDouble__Group__014363);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7282: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7286:1: ( ( ( '-' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7287:1: ( ( '-' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7287:1: ( ( '-' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7288:1: ( '-' )?
+            {
+             before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7289:1: ( '-' )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
+
+            if ( (LA35_0==50) ) {
+                alt35=1;
+            }
+            switch (alt35) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7290:2: '-'
+                    {
+                    match(input,50,FollowSets000.FOLLOW_50_in_rule__EDouble__Group__0__Impl14392); 
+
+                    }
+                    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7301: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7305: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7306:2: rule__EDouble__Group__1__Impl rule__EDouble__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__1__Impl_in_rule__EDouble__Group__114425);
+            rule__EDouble__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__2_in_rule__EDouble__Group__114428);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7313: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7317:1: ( ( ( RULE_INT )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7318:1: ( ( RULE_INT )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7318:1: ( ( RULE_INT )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7319:1: ( RULE_INT )?
+            {
+             before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7320:1: ( RULE_INT )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
+
+            if ( (LA36_0==RULE_INT) ) {
+                alt36=1;
+            }
+            switch (alt36) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7320:3: RULE_INT
+                    {
+                    match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_rule__EDouble__Group__1__Impl14456); 
+
+                    }
+                    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7330: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7334: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7335:2: rule__EDouble__Group__2__Impl rule__EDouble__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__2__Impl_in_rule__EDouble__Group__214487);
+            rule__EDouble__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__3_in_rule__EDouble__Group__214490);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7342: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7346:1: ( ( '.' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7347:1: ( '.' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7347:1: ( '.' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7348:1: '.'
+            {
+             before(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); 
+            match(input,58,FollowSets000.FOLLOW_58_in_rule__EDouble__Group__2__Impl14518); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7361: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7365: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7366:2: rule__EDouble__Group__3__Impl rule__EDouble__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__3__Impl_in_rule__EDouble__Group__314549);
+            rule__EDouble__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__4_in_rule__EDouble__Group__314552);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7373: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7377:1: ( ( RULE_INT ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7378:1: ( RULE_INT )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7378:1: ( RULE_INT )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7379:1: RULE_INT
+            {
+             before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); 
+            match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_rule__EDouble__Group__3__Impl14579); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7390: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7394:1: ( rule__EDouble__Group__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7395:2: rule__EDouble__Group__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__4__Impl_in_rule__EDouble__Group__414608);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7401: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7405:1: ( ( ( rule__EDouble__Group_4__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7406:1: ( ( rule__EDouble__Group_4__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7406:1: ( ( rule__EDouble__Group_4__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7407: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7408:1: ( rule__EDouble__Group_4__0 )?
+            int alt37=2;
+            int LA37_0 = input.LA(1);
+
+            if ( ((LA37_0>=11 && LA37_0<=12)) ) {
+                alt37=1;
+            }
+            switch (alt37) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7408:2: rule__EDouble__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__0_in_rule__EDouble__Group__4__Impl14635);
+                    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7428: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7432: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7433: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__014676);
+            rule__EDouble__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__1_in_rule__EDouble__Group_4__014679);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7440: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7444:1: ( ( ( rule__EDouble__Alternatives_4_0 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7445:1: ( ( rule__EDouble__Alternatives_4_0 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7445:1: ( ( rule__EDouble__Alternatives_4_0 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7446: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7447:1: ( rule__EDouble__Alternatives_4_0 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7447:2: rule__EDouble__Alternatives_4_0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Alternatives_4_0_in_rule__EDouble__Group_4__0__Impl14706);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7457: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7461: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7462: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__114736);
+            rule__EDouble__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__2_in_rule__EDouble__Group_4__114739);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7469: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7473:1: ( ( ( '-' )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7474:1: ( ( '-' )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7474:1: ( ( '-' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7475:1: ( '-' )?
+            {
+             before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7476:1: ( '-' )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==50) ) {
+                alt38=1;
+            }
+            switch (alt38) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7477:2: '-'
+                    {
+                    match(input,50,FollowSets000.FOLLOW_50_in_rule__EDouble__Group_4__1__Impl14768); 
+
+                    }
+                    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7488: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7492:1: ( rule__EDouble__Group_4__2__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7493:2: rule__EDouble__Group_4__2__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group_4__2__Impl_in_rule__EDouble__Group_4__214801);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7499: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7503:1: ( ( RULE_INT ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7504:1: ( RULE_INT )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7504:1: ( RULE_INT )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7505:1: RULE_INT
+            {
+             before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); 
+            match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_rule__EDouble__Group_4__2__Impl14828); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7523: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7527: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7528:2: rule__PropertyRange__Group__0__Impl rule__PropertyRange__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__0__Impl_in_rule__PropertyRange__Group__014864);
+            rule__PropertyRange__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__1_in_rule__PropertyRange__Group__014867);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7535: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7539:1: ( ( 'PropertyRange' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7540:1: ( 'PropertyRange' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7540:1: ( 'PropertyRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7541:1: 'PropertyRange'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0()); 
+            match(input,59,FollowSets000.FOLLOW_59_in_rule__PropertyRange__Group__0__Impl14895); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7554: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7558: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7559:2: rule__PropertyRange__Group__1__Impl rule__PropertyRange__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__1__Impl_in_rule__PropertyRange__Group__114926);
+            rule__PropertyRange__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__2_in_rule__PropertyRange__Group__114929);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7566: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7570:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7571:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7571:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7572:1: '{'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__PropertyRange__Group__1__Impl14957); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7585: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7589: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7590:2: rule__PropertyRange__Group__2__Impl rule__PropertyRange__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__2__Impl_in_rule__PropertyRange__Group__214988);
+            rule__PropertyRange__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__3_in_rule__PropertyRange__Group__214991);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7597: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7601:1: ( ( 'minValueConstraint' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7602:1: ( 'minValueConstraint' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7602:1: ( 'minValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7603:1: 'minValueConstraint'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2()); 
+            match(input,60,FollowSets000.FOLLOW_60_in_rule__PropertyRange__Group__2__Impl15019); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7616: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7620: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7621:2: rule__PropertyRange__Group__3__Impl rule__PropertyRange__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__3__Impl_in_rule__PropertyRange__Group__315050);
+            rule__PropertyRange__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__4_in_rule__PropertyRange__Group__315053);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7628: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7632:1: ( ( ( rule__PropertyRange__MinValueConstraintAssignment_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7633:1: ( ( rule__PropertyRange__MinValueConstraintAssignment_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7633:1: ( ( rule__PropertyRange__MinValueConstraintAssignment_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7634: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7635:1: ( rule__PropertyRange__MinValueConstraintAssignment_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7635:2: rule__PropertyRange__MinValueConstraintAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__MinValueConstraintAssignment_3_in_rule__PropertyRange__Group__3__Impl15080);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7645: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7649: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7650:2: rule__PropertyRange__Group__4__Impl rule__PropertyRange__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__4__Impl_in_rule__PropertyRange__Group__415110);
+            rule__PropertyRange__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__5_in_rule__PropertyRange__Group__415113);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7657: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7661:1: ( ( 'maxValueConstraint' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7662:1: ( 'maxValueConstraint' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7662:1: ( 'maxValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7663:1: 'maxValueConstraint'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4()); 
+            match(input,61,FollowSets000.FOLLOW_61_in_rule__PropertyRange__Group__4__Impl15141); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7676: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7680: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7681:2: rule__PropertyRange__Group__5__Impl rule__PropertyRange__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__5__Impl_in_rule__PropertyRange__Group__515172);
+            rule__PropertyRange__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__6_in_rule__PropertyRange__Group__515175);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7688: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7692:1: ( ( ( rule__PropertyRange__MaxValueConstraintAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7693:1: ( ( rule__PropertyRange__MaxValueConstraintAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7693:1: ( ( rule__PropertyRange__MaxValueConstraintAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7694: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7695:1: ( rule__PropertyRange__MaxValueConstraintAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7695:2: rule__PropertyRange__MaxValueConstraintAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__MaxValueConstraintAssignment_5_in_rule__PropertyRange__Group__5__Impl15202);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7705: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7709:1: ( rule__PropertyRange__Group__6__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7710:2: rule__PropertyRange__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PropertyRange__Group__6__Impl_in_rule__PropertyRange__Group__615232);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7716: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7720:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7721:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7721:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7722:1: '}'
+            {
+             before(grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__PropertyRange__Group__6__Impl15260); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7749: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7753: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7754:2: rule__SetOfConfigurations__Group__0__Impl rule__SetOfConfigurations__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__0__Impl_in_rule__SetOfConfigurations__Group__015305);
+            rule__SetOfConfigurations__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__1_in_rule__SetOfConfigurations__Group__015308);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7761: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7765:1: ( ( 'SetOfConfigurations' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7766:1: ( 'SetOfConfigurations' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7766:1: ( 'SetOfConfigurations' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7767:1: 'SetOfConfigurations'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0()); 
+            match(input,62,FollowSets000.FOLLOW_62_in_rule__SetOfConfigurations__Group__0__Impl15336); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7780: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7784: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7785:2: rule__SetOfConfigurations__Group__1__Impl rule__SetOfConfigurations__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__1__Impl_in_rule__SetOfConfigurations__Group__115367);
+            rule__SetOfConfigurations__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__2_in_rule__SetOfConfigurations__Group__115370);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7792: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7796:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7797:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7797:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7798:1: '{'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__SetOfConfigurations__Group__1__Impl15398); 
+             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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7811: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7815: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7816:2: rule__SetOfConfigurations__Group__2__Impl rule__SetOfConfigurations__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__2__Impl_in_rule__SetOfConfigurations__Group__215429);
+            rule__SetOfConfigurations__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__3_in_rule__SetOfConfigurations__Group__215432);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7823:1: rule__SetOfConfigurations__Group__2__Impl : ( 'valueConstraint' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7827:1: ( ( 'valueConstraint' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7828:1: ( 'valueConstraint' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7828:1: ( 'valueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7829:1: 'valueConstraint'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_2()); 
+            match(input,63,FollowSets000.FOLLOW_63_in_rule__SetOfConfigurations__Group__2__Impl15460); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7842: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7846: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7847:2: rule__SetOfConfigurations__Group__3__Impl rule__SetOfConfigurations__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__3__Impl_in_rule__SetOfConfigurations__Group__315491);
+            rule__SetOfConfigurations__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__4_in_rule__SetOfConfigurations__Group__315494);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7854:1: rule__SetOfConfigurations__Group__3__Impl : ( ( rule__SetOfConfigurations__ValueConstraintAssignment_3 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7858:1: ( ( ( rule__SetOfConfigurations__ValueConstraintAssignment_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7859:1: ( ( rule__SetOfConfigurations__ValueConstraintAssignment_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7859:1: ( ( rule__SetOfConfigurations__ValueConstraintAssignment_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7860:1: ( rule__SetOfConfigurations__ValueConstraintAssignment_3 )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7861:1: ( rule__SetOfConfigurations__ValueConstraintAssignment_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7861:2: rule__SetOfConfigurations__ValueConstraintAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__ValueConstraintAssignment_3_in_rule__SetOfConfigurations__Group__3__Impl15521);
+            rule__SetOfConfigurations__ValueConstraintAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7871: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7875: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7876:2: rule__SetOfConfigurations__Group__4__Impl rule__SetOfConfigurations__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__4__Impl_in_rule__SetOfConfigurations__Group__415551);
+            rule__SetOfConfigurations__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__5_in_rule__SetOfConfigurations__Group__415554);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7883:1: rule__SetOfConfigurations__Group__4__Impl : ( ( rule__SetOfConfigurations__Group_4__0 )? ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7887:1: ( ( ( rule__SetOfConfigurations__Group_4__0 )? ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7888:1: ( ( rule__SetOfConfigurations__Group_4__0 )? )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7888:1: ( ( rule__SetOfConfigurations__Group_4__0 )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7889:1: ( rule__SetOfConfigurations__Group_4__0 )?
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getGroup_4()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7890:1: ( rule__SetOfConfigurations__Group_4__0 )?
+            int alt39=2;
+            int LA39_0 = input.LA(1);
+
+            if ( (LA39_0==64) ) {
+                alt39=1;
+            }
+            switch (alt39) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7890:2: rule__SetOfConfigurations__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__0_in_rule__SetOfConfigurations__Group__4__Impl15581);
+                    rule__SetOfConfigurations__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getGroup_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7900: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7904:1: ( rule__SetOfConfigurations__Group__5__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7905:2: rule__SetOfConfigurations__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group__5__Impl_in_rule__SetOfConfigurations__Group__515612);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7911: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7915:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7916:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7916:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7917:1: '}'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__SetOfConfigurations__Group__5__Impl15640); 
+             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_4__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7942:1: rule__SetOfConfigurations__Group_4__0 : rule__SetOfConfigurations__Group_4__0__Impl rule__SetOfConfigurations__Group_4__1 ;
+    public final void rule__SetOfConfigurations__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7946:1: ( rule__SetOfConfigurations__Group_4__0__Impl rule__SetOfConfigurations__Group_4__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7947:2: rule__SetOfConfigurations__Group_4__0__Impl rule__SetOfConfigurations__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__0__Impl_in_rule__SetOfConfigurations__Group_4__015683);
+            rule__SetOfConfigurations__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__1_in_rule__SetOfConfigurations__Group_4__015686);
+            rule__SetOfConfigurations__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__0"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7954:1: rule__SetOfConfigurations__Group_4__0__Impl : ( 'variants' ) ;
+    public final void rule__SetOfConfigurations__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7958:1: ( ( 'variants' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7959:1: ( 'variants' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7959:1: ( 'variants' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7960:1: 'variants'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_4_0()); 
+            match(input,64,FollowSets000.FOLLOW_64_in_rule__SetOfConfigurations__Group_4__0__Impl15714); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7973:1: rule__SetOfConfigurations__Group_4__1 : rule__SetOfConfigurations__Group_4__1__Impl rule__SetOfConfigurations__Group_4__2 ;
+    public final void rule__SetOfConfigurations__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7977:1: ( rule__SetOfConfigurations__Group_4__1__Impl rule__SetOfConfigurations__Group_4__2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7978:2: rule__SetOfConfigurations__Group_4__1__Impl rule__SetOfConfigurations__Group_4__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__1__Impl_in_rule__SetOfConfigurations__Group_4__115745);
+            rule__SetOfConfigurations__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__2_in_rule__SetOfConfigurations__Group_4__115748);
+            rule__SetOfConfigurations__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__1"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7985:1: rule__SetOfConfigurations__Group_4__1__Impl : ( '(' ) ;
+    public final void rule__SetOfConfigurations__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7989:1: ( ( '(' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7990:1: ( '(' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7990:1: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:7991:1: '('
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_4_1()); 
+            match(input,25,FollowSets000.FOLLOW_25_in_rule__SetOfConfigurations__Group_4__1__Impl15776); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4__2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8004:1: rule__SetOfConfigurations__Group_4__2 : rule__SetOfConfigurations__Group_4__2__Impl rule__SetOfConfigurations__Group_4__3 ;
+    public final void rule__SetOfConfigurations__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8008:1: ( rule__SetOfConfigurations__Group_4__2__Impl rule__SetOfConfigurations__Group_4__3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8009:2: rule__SetOfConfigurations__Group_4__2__Impl rule__SetOfConfigurations__Group_4__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__2__Impl_in_rule__SetOfConfigurations__Group_4__215807);
+            rule__SetOfConfigurations__Group_4__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__3_in_rule__SetOfConfigurations__Group_4__215810);
+            rule__SetOfConfigurations__Group_4__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__2"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4__2__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8016:1: rule__SetOfConfigurations__Group_4__2__Impl : ( ( rule__SetOfConfigurations__VariantsAssignment_4_2 ) ) ;
+    public final void rule__SetOfConfigurations__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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8020:1: ( ( ( rule__SetOfConfigurations__VariantsAssignment_4_2 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8021:1: ( ( rule__SetOfConfigurations__VariantsAssignment_4_2 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8021:1: ( ( rule__SetOfConfigurations__VariantsAssignment_4_2 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8022:1: ( rule__SetOfConfigurations__VariantsAssignment_4_2 )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_2()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8023:1: ( rule__SetOfConfigurations__VariantsAssignment_4_2 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8023:2: rule__SetOfConfigurations__VariantsAssignment_4_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__VariantsAssignment_4_2_in_rule__SetOfConfigurations__Group_4__2__Impl15837);
+            rule__SetOfConfigurations__VariantsAssignment_4_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4__3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8033:1: rule__SetOfConfigurations__Group_4__3 : rule__SetOfConfigurations__Group_4__3__Impl rule__SetOfConfigurations__Group_4__4 ;
+    public final void rule__SetOfConfigurations__Group_4__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8037:1: ( rule__SetOfConfigurations__Group_4__3__Impl rule__SetOfConfigurations__Group_4__4 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8038:2: rule__SetOfConfigurations__Group_4__3__Impl rule__SetOfConfigurations__Group_4__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__3__Impl_in_rule__SetOfConfigurations__Group_4__315867);
+            rule__SetOfConfigurations__Group_4__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__4_in_rule__SetOfConfigurations__Group_4__315870);
+            rule__SetOfConfigurations__Group_4__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__3"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4__3__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8045:1: rule__SetOfConfigurations__Group_4__3__Impl : ( ( rule__SetOfConfigurations__Group_4_3__0 )* ) ;
+    public final void rule__SetOfConfigurations__Group_4__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8049:1: ( ( ( rule__SetOfConfigurations__Group_4_3__0 )* ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8050:1: ( ( rule__SetOfConfigurations__Group_4_3__0 )* )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8050:1: ( ( rule__SetOfConfigurations__Group_4_3__0 )* )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8051:1: ( rule__SetOfConfigurations__Group_4_3__0 )*
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getGroup_4_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8052:1: ( rule__SetOfConfigurations__Group_4_3__0 )*
+            loop40:
+            do {
+                int alt40=2;
+                int LA40_0 = input.LA(1);
+
+                if ( (LA40_0==20) ) {
+                    alt40=1;
+                }
+
+
+                switch (alt40) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8052:2: rule__SetOfConfigurations__Group_4_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4_3__0_in_rule__SetOfConfigurations__Group_4__3__Impl15897);
+            	    rule__SetOfConfigurations__Group_4_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop40;
+                }
+            } while (true);
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getGroup_4_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__3__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4__4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8062:1: rule__SetOfConfigurations__Group_4__4 : rule__SetOfConfigurations__Group_4__4__Impl ;
+    public final void rule__SetOfConfigurations__Group_4__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8066:1: ( rule__SetOfConfigurations__Group_4__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8067:2: rule__SetOfConfigurations__Group_4__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4__4__Impl_in_rule__SetOfConfigurations__Group_4__415928);
+            rule__SetOfConfigurations__Group_4__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__4"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4__4__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8073:1: rule__SetOfConfigurations__Group_4__4__Impl : ( ')' ) ;
+    public final void rule__SetOfConfigurations__Group_4__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8077:1: ( ( ')' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8078:1: ( ')' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8078:1: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8079:1: ')'
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_4_4()); 
+            match(input,26,FollowSets000.FOLLOW_26_in_rule__SetOfConfigurations__Group_4__4__Impl15956); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_4_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4__4__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4_3__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8102:1: rule__SetOfConfigurations__Group_4_3__0 : rule__SetOfConfigurations__Group_4_3__0__Impl rule__SetOfConfigurations__Group_4_3__1 ;
+    public final void rule__SetOfConfigurations__Group_4_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8106:1: ( rule__SetOfConfigurations__Group_4_3__0__Impl rule__SetOfConfigurations__Group_4_3__1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8107:2: rule__SetOfConfigurations__Group_4_3__0__Impl rule__SetOfConfigurations__Group_4_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4_3__0__Impl_in_rule__SetOfConfigurations__Group_4_3__015997);
+            rule__SetOfConfigurations__Group_4_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4_3__1_in_rule__SetOfConfigurations__Group_4_3__016000);
+            rule__SetOfConfigurations__Group_4_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4_3__0"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4_3__0__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8114:1: rule__SetOfConfigurations__Group_4_3__0__Impl : ( ',' ) ;
+    public final void rule__SetOfConfigurations__Group_4_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8118:1: ( ( ',' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8119:1: ( ',' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8119:1: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8120:1: ','
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_4_3_0()); 
+            match(input,20,FollowSets000.FOLLOW_20_in_rule__SetOfConfigurations__Group_4_3__0__Impl16028); 
+             after(grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_4_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4_3__0__Impl"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4_3__1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8133:1: rule__SetOfConfigurations__Group_4_3__1 : rule__SetOfConfigurations__Group_4_3__1__Impl ;
+    public final void rule__SetOfConfigurations__Group_4_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8137:1: ( rule__SetOfConfigurations__Group_4_3__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8138:2: rule__SetOfConfigurations__Group_4_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__Group_4_3__1__Impl_in_rule__SetOfConfigurations__Group_4_3__116059);
+            rule__SetOfConfigurations__Group_4_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4_3__1"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__Group_4_3__1__Impl"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8144:1: rule__SetOfConfigurations__Group_4_3__1__Impl : ( ( rule__SetOfConfigurations__VariantsAssignment_4_3_1 ) ) ;
+    public final void rule__SetOfConfigurations__Group_4_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8148:1: ( ( ( rule__SetOfConfigurations__VariantsAssignment_4_3_1 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8149:1: ( ( rule__SetOfConfigurations__VariantsAssignment_4_3_1 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8149:1: ( ( rule__SetOfConfigurations__VariantsAssignment_4_3_1 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8150:1: ( rule__SetOfConfigurations__VariantsAssignment_4_3_1 )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_3_1()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8151:1: ( rule__SetOfConfigurations__VariantsAssignment_4_3_1 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8151:2: rule__SetOfConfigurations__VariantsAssignment_4_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SetOfConfigurations__VariantsAssignment_4_3_1_in_rule__SetOfConfigurations__Group_4_3__1__Impl16086);
+            rule__SetOfConfigurations__VariantsAssignment_4_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__Group_4_3__1__Impl"
+
+
+    // $ANTLR start "rule__Event__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8167: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8171: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8172:2: rule__Event__Group__0__Impl rule__Event__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group__0__Impl_in_rule__Event__Group__016122);
+            rule__Event__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group__1_in_rule__Event__Group__016125);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8179:1: rule__Event__Group__0__Impl : ( () ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8183:1: ( ( () ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8184:1: ( () )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8184:1: ( () )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8185:1: ()
+            {
+             before(grammarAccess.getEventAccess().getEventAction_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8186:1: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8188:1: 
+            {
+            }
+
+             after(grammarAccess.getEventAccess().getEventAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8198: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8202:1: ( rule__Event__Group__1__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8203:2: rule__Event__Group__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Event__Group__1__Impl_in_rule__Event__Group__116183);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8209:1: rule__Event__Group__1__Impl : ( 'Event' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8213:1: ( ( 'Event' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8214:1: ( 'Event' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8214:1: ( 'Event' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8215:1: 'Event'
+            {
+             before(grammarAccess.getEventAccess().getEventKeyword_1()); 
+            match(input,65,FollowSets000.FOLLOW_65_in_rule__Event__Group__1__Impl16211); 
+             after(grammarAccess.getEventAccess().getEventKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Event__Group__1__Impl"
+
+
+    // $ANTLR start "rule__WeightedTactic__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8232: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8236: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8237:2: rule__WeightedTactic__Group__0__Impl rule__WeightedTactic__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__0__Impl_in_rule__WeightedTactic__Group__016246);
+            rule__WeightedTactic__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__1_in_rule__WeightedTactic__Group__016249);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8244:1: rule__WeightedTactic__Group__0__Impl : ( 'WeightedTactic' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8248:1: ( ( 'WeightedTactic' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8249:1: ( 'WeightedTactic' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8249:1: ( 'WeightedTactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8250:1: 'WeightedTactic'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getWeightedTacticKeyword_0()); 
+            match(input,66,FollowSets000.FOLLOW_66_in_rule__WeightedTactic__Group__0__Impl16277); 
+             after(grammarAccess.getWeightedTacticAccess().getWeightedTacticKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8263: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8267: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8268:2: rule__WeightedTactic__Group__1__Impl rule__WeightedTactic__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__1__Impl_in_rule__WeightedTactic__Group__116308);
+            rule__WeightedTactic__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__2_in_rule__WeightedTactic__Group__116311);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8275:1: rule__WeightedTactic__Group__1__Impl : ( '{' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8279:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8280:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8280:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8281:1: '{'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__WeightedTactic__Group__1__Impl16339); 
+             after(grammarAccess.getWeightedTacticAccess().getLeftCurlyBracketKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8294: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8298: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8299:2: rule__WeightedTactic__Group__2__Impl rule__WeightedTactic__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__2__Impl_in_rule__WeightedTactic__Group__216370);
+            rule__WeightedTactic__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__3_in_rule__WeightedTactic__Group__216373);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8306:1: rule__WeightedTactic__Group__2__Impl : ( 'currentWeight' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8310:1: ( ( 'currentWeight' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8311:1: ( 'currentWeight' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8311:1: ( 'currentWeight' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8312:1: 'currentWeight'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getCurrentWeightKeyword_2()); 
+            match(input,67,FollowSets000.FOLLOW_67_in_rule__WeightedTactic__Group__2__Impl16401); 
+             after(grammarAccess.getWeightedTacticAccess().getCurrentWeightKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8325: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8329: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8330:2: rule__WeightedTactic__Group__3__Impl rule__WeightedTactic__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__3__Impl_in_rule__WeightedTactic__Group__316432);
+            rule__WeightedTactic__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__4_in_rule__WeightedTactic__Group__316435);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8337:1: rule__WeightedTactic__Group__3__Impl : ( ( rule__WeightedTactic__CurrentWeightAssignment_3 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8341:1: ( ( ( rule__WeightedTactic__CurrentWeightAssignment_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8342:1: ( ( rule__WeightedTactic__CurrentWeightAssignment_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8342:1: ( ( rule__WeightedTactic__CurrentWeightAssignment_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8343:1: ( rule__WeightedTactic__CurrentWeightAssignment_3 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8344:1: ( rule__WeightedTactic__CurrentWeightAssignment_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8344:2: rule__WeightedTactic__CurrentWeightAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__CurrentWeightAssignment_3_in_rule__WeightedTactic__Group__3__Impl16462);
+            rule__WeightedTactic__CurrentWeightAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8354: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8358: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8359:2: rule__WeightedTactic__Group__4__Impl rule__WeightedTactic__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__4__Impl_in_rule__WeightedTactic__Group__416492);
+            rule__WeightedTactic__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__5_in_rule__WeightedTactic__Group__416495);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8366:1: rule__WeightedTactic__Group__4__Impl : ( 'defaultWeight' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8370:1: ( ( 'defaultWeight' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8371:1: ( 'defaultWeight' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8371:1: ( 'defaultWeight' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8372:1: 'defaultWeight'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getDefaultWeightKeyword_4()); 
+            match(input,68,FollowSets000.FOLLOW_68_in_rule__WeightedTactic__Group__4__Impl16523); 
+             after(grammarAccess.getWeightedTacticAccess().getDefaultWeightKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8385: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8389: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8390:2: rule__WeightedTactic__Group__5__Impl rule__WeightedTactic__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__5__Impl_in_rule__WeightedTactic__Group__516554);
+            rule__WeightedTactic__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__6_in_rule__WeightedTactic__Group__516557);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8397:1: rule__WeightedTactic__Group__5__Impl : ( ( rule__WeightedTactic__DefaultWeightAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8401:1: ( ( ( rule__WeightedTactic__DefaultWeightAssignment_5 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8402:1: ( ( rule__WeightedTactic__DefaultWeightAssignment_5 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8402:1: ( ( rule__WeightedTactic__DefaultWeightAssignment_5 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8403:1: ( rule__WeightedTactic__DefaultWeightAssignment_5 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_5()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8404:1: ( rule__WeightedTactic__DefaultWeightAssignment_5 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8404:2: rule__WeightedTactic__DefaultWeightAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__DefaultWeightAssignment_5_in_rule__WeightedTactic__Group__5__Impl16584);
+            rule__WeightedTactic__DefaultWeightAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8414: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8418: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8419:2: rule__WeightedTactic__Group__6__Impl rule__WeightedTactic__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__6__Impl_in_rule__WeightedTactic__Group__616614);
+            rule__WeightedTactic__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__7_in_rule__WeightedTactic__Group__616617);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8426:1: rule__WeightedTactic__Group__6__Impl : ( 'uses' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8430:1: ( ( 'uses' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8431:1: ( 'uses' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8431:1: ( 'uses' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8432:1: 'uses'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getUsesKeyword_6()); 
+            match(input,69,FollowSets000.FOLLOW_69_in_rule__WeightedTactic__Group__6__Impl16645); 
+             after(grammarAccess.getWeightedTacticAccess().getUsesKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8445: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8449: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8450:2: rule__WeightedTactic__Group__7__Impl rule__WeightedTactic__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__7__Impl_in_rule__WeightedTactic__Group__716676);
+            rule__WeightedTactic__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__8_in_rule__WeightedTactic__Group__716679);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8457:1: rule__WeightedTactic__Group__7__Impl : ( ( rule__WeightedTactic__UsesAssignment_7 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8461:1: ( ( ( rule__WeightedTactic__UsesAssignment_7 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8462:1: ( ( rule__WeightedTactic__UsesAssignment_7 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8462:1: ( ( rule__WeightedTactic__UsesAssignment_7 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8463:1: ( rule__WeightedTactic__UsesAssignment_7 )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getUsesAssignment_7()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8464:1: ( rule__WeightedTactic__UsesAssignment_7 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8464:2: rule__WeightedTactic__UsesAssignment_7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__UsesAssignment_7_in_rule__WeightedTactic__Group__7__Impl16706);
+            rule__WeightedTactic__UsesAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getUsesAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8474:1: rule__WeightedTactic__Group__8 : rule__WeightedTactic__Group__8__Impl ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8478:1: ( rule__WeightedTactic__Group__8__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8479:2: rule__WeightedTactic__Group__8__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightedTactic__Group__8__Impl_in_rule__WeightedTactic__Group__816736);
+            rule__WeightedTactic__Group__8__Impl();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8485:1: rule__WeightedTactic__Group__8__Impl : ( '}' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8489:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8490:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8490:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8491:1: '}'
+            {
+             before(grammarAccess.getWeightedTacticAccess().getRightCurlyBracketKeyword_8()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__WeightedTactic__Group__8__Impl16764); 
+             after(grammarAccess.getWeightedTacticAccess().getRightCurlyBracketKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__Group__8__Impl"
+
+
+    // $ANTLR start "rule__WeightingFunction__Group__0"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8522: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8526: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8527:2: rule__WeightingFunction__Group__0__Impl rule__WeightingFunction__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__0__Impl_in_rule__WeightingFunction__Group__016813);
+            rule__WeightingFunction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__1_in_rule__WeightingFunction__Group__016816);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8534:1: rule__WeightingFunction__Group__0__Impl : ( 'WeightingFunction' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8538:1: ( ( 'WeightingFunction' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8539:1: ( 'WeightingFunction' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8539:1: ( 'WeightingFunction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8540:1: 'WeightingFunction'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionKeyword_0()); 
+            match(input,70,FollowSets000.FOLLOW_70_in_rule__WeightingFunction__Group__0__Impl16844); 
+             after(grammarAccess.getWeightingFunctionAccess().getWeightingFunctionKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8553: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8557: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8558:2: rule__WeightingFunction__Group__1__Impl rule__WeightingFunction__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__1__Impl_in_rule__WeightingFunction__Group__116875);
+            rule__WeightingFunction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__2_in_rule__WeightingFunction__Group__116878);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8565:1: rule__WeightingFunction__Group__1__Impl : ( '{' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8569:1: ( ( '{' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8570:1: ( '{' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8570:1: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8571:1: '{'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,14,FollowSets000.FOLLOW_14_in_rule__WeightingFunction__Group__1__Impl16906); 
+             after(grammarAccess.getWeightingFunctionAccess().getLeftCurlyBracketKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8584: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8588: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8589:2: rule__WeightingFunction__Group__2__Impl rule__WeightingFunction__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__2__Impl_in_rule__WeightingFunction__Group__216937);
+            rule__WeightingFunction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__3_in_rule__WeightingFunction__Group__216940);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8596:1: rule__WeightingFunction__Group__2__Impl : ( 'function' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8600:1: ( ( 'function' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8601:1: ( 'function' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8601:1: ( 'function' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8602:1: 'function'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getFunctionKeyword_2()); 
+            match(input,71,FollowSets000.FOLLOW_71_in_rule__WeightingFunction__Group__2__Impl16968); 
+             after(grammarAccess.getWeightingFunctionAccess().getFunctionKeyword_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8615: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8619: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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8620:2: rule__WeightingFunction__Group__3__Impl rule__WeightingFunction__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__3__Impl_in_rule__WeightingFunction__Group__316999);
+            rule__WeightingFunction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__4_in_rule__WeightingFunction__Group__317002);
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8627:1: rule__WeightingFunction__Group__3__Impl : ( ( rule__WeightingFunction__FunctionAssignment_3 ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8631:1: ( ( ( rule__WeightingFunction__FunctionAssignment_3 ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8632:1: ( ( rule__WeightingFunction__FunctionAssignment_3 ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8632:1: ( ( rule__WeightingFunction__FunctionAssignment_3 ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8633:1: ( rule__WeightingFunction__FunctionAssignment_3 )
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getFunctionAssignment_3()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8634:1: ( rule__WeightingFunction__FunctionAssignment_3 )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8634:2: rule__WeightingFunction__FunctionAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__FunctionAssignment_3_in_rule__WeightingFunction__Group__3__Impl17029);
+            rule__WeightingFunction__FunctionAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWeightingFunctionAccess().getFunctionAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8644:1: rule__WeightingFunction__Group__4 : rule__WeightingFunction__Group__4__Impl ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8648:1: ( rule__WeightingFunction__Group__4__Impl )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8649:2: rule__WeightingFunction__Group__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WeightingFunction__Group__4__Impl_in_rule__WeightingFunction__Group__417059);
+            rule__WeightingFunction__Group__4__Impl();
+
+            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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8655:1: rule__WeightingFunction__Group__4__Impl : ( '}' ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8659:1: ( ( '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8660:1: ( '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8660:1: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8661:1: '}'
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getRightCurlyBracketKeyword_4()); 
+            match(input,17,FollowSets000.FOLLOW_17_in_rule__WeightingFunction__Group__4__Impl17087); 
+             after(grammarAccess.getWeightingFunctionAccess().getRightCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__StaRepository__IdAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8685:1: rule__StaRepository__IdAssignment_1 : ( ruleEString ) ;
+    public final void rule__StaRepository__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8689:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8690:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8690:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8691:1: ruleEString
+            {
+             before(grammarAccess.getStaRepositoryAccess().getIdEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__StaRepository__IdAssignment_117133);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getIdEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__IdAssignment_1"
+
+
+    // $ANTLR start "rule__StaRepository__NameAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8700:1: rule__StaRepository__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__StaRepository__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8704:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8705:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8705:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8706:1: ruleEString
+            {
+             before(grammarAccess.getStaRepositoryAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__StaRepository__NameAssignment_417164);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__NameAssignment_4"
+
+
+    // $ANTLR start "rule__StaRepository__TacticsAssignment_7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8715:1: rule__StaRepository__TacticsAssignment_7 : ( ruleTactic ) ;
+    public final void rule__StaRepository__TacticsAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8719:1: ( ( ruleTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8720:1: ( ruleTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8720:1: ( ruleTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8721:1: ruleTactic
+            {
+             before(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_7_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleTactic_in_rule__StaRepository__TacticsAssignment_717195);
+            ruleTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__TacticsAssignment_7"
+
+
+    // $ANTLR start "rule__StaRepository__TacticsAssignment_8_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8730:1: rule__StaRepository__TacticsAssignment_8_1 : ( ruleTactic ) ;
+    public final void rule__StaRepository__TacticsAssignment_8_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8734:1: ( ( ruleTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8735:1: ( ruleTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8735:1: ( ruleTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8736:1: ruleTactic
+            {
+             before(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_8_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleTactic_in_rule__StaRepository__TacticsAssignment_8_117226);
+            ruleTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_8_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__TacticsAssignment_8_1"
+
+
+    // $ANTLR start "rule__StaRepository__ActionsAssignment_12"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8745:1: rule__StaRepository__ActionsAssignment_12 : ( ruleAction ) ;
+    public final void rule__StaRepository__ActionsAssignment_12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8749:1: ( ( ruleAction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8750:1: ( ruleAction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8750:1: ( ruleAction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8751:1: ruleAction
+            {
+             before(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_12_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAction_in_rule__StaRepository__ActionsAssignment_1217257);
+            ruleAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__ActionsAssignment_12"
+
+
+    // $ANTLR start "rule__StaRepository__ActionsAssignment_13_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8760:1: rule__StaRepository__ActionsAssignment_13_1 : ( ruleAction ) ;
+    public final void rule__StaRepository__ActionsAssignment_13_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8764:1: ( ( ruleAction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8765:1: ( ruleAction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8765:1: ( ruleAction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8766:1: ruleAction
+            {
+             before(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_13_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAction_in_rule__StaRepository__ActionsAssignment_13_117288);
+            ruleAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_13_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__ActionsAssignment_13_1"
+
+
+    // $ANTLR start "rule__StaRepository__StrategiesAssignment_17"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8775:1: rule__StaRepository__StrategiesAssignment_17 : ( ruleStrategy ) ;
+    public final void rule__StaRepository__StrategiesAssignment_17() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8779:1: ( ( ruleStrategy ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8780:1: ( ruleStrategy )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8780:1: ( ruleStrategy )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8781:1: ruleStrategy
+            {
+             before(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_17_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStrategy_in_rule__StaRepository__StrategiesAssignment_1717319);
+            ruleStrategy();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_17_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__StrategiesAssignment_17"
+
+
+    // $ANTLR start "rule__StaRepository__StrategiesAssignment_18_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8790:1: rule__StaRepository__StrategiesAssignment_18_1 : ( ruleStrategy ) ;
+    public final void rule__StaRepository__StrategiesAssignment_18_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8794:1: ( ( ruleStrategy ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8795:1: ( ruleStrategy )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8795:1: ( ruleStrategy )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8796:1: ruleStrategy
+            {
+             before(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_18_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStrategy_in_rule__StaRepository__StrategiesAssignment_18_117350);
+            ruleStrategy();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_18_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__StrategiesAssignment_18_1"
+
+
+    // $ANTLR start "rule__StaRepository__ParametersAssignment_20_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8805:1: rule__StaRepository__ParametersAssignment_20_2 : ( ruleParameter ) ;
+    public final void rule__StaRepository__ParametersAssignment_20_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8809:1: ( ( ruleParameter ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8810:1: ( ruleParameter )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8810:1: ( ruleParameter )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8811:1: ruleParameter
+            {
+             before(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_2_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleParameter_in_rule__StaRepository__ParametersAssignment_20_217381);
+            ruleParameter();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__ParametersAssignment_20_2"
+
+
+    // $ANTLR start "rule__StaRepository__ParametersAssignment_20_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8820:1: rule__StaRepository__ParametersAssignment_20_3_1 : ( ruleParameter ) ;
+    public final void rule__StaRepository__ParametersAssignment_20_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8824:1: ( ( ruleParameter ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8825:1: ( ruleParameter )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8825:1: ( ruleParameter )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8826:1: ruleParameter
+            {
+             before(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_3_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleParameter_in_rule__StaRepository__ParametersAssignment_20_3_117412);
+            ruleParameter();
+
+            state._fsp--;
+
+             after(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StaRepository__ParametersAssignment_20_3_1"
+
+
+    // $ANTLR start "rule__Tactic__IdAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8835:1: rule__Tactic__IdAssignment_1 : ( ruleEString ) ;
+    public final void rule__Tactic__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8839:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8840:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8840:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8841:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Tactic__IdAssignment_117443);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__IdAssignment_1"
+
+
+    // $ANTLR start "rule__Tactic__NameAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8850:1: rule__Tactic__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__Tactic__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8854:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8855:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8855:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8856:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Tactic__NameAssignment_417474);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__NameAssignment_4"
+
+
+    // $ANTLR start "rule__Tactic__InputParamsAssignment_5_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8865:1: rule__Tactic__InputParamsAssignment_5_2 : ( ( ruleEString ) ) ;
+    public final void rule__Tactic__InputParamsAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8869:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8870:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8870:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8871:1: ( ruleEString )
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_2_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8872:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8873:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_5_2_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Tactic__InputParamsAssignment_5_217509);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_5_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__InputParamsAssignment_5_2"
+
+
+    // $ANTLR start "rule__Tactic__InputParamsAssignment_5_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8884:1: rule__Tactic__InputParamsAssignment_5_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__Tactic__InputParamsAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8888:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8889:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8889:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8890:1: ( ruleEString )
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_3_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8891:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8892:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_5_3_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Tactic__InputParamsAssignment_5_3_117548);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getInputParamsParameterEStringParserRuleCall_5_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__InputParamsAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__Tactic__OutputParamAssignment_6_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8903:1: rule__Tactic__OutputParamAssignment_6_1 : ( ( ruleEString ) ) ;
+    public final void rule__Tactic__OutputParamAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8907:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8908:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8908:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8909:1: ( ruleEString )
+            {
+             before(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_6_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8910:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8911:1: ruleEString
+            {
+             before(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_6_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Tactic__OutputParamAssignment_6_117587);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getOutputParamParameterEStringParserRuleCall_6_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__OutputParamAssignment_6_1"
+
+
+    // $ANTLR start "rule__Tactic__ImplementedPlanAssignment_8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8922:1: rule__Tactic__ImplementedPlanAssignment_8 : ( ruleAdaptationPlan ) ;
+    public final void rule__Tactic__ImplementedPlanAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8926:1: ( ( ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8927:1: ( ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8927:1: ( ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8928:1: ruleAdaptationPlan
+            {
+             before(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_8_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_rule__Tactic__ImplementedPlanAssignment_817622);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Tactic__ImplementedPlanAssignment_8"
+
+
+    // $ANTLR start "rule__Action__IdAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8937:1: rule__Action__IdAssignment_1 : ( ruleEString ) ;
+    public final void rule__Action__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8941:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8942:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8942:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8943:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getIdEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Action__IdAssignment_117653);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getIdEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__IdAssignment_1"
+
+
+    // $ANTLR start "rule__Action__NameAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8952:1: rule__Action__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__Action__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8956:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8957:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8957:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8958:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Action__NameAssignment_417684);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__NameAssignment_4"
+
+
+    // $ANTLR start "rule__Action__OutputParamAssignment_5_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8967:1: rule__Action__OutputParamAssignment_5_1 : ( ( ruleEString ) ) ;
+    public final void rule__Action__OutputParamAssignment_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8971:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8972:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8972:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8973:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_5_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8974:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8975:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_5_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Action__OutputParamAssignment_5_117719);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getOutputParamParameterEStringParserRuleCall_5_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__OutputParamAssignment_5_1"
+
+
+    // $ANTLR start "rule__Action__InputParamsAssignment_6_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8986:1: rule__Action__InputParamsAssignment_6_2 : ( ( ruleEString ) ) ;
+    public final void rule__Action__InputParamsAssignment_6_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8990:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8991:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8991:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8992:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_2_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8993:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:8994:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_6_2_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Action__InputParamsAssignment_6_217758);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_6_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__InputParamsAssignment_6_2"
+
+
+    // $ANTLR start "rule__Action__InputParamsAssignment_6_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9005:1: rule__Action__InputParamsAssignment_6_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__Action__InputParamsAssignment_6_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9009:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9010:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9010:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9011:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_3_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9012:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9013:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_6_3_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Action__InputParamsAssignment_6_3_117797);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getInputParamsParameterEStringParserRuleCall_6_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__InputParamsAssignment_6_3_1"
+
+
+    // $ANTLR start "rule__Action__ReferredAdaptationPointAssignment_8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9024:1: rule__Action__ReferredAdaptationPointAssignment_8 : ( ( ruleEString ) ) ;
+    public final void rule__Action__ReferredAdaptationPointAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9028:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9029:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9029:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9030:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_8_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9031:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9032:1: ruleEString
+            {
+             before(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_8_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Action__ReferredAdaptationPointAssignment_817836);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointEStringParserRuleCall_8_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Action__ReferredAdaptationPointAssignment_8"
+
+
+    // $ANTLR start "rule__Strategy__IdAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9043:1: rule__Strategy__IdAssignment_1 : ( ruleEString ) ;
+    public final void rule__Strategy__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9047:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9048:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9048:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9049:1: ruleEString
+            {
+             before(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Strategy__IdAssignment_117871);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__IdAssignment_1"
+
+
+    // $ANTLR start "rule__Strategy__NameAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9058:1: rule__Strategy__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__Strategy__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9062:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9063:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9063:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9064:1: ruleEString
+            {
+             before(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Strategy__NameAssignment_417902);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__NameAssignment_4"
+
+
+    // $ANTLR start "rule__Strategy__ObjectiveAssignment_6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9073:1: rule__Strategy__ObjectiveAssignment_6 : ( ( ruleEString ) ) ;
+    public final void rule__Strategy__ObjectiveAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9077:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9078:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9078:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9079:1: ( ruleEString )
+            {
+             before(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_6_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9080:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9081:1: ruleEString
+            {
+             before(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_6_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Strategy__ObjectiveAssignment_617937);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getObjectiveObjectiveEStringParserRuleCall_6_0_1()); 
+
+            }
+
+             after(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__ObjectiveAssignment_6"
+
+
+    // $ANTLR start "rule__Strategy__TriggeringEventsAssignment_7_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9092:1: rule__Strategy__TriggeringEventsAssignment_7_1 : ( ruleEvent ) ;
+    public final void rule__Strategy__TriggeringEventsAssignment_7_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9096:1: ( ( ruleEvent ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9097:1: ( ruleEvent )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9097:1: ( ruleEvent )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9098:1: ruleEvent
+            {
+             before(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_7_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEvent_in_rule__Strategy__TriggeringEventsAssignment_7_117972);
+            ruleEvent();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_7_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__TriggeringEventsAssignment_7_1"
+
+
+    // $ANTLR start "rule__Strategy__TacticsAssignment_10"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9107:1: rule__Strategy__TacticsAssignment_10 : ( ruleWeightedTactic ) ;
+    public final void rule__Strategy__TacticsAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9111:1: ( ( ruleWeightedTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9112:1: ( ruleWeightedTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9112:1: ( ruleWeightedTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9113:1: ruleWeightedTactic
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_10_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_rule__Strategy__TacticsAssignment_1018003);
+            ruleWeightedTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__TacticsAssignment_10"
+
+
+    // $ANTLR start "rule__Strategy__TacticsAssignment_11_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9122:1: rule__Strategy__TacticsAssignment_11_1 : ( ruleWeightedTactic ) ;
+    public final void rule__Strategy__TacticsAssignment_11_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9126:1: ( ( ruleWeightedTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9127:1: ( ruleWeightedTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9127:1: ( ruleWeightedTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9128:1: ruleWeightedTactic
+            {
+             before(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_11_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_rule__Strategy__TacticsAssignment_11_118034);
+            ruleWeightedTactic();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_11_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__TacticsAssignment_11_1"
+
+
+    // $ANTLR start "rule__Strategy__WeightingFunctionAssignment_14"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9137:1: rule__Strategy__WeightingFunctionAssignment_14 : ( ruleWeightingFunction ) ;
+    public final void rule__Strategy__WeightingFunctionAssignment_14() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9141:1: ( ( ruleWeightingFunction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9142:1: ( ruleWeightingFunction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9142:1: ( ruleWeightingFunction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9143:1: ruleWeightingFunction
+            {
+             before(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_14_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightingFunction_in_rule__Strategy__WeightingFunctionAssignment_1418065);
+            ruleWeightingFunction();
+
+            state._fsp--;
+
+             after(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_14_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Strategy__WeightingFunctionAssignment_14"
+
+
+    // $ANTLR start "rule__Parameter__NameAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9152:1: rule__Parameter__NameAssignment_1 : ( ruleEString ) ;
+    public final void rule__Parameter__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9156:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9157:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9157:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9158:1: ruleEString
+            {
+             before(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Parameter__NameAssignment_118096);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__NameAssignment_1"
+
+
+    // $ANTLR start "rule__Parameter__TypeAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9167:1: rule__Parameter__TypeAssignment_4 : ( ruleEString ) ;
+    public final void rule__Parameter__TypeAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9171:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9172:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9172:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9173:1: ruleEString
+            {
+             before(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Parameter__TypeAssignment_418127);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Parameter__TypeAssignment_4"
+
+
+    // $ANTLR start "rule__AdaptationPlan__IdAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9182:1: rule__AdaptationPlan__IdAssignment_1 : ( ruleEString ) ;
+    public final void rule__AdaptationPlan__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9186:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9187:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9187:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9188:1: ruleEString
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__AdaptationPlan__IdAssignment_118158);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__IdAssignment_1"
+
+
+    // $ANTLR start "rule__AdaptationPlan__NameAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9197:1: rule__AdaptationPlan__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__AdaptationPlan__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9201:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9202:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9202:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9203:1: ruleEString
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__AdaptationPlan__NameAssignment_418189);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__NameAssignment_4"
+
+
+    // $ANTLR start "rule__AdaptationPlan__StepsAssignment_5_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9212:1: rule__AdaptationPlan__StepsAssignment_5_2 : ( ruleAbstractControlFlowElement ) ;
+    public final void rule__AdaptationPlan__StepsAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9216:1: ( ( ruleAbstractControlFlowElement ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9217:1: ( ruleAbstractControlFlowElement )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9217:1: ( ruleAbstractControlFlowElement )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9218:1: ruleAbstractControlFlowElement
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAbstractControlFlowElement_in_rule__AdaptationPlan__StepsAssignment_5_218220);
+            ruleAbstractControlFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__StepsAssignment_5_2"
+
+
+    // $ANTLR start "rule__AdaptationPlan__StepsAssignment_5_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9227:1: rule__AdaptationPlan__StepsAssignment_5_3_1 : ( ruleAbstractControlFlowElement ) ;
+    public final void rule__AdaptationPlan__StepsAssignment_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9231:1: ( ( ruleAbstractControlFlowElement ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9232:1: ( ruleAbstractControlFlowElement )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9232:1: ( ruleAbstractControlFlowElement )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9233:1: ruleAbstractControlFlowElement
+            {
+             before(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAbstractControlFlowElement_in_rule__AdaptationPlan__StepsAssignment_5_3_118251);
+            ruleAbstractControlFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AdaptationPlan__StepsAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__Start__PredecessorAssignment_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9242:1: rule__Start__PredecessorAssignment_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__Start__PredecessorAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9246:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9247:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9247:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9248:1: ( ruleEString )
+            {
+             before(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9249:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9250:1: ruleEString
+            {
+             before(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Start__PredecessorAssignment_3_118286);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__PredecessorAssignment_3_1"
+
+
+    // $ANTLR start "rule__Start__SuccessorAssignment_4_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9261:1: rule__Start__SuccessorAssignment_4_1 : ( ( ruleEString ) ) ;
+    public final void rule__Start__SuccessorAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9265:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9266:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9266:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9267:1: ( ruleEString )
+            {
+             before(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9268:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9269:1: ruleEString
+            {
+             before(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Start__SuccessorAssignment_4_118325);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Start__SuccessorAssignment_4_1"
+
+
+    // $ANTLR start "rule__Stop__PredecessorAssignment_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9280:1: rule__Stop__PredecessorAssignment_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__Stop__PredecessorAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9284:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9285:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9285:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9286:1: ( ruleEString )
+            {
+             before(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9287:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9288:1: ruleEString
+            {
+             before(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Stop__PredecessorAssignment_3_118364);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__PredecessorAssignment_3_1"
+
+
+    // $ANTLR start "rule__Stop__SuccessorAssignment_4_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9299:1: rule__Stop__SuccessorAssignment_4_1 : ( ( ruleEString ) ) ;
+    public final void rule__Stop__SuccessorAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9303:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9304:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9304:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9305:1: ( ruleEString )
+            {
+             before(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9306:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9307:1: ruleEString
+            {
+             before(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Stop__SuccessorAssignment_4_118403);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Stop__SuccessorAssignment_4_1"
+
+
+    // $ANTLR start "rule__Loop__CounterAssignment_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9318:1: rule__Loop__CounterAssignment_3 : ( ruleEInt ) ;
+    public final void rule__Loop__CounterAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9322:1: ( ( ruleEInt ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9323:1: ( ruleEInt )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9323:1: ( ruleEInt )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9324:1: ruleEInt
+            {
+             before(grammarAccess.getLoopAccess().getCounterEIntParserRuleCall_3_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEInt_in_rule__Loop__CounterAssignment_318438);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopAccess().getCounterEIntParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__CounterAssignment_3"
+
+
+    // $ANTLR start "rule__Loop__PredecessorAssignment_4_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9333:1: rule__Loop__PredecessorAssignment_4_1 : ( ( ruleEString ) ) ;
+    public final void rule__Loop__PredecessorAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9337:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9338:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9338:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9339:1: ( ruleEString )
+            {
+             before(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementCrossReference_4_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9340:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9341:1: ruleEString
+            {
+             before(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Loop__PredecessorAssignment_4_118473);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementCrossReference_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__PredecessorAssignment_4_1"
+
+
+    // $ANTLR start "rule__Loop__SuccessorAssignment_5_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9352:1: rule__Loop__SuccessorAssignment_5_1 : ( ( ruleEString ) ) ;
+    public final void rule__Loop__SuccessorAssignment_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9356:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9357:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9357:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9358:1: ( ruleEString )
+            {
+             before(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementCrossReference_5_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9359:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9360:1: ruleEString
+            {
+             before(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_5_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Loop__SuccessorAssignment_5_118512);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_5_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementCrossReference_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__SuccessorAssignment_5_1"
+
+
+    // $ANTLR start "rule__Loop__BodyAssignment_7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9371:1: rule__Loop__BodyAssignment_7 : ( ruleAdaptationPlan ) ;
+    public final void rule__Loop__BodyAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9375:1: ( ( ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9376:1: ( ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9376:1: ( ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9377:1: ruleAdaptationPlan
+            {
+             before(grammarAccess.getLoopAccess().getBodyAdaptationPlanParserRuleCall_7_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_rule__Loop__BodyAssignment_718547);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopAccess().getBodyAdaptationPlanParserRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__BodyAssignment_7"
+
+
+    // $ANTLR start "rule__Branch__ConditionAssignment_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9386:1: rule__Branch__ConditionAssignment_2_1 : ( ruleEString ) ;
+    public final void rule__Branch__ConditionAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9390:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9391:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9391:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9392:1: ruleEString
+            {
+             before(grammarAccess.getBranchAccess().getConditionEStringParserRuleCall_2_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Branch__ConditionAssignment_2_118578);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchAccess().getConditionEStringParserRuleCall_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__ConditionAssignment_2_1"
+
+
+    // $ANTLR start "rule__Branch__PredecessorAssignment_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9401:1: rule__Branch__PredecessorAssignment_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__Branch__PredecessorAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9405:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9406:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9406:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9407:1: ( ruleEString )
+            {
+             before(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9408:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9409:1: ruleEString
+            {
+             before(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Branch__PredecessorAssignment_3_118613);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__PredecessorAssignment_3_1"
+
+
+    // $ANTLR start "rule__Branch__SuccessorAssignment_4_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9420:1: rule__Branch__SuccessorAssignment_4_1 : ( ( ruleEString ) ) ;
+    public final void rule__Branch__SuccessorAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9424:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9425:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9425:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9426:1: ( ruleEString )
+            {
+             before(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9427:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9428:1: ruleEString
+            {
+             before(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__Branch__SuccessorAssignment_4_118652);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__SuccessorAssignment_4_1"
+
+
+    // $ANTLR start "rule__Branch__BranchesAssignment_7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9439:1: rule__Branch__BranchesAssignment_7 : ( ruleAdaptationPlan ) ;
+    public final void rule__Branch__BranchesAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9443:1: ( ( ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9444:1: ( ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9444:1: ( ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9445:1: ruleAdaptationPlan
+            {
+             before(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_7_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_rule__Branch__BranchesAssignment_718687);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__BranchesAssignment_7"
+
+
+    // $ANTLR start "rule__Branch__BranchesAssignment_8_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9454:1: rule__Branch__BranchesAssignment_8_1 : ( ruleAdaptationPlan ) ;
+    public final void rule__Branch__BranchesAssignment_8_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9458:1: ( ( ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9459:1: ( ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9459:1: ( ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9460:1: ruleAdaptationPlan
+            {
+             before(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_8_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_rule__Branch__BranchesAssignment_8_118718);
+            ruleAdaptationPlan();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_8_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Branch__BranchesAssignment_8_1"
+
+
+    // $ANTLR start "rule__ActionReference__PredecessorAssignment_2_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9469:1: rule__ActionReference__PredecessorAssignment_2_1 : ( ( ruleEString ) ) ;
+    public final void rule__ActionReference__PredecessorAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9473:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9474:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9474:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9475:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementCrossReference_2_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9476:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9477:1: ruleEString
+            {
+             before(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_2_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__ActionReference__PredecessorAssignment_2_118753);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementEStringParserRuleCall_2_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementCrossReference_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__PredecessorAssignment_2_1"
+
+
+    // $ANTLR start "rule__ActionReference__SuccessorAssignment_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9488:1: rule__ActionReference__SuccessorAssignment_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__ActionReference__SuccessorAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9492:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9493:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9493:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9494:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementCrossReference_3_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9495:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9496:1: ruleEString
+            {
+             before(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__ActionReference__SuccessorAssignment_3_118792);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementCrossReference_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__SuccessorAssignment_3_1"
+
+
+    // $ANTLR start "rule__ActionReference__RefersToAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9507:1: rule__ActionReference__RefersToAssignment_5 : ( ( ruleEString ) ) ;
+    public final void rule__ActionReference__RefersToAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9511:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9512:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9512:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9513:1: ( ruleEString )
+            {
+             before(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_5_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9514:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9515:1: ruleEString
+            {
+             before(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_5_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__ActionReference__RefersToAssignment_518831);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getActionReferenceAccess().getRefersToActionEStringParserRuleCall_5_0_1()); 
+
+            }
+
+             after(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionReference__RefersToAssignment_5"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__IdAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9526:1: rule__ModelVariableConfigurationRange__IdAssignment_1 : ( ruleEString ) ;
+    public final void rule__ModelVariableConfigurationRange__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9530:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9531:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9531:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9532:1: ruleEString
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__IdAssignment_118866);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__IdAssignment_1"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__MinValueAssignment_4"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9541:1: rule__ModelVariableConfigurationRange__MinValueAssignment_4 : ( ruleEDouble ) ;
+    public final void rule__ModelVariableConfigurationRange__MinValueAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9545:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9546:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9546:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9547:1: ruleEDouble
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_4_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_rule__ModelVariableConfigurationRange__MinValueAssignment_418897);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__MinValueAssignment_4"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__MaxValueAssignment_6"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9556:1: rule__ModelVariableConfigurationRange__MaxValueAssignment_6 : ( ruleEDouble ) ;
+    public final void rule__ModelVariableConfigurationRange__MaxValueAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9560:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9561:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9561:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9562:1: ruleEDouble
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_6_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_rule__ModelVariableConfigurationRange__MaxValueAssignment_618928);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__MaxValueAssignment_6"
+
+
+    // $ANTLR start "rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9571:1: rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8 : ( ( ruleEString ) ) ;
+    public final void rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9575:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9576:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9576:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9577:1: ( ruleEString )
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_8_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9578:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9579:1: ruleEString
+            {
+             before(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_8_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_818963);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityEStringParserRuleCall_8_0_1()); 
+
+            }
+
+             after(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__IdAssignment_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9590:1: rule__ModelEntityConfigurationRange__IdAssignment_1 : ( ruleEString ) ;
+    public final void rule__ModelEntityConfigurationRange__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9594:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9595:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9595:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9596:1: ruleEString
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__IdAssignment_118998);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__IdAssignment_1"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__EntityAssignment_3_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9605:1: rule__ModelEntityConfigurationRange__EntityAssignment_3_2 : ( ( ruleEString ) ) ;
+    public final void rule__ModelEntityConfigurationRange__EntityAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9609:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9610:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9610:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9611:1: ( ruleEString )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_2_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9612:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9613:1: ruleEString
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectEStringParserRuleCall_3_2_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__EntityAssignment_3_219033);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectEStringParserRuleCall_3_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__EntityAssignment_3_2"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9624:1: rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9628:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9629:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9629:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9630:1: ( ruleEString )
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_3_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9631:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9632:1: ruleEString
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectEStringParserRuleCall_3_3_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__EntityAssignment_3_3_119072);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectEStringParserRuleCall_3_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9643:1: rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5 : ( ruleVariationType ) ;
+    public final void rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9647:1: ( ( ruleVariationType ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9648:1: ( ruleVariationType )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9648:1: ( ruleVariationType )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9649:1: ruleVariationType
+            {
+             before(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_5_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleVariationType_in_rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_519107);
+            ruleVariationType();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5"
+
+
+    // $ANTLR start "rule__PropertyRange__MinValueConstraintAssignment_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9658:1: rule__PropertyRange__MinValueConstraintAssignment_3 : ( ( ruleEString ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9662:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9663:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9663:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9664:1: ( ruleEString )
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintCrossReference_3_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9665:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9666:1: ruleEString
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintEStringParserRuleCall_3_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__PropertyRange__MinValueConstraintAssignment_319142);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintEStringParserRuleCall_3_0_1()); 
+
+            }
+
+             after(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintCrossReference_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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9677:1: rule__PropertyRange__MaxValueConstraintAssignment_5 : ( ( ruleEString ) ) ;
+    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/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9681:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9682:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9682:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9683:1: ( ruleEString )
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintCrossReference_5_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9684:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9685:1: ruleEString
+            {
+             before(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintEStringParserRuleCall_5_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__PropertyRange__MaxValueConstraintAssignment_519181);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintEStringParserRuleCall_5_0_1()); 
+
+            }
+
+             after(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintCrossReference_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyRange__MaxValueConstraintAssignment_5"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__ValueConstraintAssignment_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9696:1: rule__SetOfConfigurations__ValueConstraintAssignment_3 : ( ( ruleEString ) ) ;
+    public final void rule__SetOfConfigurations__ValueConstraintAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9700:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9701:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9701:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9702:1: ( ruleEString )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintCrossReference_3_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9703:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9704:1: ruleEString
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintEStringParserRuleCall_3_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__SetOfConfigurations__ValueConstraintAssignment_319220);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintEStringParserRuleCall_3_0_1()); 
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintCrossReference_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__ValueConstraintAssignment_3"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__VariantsAssignment_4_2"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9715:1: rule__SetOfConfigurations__VariantsAssignment_4_2 : ( ( ruleEString ) ) ;
+    public final void rule__SetOfConfigurations__VariantsAssignment_4_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9719:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9720:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9720:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9721:1: ( ruleEString )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_2_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9722:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9723:1: ruleEString
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectEStringParserRuleCall_4_2_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__SetOfConfigurations__VariantsAssignment_4_219259);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectEStringParserRuleCall_4_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__VariantsAssignment_4_2"
+
+
+    // $ANTLR start "rule__SetOfConfigurations__VariantsAssignment_4_3_1"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9734:1: rule__SetOfConfigurations__VariantsAssignment_4_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__SetOfConfigurations__VariantsAssignment_4_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9738:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9739:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9739:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9740:1: ( ruleEString )
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_3_1_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9741:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9742:1: ruleEString
+            {
+             before(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectEStringParserRuleCall_4_3_1_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__SetOfConfigurations__VariantsAssignment_4_3_119298);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectEStringParserRuleCall_4_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SetOfConfigurations__VariantsAssignment_4_3_1"
+
+
+    // $ANTLR start "rule__WeightedTactic__CurrentWeightAssignment_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9755:1: rule__WeightedTactic__CurrentWeightAssignment_3 : ( ruleEDouble ) ;
+    public final void rule__WeightedTactic__CurrentWeightAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9759:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9760:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9760:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9761:1: ruleEDouble
+            {
+             before(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_3_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_rule__WeightedTactic__CurrentWeightAssignment_319335);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__CurrentWeightAssignment_3"
+
+
+    // $ANTLR start "rule__WeightedTactic__DefaultWeightAssignment_5"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9770:1: rule__WeightedTactic__DefaultWeightAssignment_5 : ( ruleEDouble ) ;
+    public final void rule__WeightedTactic__DefaultWeightAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9774:1: ( ( ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9775:1: ( ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9775:1: ( ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9776:1: ruleEDouble
+            {
+             before(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_5_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_rule__WeightedTactic__DefaultWeightAssignment_519366);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__DefaultWeightAssignment_5"
+
+
+    // $ANTLR start "rule__WeightedTactic__UsesAssignment_7"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9785:1: rule__WeightedTactic__UsesAssignment_7 : ( ( ruleEString ) ) ;
+    public final void rule__WeightedTactic__UsesAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9789:1: ( ( ( ruleEString ) ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9790:1: ( ( ruleEString ) )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9790:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9791:1: ( ruleEString )
+            {
+             before(grammarAccess.getWeightedTacticAccess().getUsesTacticCrossReference_7_0()); 
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9792:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9793:1: ruleEString
+            {
+             before(grammarAccess.getWeightedTacticAccess().getUsesTacticEStringParserRuleCall_7_0_1()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__WeightedTactic__UsesAssignment_719401);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightedTacticAccess().getUsesTacticEStringParserRuleCall_7_0_1()); 
+
+            }
+
+             after(grammarAccess.getWeightedTacticAccess().getUsesTacticCrossReference_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightedTactic__UsesAssignment_7"
+
+
+    // $ANTLR start "rule__WeightingFunction__FunctionAssignment_3"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9804:1: rule__WeightingFunction__FunctionAssignment_3 : ( ruleEString ) ;
+    public final void rule__WeightingFunction__FunctionAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9808:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9809:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9809:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/antlr/internal/InternalStaAdaptationLanguage.g:9810:1: ruleEString
+            {
+             before(grammarAccess.getWeightingFunctionAccess().getFunctionEStringParserRuleCall_3_0()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rule__WeightingFunction__FunctionAssignment_319436);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getWeightingFunctionAccess().getFunctionEStringParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WeightingFunction__FunctionAssignment_3"
+
+    // Delegated rules
+
+
+ 
+
+    
+    private static class FollowSets000 {
+        public static final BitSet FOLLOW_ruleStaRepository_in_entryRuleStaRepository61 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStaRepository68 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__0_in_ruleStaRepository94 = 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_ruleAdaptationPlan_in_entryRuleAdaptationPlan543 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAdaptationPlan550 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__0_in_ruleAdaptationPlan576 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStart_in_entryRuleStart603 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStart610 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group__0_in_ruleStart636 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStop_in_entryRuleStop663 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStop670 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group__0_in_ruleStop696 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoop_in_entryRuleLoop723 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleLoop730 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__0_in_ruleLoop756 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranch_in_entryRuleBranch783 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleBranch790 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__0_in_ruleBranch816 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleActionReference_in_entryRuleActionReference843 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleActionReference850 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__0_in_ruleActionReference876 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_entryRuleEInt903 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEInt910 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EInt__Group__0_in_ruleEInt936 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleModelVariableConfigurationRange_in_entryRuleModelVariableConfigurationRange963 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleModelVariableConfigurationRange970 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__0_in_ruleModelVariableConfigurationRange996 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleModelEntityConfigurationRange_in_entryRuleModelEntityConfigurationRange1023 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleModelEntityConfigurationRange1030 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__0_in_ruleModelEntityConfigurationRange1056 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_entryRuleEDouble1083 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEDouble1090 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__0_in_ruleEDouble1116 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePropertyRange_in_entryRulePropertyRange1145 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePropertyRange1152 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__0_in_rulePropertyRange1178 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSetOfConfigurations_in_entryRuleSetOfConfigurations1205 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleSetOfConfigurations1212 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__0_in_ruleSetOfConfigurations1238 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent1269 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEvent1276 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group__0_in_ruleEvent1302 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_entryRuleWeightedTactic1329 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightedTactic1336 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__0_in_ruleWeightedTactic1362 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightingFunction_in_entryRuleWeightingFunction1389 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightingFunction1396 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__0_in_ruleWeightingFunction1422 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStart_in_rule__AbstractControlFlowElement__Alternatives1459 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStop_in_rule__AbstractControlFlowElement__Alternatives1476 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoop_in_rule__AbstractControlFlowElement__Alternatives1493 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranch_in_rule__AbstractControlFlowElement__Alternatives1510 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleActionReference_in_rule__AbstractControlFlowElement__Alternatives1527 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePropertyRange_in_rule__VariationType__Alternatives1559 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSetOfConfigurations_in_rule__VariationType__Alternatives1576 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_STRING_in_rule__EString__Alternatives1608 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__EString__Alternatives1625 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_11_in_rule__EDouble__Alternatives_4_01658 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_12_in_rule__EDouble__Alternatives_4_01678 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__0__Impl_in_rule__StaRepository__Group__01710 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__1_in_rule__StaRepository__Group__01713 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_13_in_rule__StaRepository__Group__0__Impl1741 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__1__Impl_in_rule__StaRepository__Group__11772 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__2_in_rule__StaRepository__Group__11775 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__IdAssignment_1_in_rule__StaRepository__Group__1__Impl1802 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__2__Impl_in_rule__StaRepository__Group__21832 = new BitSet(new long[]{0x0000000000008000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__3_in_rule__StaRepository__Group__21835 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__StaRepository__Group__2__Impl1863 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__3__Impl_in_rule__StaRepository__Group__31894 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__4_in_rule__StaRepository__Group__31897 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_15_in_rule__StaRepository__Group__3__Impl1925 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__4__Impl_in_rule__StaRepository__Group__41956 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__5_in_rule__StaRepository__Group__41959 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__NameAssignment_4_in_rule__StaRepository__Group__4__Impl1986 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__5__Impl_in_rule__StaRepository__Group__52016 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__6_in_rule__StaRepository__Group__52019 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_16_in_rule__StaRepository__Group__5__Impl2047 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__6__Impl_in_rule__StaRepository__Group__62078 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__7_in_rule__StaRepository__Group__62081 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__StaRepository__Group__6__Impl2109 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__7__Impl_in_rule__StaRepository__Group__72140 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__8_in_rule__StaRepository__Group__72143 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__TacticsAssignment_7_in_rule__StaRepository__Group__7__Impl2170 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__8__Impl_in_rule__StaRepository__Group__82200 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__9_in_rule__StaRepository__Group__82203 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_8__0_in_rule__StaRepository__Group__8__Impl2230 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__9__Impl_in_rule__StaRepository__Group__92261 = new BitSet(new long[]{0x0000000000040000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__10_in_rule__StaRepository__Group__92264 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__StaRepository__Group__9__Impl2292 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__10__Impl_in_rule__StaRepository__Group__102323 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__11_in_rule__StaRepository__Group__102326 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_18_in_rule__StaRepository__Group__10__Impl2354 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__11__Impl_in_rule__StaRepository__Group__112385 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__12_in_rule__StaRepository__Group__112388 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__StaRepository__Group__11__Impl2416 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__12__Impl_in_rule__StaRepository__Group__122447 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__13_in_rule__StaRepository__Group__122450 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__ActionsAssignment_12_in_rule__StaRepository__Group__12__Impl2477 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__13__Impl_in_rule__StaRepository__Group__132507 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__14_in_rule__StaRepository__Group__132510 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_13__0_in_rule__StaRepository__Group__13__Impl2537 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__14__Impl_in_rule__StaRepository__Group__142568 = new BitSet(new long[]{0x0000000000080000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__15_in_rule__StaRepository__Group__142571 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__StaRepository__Group__14__Impl2599 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__15__Impl_in_rule__StaRepository__Group__152630 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__16_in_rule__StaRepository__Group__152633 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_19_in_rule__StaRepository__Group__15__Impl2661 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__16__Impl_in_rule__StaRepository__Group__162692 = new BitSet(new long[]{0x0000000040000000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__17_in_rule__StaRepository__Group__162695 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__StaRepository__Group__16__Impl2723 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__17__Impl_in_rule__StaRepository__Group__172754 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__18_in_rule__StaRepository__Group__172757 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__StrategiesAssignment_17_in_rule__StaRepository__Group__17__Impl2784 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__18__Impl_in_rule__StaRepository__Group__182814 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__19_in_rule__StaRepository__Group__182817 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_18__0_in_rule__StaRepository__Group__18__Impl2844 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__19__Impl_in_rule__StaRepository__Group__192875 = new BitSet(new long[]{0x0000000000220000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__20_in_rule__StaRepository__Group__192878 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__StaRepository__Group__19__Impl2906 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__20__Impl_in_rule__StaRepository__Group__202937 = new BitSet(new long[]{0x0000000000220000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__21_in_rule__StaRepository__Group__202940 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__0_in_rule__StaRepository__Group__20__Impl2967 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group__21__Impl_in_rule__StaRepository__Group__212998 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__StaRepository__Group__21__Impl3026 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_8__0__Impl_in_rule__StaRepository__Group_8__03101 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_8__1_in_rule__StaRepository__Group_8__03104 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__StaRepository__Group_8__0__Impl3132 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_8__1__Impl_in_rule__StaRepository__Group_8__13163 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__TacticsAssignment_8_1_in_rule__StaRepository__Group_8__1__Impl3190 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_13__0__Impl_in_rule__StaRepository__Group_13__03224 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_13__1_in_rule__StaRepository__Group_13__03227 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__StaRepository__Group_13__0__Impl3255 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_13__1__Impl_in_rule__StaRepository__Group_13__13286 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__ActionsAssignment_13_1_in_rule__StaRepository__Group_13__1__Impl3313 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_18__0__Impl_in_rule__StaRepository__Group_18__03347 = new BitSet(new long[]{0x0000000040000000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_18__1_in_rule__StaRepository__Group_18__03350 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__StaRepository__Group_18__0__Impl3378 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_18__1__Impl_in_rule__StaRepository__Group_18__13409 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__StrategiesAssignment_18_1_in_rule__StaRepository__Group_18__1__Impl3436 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__0__Impl_in_rule__StaRepository__Group_20__03470 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__1_in_rule__StaRepository__Group_20__03473 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_21_in_rule__StaRepository__Group_20__0__Impl3501 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__1__Impl_in_rule__StaRepository__Group_20__13532 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__2_in_rule__StaRepository__Group_20__13535 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__StaRepository__Group_20__1__Impl3563 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__2__Impl_in_rule__StaRepository__Group_20__23594 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__3_in_rule__StaRepository__Group_20__23597 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__ParametersAssignment_20_2_in_rule__StaRepository__Group_20__2__Impl3624 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__3__Impl_in_rule__StaRepository__Group_20__33654 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__4_in_rule__StaRepository__Group_20__33657 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20_3__0_in_rule__StaRepository__Group_20__3__Impl3684 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20__4__Impl_in_rule__StaRepository__Group_20__43715 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__StaRepository__Group_20__4__Impl3743 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20_3__0__Impl_in_rule__StaRepository__Group_20_3__03784 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20_3__1_in_rule__StaRepository__Group_20_3__03787 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__StaRepository__Group_20_3__0__Impl3815 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__Group_20_3__1__Impl_in_rule__StaRepository__Group_20_3__13846 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StaRepository__ParametersAssignment_20_3_1_in_rule__StaRepository__Group_20_3__1__Impl3873 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__0__Impl_in_rule__Tactic__Group__03907 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__1_in_rule__Tactic__Group__03910 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_22_in_rule__Tactic__Group__0__Impl3938 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__1__Impl_in_rule__Tactic__Group__13969 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__2_in_rule__Tactic__Group__13972 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__IdAssignment_1_in_rule__Tactic__Group__1__Impl3999 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__2__Impl_in_rule__Tactic__Group__24029 = new BitSet(new long[]{0x0000000000008000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__3_in_rule__Tactic__Group__24032 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Tactic__Group__2__Impl4060 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__3__Impl_in_rule__Tactic__Group__34091 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__4_in_rule__Tactic__Group__34094 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_15_in_rule__Tactic__Group__3__Impl4122 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__4__Impl_in_rule__Tactic__Group__44153 = new BitSet(new long[]{0x0000000009800000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__5_in_rule__Tactic__Group__44156 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__NameAssignment_4_in_rule__Tactic__Group__4__Impl4183 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__5__Impl_in_rule__Tactic__Group__54213 = new BitSet(new long[]{0x0000000009800000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__6_in_rule__Tactic__Group__54216 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__0_in_rule__Tactic__Group__5__Impl4243 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__6__Impl_in_rule__Tactic__Group__64274 = new BitSet(new long[]{0x0000000009800000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__7_in_rule__Tactic__Group__64277 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__0_in_rule__Tactic__Group__6__Impl4304 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__7__Impl_in_rule__Tactic__Group__74335 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__8_in_rule__Tactic__Group__74338 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__Tactic__Group__7__Impl4366 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__8__Impl_in_rule__Tactic__Group__84397 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__9_in_rule__Tactic__Group__84400 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__ImplementedPlanAssignment_8_in_rule__Tactic__Group__8__Impl4427 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group__9__Impl_in_rule__Tactic__Group__94457 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Tactic__Group__9__Impl4485 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__0__Impl_in_rule__Tactic__Group_5__04536 = new BitSet(new long[]{0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__1_in_rule__Tactic__Group_5__04539 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_24_in_rule__Tactic__Group_5__0__Impl4567 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__1__Impl_in_rule__Tactic__Group_5__14598 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__2_in_rule__Tactic__Group_5__14601 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_25_in_rule__Tactic__Group_5__1__Impl4629 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__2__Impl_in_rule__Tactic__Group_5__24660 = new BitSet(new long[]{0x0000000004100000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__3_in_rule__Tactic__Group_5__24663 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__InputParamsAssignment_5_2_in_rule__Tactic__Group_5__2__Impl4690 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__3__Impl_in_rule__Tactic__Group_5__34720 = new BitSet(new long[]{0x0000000004100000L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__4_in_rule__Tactic__Group_5__34723 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5_3__0_in_rule__Tactic__Group_5__3__Impl4750 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5__4__Impl_in_rule__Tactic__Group_5__44781 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_26_in_rule__Tactic__Group_5__4__Impl4809 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5_3__0__Impl_in_rule__Tactic__Group_5_3__04850 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5_3__1_in_rule__Tactic__Group_5_3__04853 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__Tactic__Group_5_3__0__Impl4881 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_5_3__1__Impl_in_rule__Tactic__Group_5_3__14912 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__InputParamsAssignment_5_3_1_in_rule__Tactic__Group_5_3__1__Impl4939 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__0__Impl_in_rule__Tactic__Group_6__04973 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__1_in_rule__Tactic__Group_6__04976 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_27_in_rule__Tactic__Group_6__0__Impl5004 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__Group_6__1__Impl_in_rule__Tactic__Group_6__15035 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Tactic__OutputParamAssignment_6_1_in_rule__Tactic__Group_6__1__Impl5062 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__0__Impl_in_rule__Action__Group__05096 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group__1_in_rule__Action__Group__05099 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_28_in_rule__Action__Group__0__Impl5127 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__1__Impl_in_rule__Action__Group__15158 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Action__Group__2_in_rule__Action__Group__15161 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__IdAssignment_1_in_rule__Action__Group__1__Impl5188 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__2__Impl_in_rule__Action__Group__25218 = new BitSet(new long[]{0x0000000000008000L});
+        public static final BitSet FOLLOW_rule__Action__Group__3_in_rule__Action__Group__25221 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Action__Group__2__Impl5249 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__3__Impl_in_rule__Action__Group__35280 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group__4_in_rule__Action__Group__35283 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_15_in_rule__Action__Group__3__Impl5311 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__4__Impl_in_rule__Action__Group__45342 = new BitSet(new long[]{0x0000000029000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__5_in_rule__Action__Group__45345 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__NameAssignment_4_in_rule__Action__Group__4__Impl5372 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__5__Impl_in_rule__Action__Group__55402 = new BitSet(new long[]{0x0000000029000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__6_in_rule__Action__Group__55405 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_5__0_in_rule__Action__Group__5__Impl5432 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__6__Impl_in_rule__Action__Group__65463 = new BitSet(new long[]{0x0000000029000000L});
+        public static final BitSet FOLLOW_rule__Action__Group__7_in_rule__Action__Group__65466 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__0_in_rule__Action__Group__6__Impl5493 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__7__Impl_in_rule__Action__Group__75524 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group__8_in_rule__Action__Group__75527 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__Action__Group__7__Impl5555 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__8__Impl_in_rule__Action__Group__85586 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__Action__Group__9_in_rule__Action__Group__85589 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__ReferredAdaptationPointAssignment_8_in_rule__Action__Group__8__Impl5616 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group__9__Impl_in_rule__Action__Group__95646 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Action__Group__9__Impl5674 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_5__0__Impl_in_rule__Action__Group_5__05725 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group_5__1_in_rule__Action__Group_5__05728 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_27_in_rule__Action__Group_5__0__Impl5756 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_5__1__Impl_in_rule__Action__Group_5__15787 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__OutputParamAssignment_5_1_in_rule__Action__Group_5__1__Impl5814 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__0__Impl_in_rule__Action__Group_6__05848 = new BitSet(new long[]{0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__1_in_rule__Action__Group_6__05851 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_24_in_rule__Action__Group_6__0__Impl5879 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__1__Impl_in_rule__Action__Group_6__15910 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__2_in_rule__Action__Group_6__15913 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_25_in_rule__Action__Group_6__1__Impl5941 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__2__Impl_in_rule__Action__Group_6__25972 = new BitSet(new long[]{0x0000000004100000L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__3_in_rule__Action__Group_6__25975 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__InputParamsAssignment_6_2_in_rule__Action__Group_6__2__Impl6002 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__3__Impl_in_rule__Action__Group_6__36032 = new BitSet(new long[]{0x0000000004100000L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__4_in_rule__Action__Group_6__36035 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_6_3__0_in_rule__Action__Group_6__3__Impl6062 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__Action__Group_6__4__Impl_in_rule__Action__Group_6__46093 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_26_in_rule__Action__Group_6__4__Impl6121 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_6_3__0__Impl_in_rule__Action__Group_6_3__06162 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Action__Group_6_3__1_in_rule__Action__Group_6_3__06165 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__Action__Group_6_3__0__Impl6193 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__Group_6_3__1__Impl_in_rule__Action__Group_6_3__16224 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Action__InputParamsAssignment_6_3_1_in_rule__Action__Group_6_3__1__Impl6251 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__0__Impl_in_rule__Strategy__Group__06285 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__1_in_rule__Strategy__Group__06288 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_30_in_rule__Strategy__Group__0__Impl6316 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__1__Impl_in_rule__Strategy__Group__16347 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__2_in_rule__Strategy__Group__16350 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__IdAssignment_1_in_rule__Strategy__Group__1__Impl6377 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__2__Impl_in_rule__Strategy__Group__26407 = new BitSet(new long[]{0x0000000000008000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__3_in_rule__Strategy__Group__26410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Strategy__Group__2__Impl6438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__3__Impl_in_rule__Strategy__Group__36469 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__4_in_rule__Strategy__Group__36472 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_15_in_rule__Strategy__Group__3__Impl6500 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__4__Impl_in_rule__Strategy__Group__46531 = new BitSet(new long[]{0x0000000080000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__5_in_rule__Strategy__Group__46534 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__NameAssignment_4_in_rule__Strategy__Group__4__Impl6561 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__5__Impl_in_rule__Strategy__Group__56591 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__6_in_rule__Strategy__Group__56594 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__Strategy__Group__5__Impl6622 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__6__Impl_in_rule__Strategy__Group__66653 = new BitSet(new long[]{0x0000000200010000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__7_in_rule__Strategy__Group__66656 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__ObjectiveAssignment_6_in_rule__Strategy__Group__6__Impl6683 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__7__Impl_in_rule__Strategy__Group__76713 = new BitSet(new long[]{0x0000000200010000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__8_in_rule__Strategy__Group__76716 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_7__0_in_rule__Strategy__Group__7__Impl6743 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__8__Impl_in_rule__Strategy__Group__86774 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__9_in_rule__Strategy__Group__86777 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_16_in_rule__Strategy__Group__8__Impl6805 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__9__Impl_in_rule__Strategy__Group__96836 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__10_in_rule__Strategy__Group__96839 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Strategy__Group__9__Impl6867 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__10__Impl_in_rule__Strategy__Group__106898 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__11_in_rule__Strategy__Group__106901 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__TacticsAssignment_10_in_rule__Strategy__Group__10__Impl6928 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__11__Impl_in_rule__Strategy__Group__116958 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__12_in_rule__Strategy__Group__116961 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_11__0_in_rule__Strategy__Group__11__Impl6988 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__12__Impl_in_rule__Strategy__Group__127019 = new BitSet(new long[]{0x0000000100000000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__13_in_rule__Strategy__Group__127022 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Strategy__Group__12__Impl7050 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__13__Impl_in_rule__Strategy__Group__137081 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__14_in_rule__Strategy__Group__137084 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_32_in_rule__Strategy__Group__13__Impl7112 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__14__Impl_in_rule__Strategy__Group__147143 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__15_in_rule__Strategy__Group__147146 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__WeightingFunctionAssignment_14_in_rule__Strategy__Group__14__Impl7173 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group__15__Impl_in_rule__Strategy__Group__157203 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Strategy__Group__15__Impl7231 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_7__0__Impl_in_rule__Strategy__Group_7__07294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_7__1_in_rule__Strategy__Group_7__07297 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_33_in_rule__Strategy__Group_7__0__Impl7325 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_7__1__Impl_in_rule__Strategy__Group_7__17356 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__TriggeringEventsAssignment_7_1_in_rule__Strategy__Group_7__1__Impl7383 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_11__0__Impl_in_rule__Strategy__Group_11__07417 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_11__1_in_rule__Strategy__Group_11__07420 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__Strategy__Group_11__0__Impl7448 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__Group_11__1__Impl_in_rule__Strategy__Group_11__17479 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Strategy__TacticsAssignment_11_1_in_rule__Strategy__Group_11__1__Impl7506 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__0__Impl_in_rule__Parameter__Group__07540 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__1_in_rule__Parameter__Group__07543 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_34_in_rule__Parameter__Group__0__Impl7571 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__1__Impl_in_rule__Parameter__Group__17602 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__2_in_rule__Parameter__Group__17605 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__NameAssignment_1_in_rule__Parameter__Group__1__Impl7632 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__2__Impl_in_rule__Parameter__Group__27662 = new BitSet(new long[]{0x0000000800000000L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__3_in_rule__Parameter__Group__27665 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Parameter__Group__2__Impl7693 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__3__Impl_in_rule__Parameter__Group__37724 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__4_in_rule__Parameter__Group__37727 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_35_in_rule__Parameter__Group__3__Impl7755 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__4__Impl_in_rule__Parameter__Group__47786 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__5_in_rule__Parameter__Group__47789 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__TypeAssignment_4_in_rule__Parameter__Group__4__Impl7816 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Parameter__Group__5__Impl_in_rule__Parameter__Group__57846 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Parameter__Group__5__Impl7874 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__0__Impl_in_rule__AdaptationPlan__Group__07917 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__1_in_rule__AdaptationPlan__Group__07920 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__AdaptationPlan__Group__0__Impl7948 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__1__Impl_in_rule__AdaptationPlan__Group__17979 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__2_in_rule__AdaptationPlan__Group__17982 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__IdAssignment_1_in_rule__AdaptationPlan__Group__1__Impl8009 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__2__Impl_in_rule__AdaptationPlan__Group__28039 = new BitSet(new long[]{0x0000000000008000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__3_in_rule__AdaptationPlan__Group__28042 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__AdaptationPlan__Group__2__Impl8070 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__3__Impl_in_rule__AdaptationPlan__Group__38101 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__4_in_rule__AdaptationPlan__Group__38104 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_15_in_rule__AdaptationPlan__Group__3__Impl8132 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__4__Impl_in_rule__AdaptationPlan__Group__48163 = new BitSet(new long[]{0x0000002000020000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__5_in_rule__AdaptationPlan__Group__48166 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__NameAssignment_4_in_rule__AdaptationPlan__Group__4__Impl8193 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__5__Impl_in_rule__AdaptationPlan__Group__58223 = new BitSet(new long[]{0x0000002000020000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__6_in_rule__AdaptationPlan__Group__58226 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__0_in_rule__AdaptationPlan__Group__5__Impl8253 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group__6__Impl_in_rule__AdaptationPlan__Group__68284 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__AdaptationPlan__Group__6__Impl8312 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__0__Impl_in_rule__AdaptationPlan__Group_5__08357 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__1_in_rule__AdaptationPlan__Group_5__08360 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_37_in_rule__AdaptationPlan__Group_5__0__Impl8388 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__1__Impl_in_rule__AdaptationPlan__Group_5__18419 = new BitSet(new long[]{0x0001264000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__2_in_rule__AdaptationPlan__Group_5__18422 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__AdaptationPlan__Group_5__1__Impl8450 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__2__Impl_in_rule__AdaptationPlan__Group_5__28481 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__3_in_rule__AdaptationPlan__Group_5__28484 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__StepsAssignment_5_2_in_rule__AdaptationPlan__Group_5__2__Impl8511 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__3__Impl_in_rule__AdaptationPlan__Group_5__38541 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__4_in_rule__AdaptationPlan__Group_5__38544 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5_3__0_in_rule__AdaptationPlan__Group_5__3__Impl8571 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5__4__Impl_in_rule__AdaptationPlan__Group_5__48602 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__AdaptationPlan__Group_5__4__Impl8630 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5_3__0__Impl_in_rule__AdaptationPlan__Group_5_3__08671 = new BitSet(new long[]{0x0001264000000000L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5_3__1_in_rule__AdaptationPlan__Group_5_3__08674 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__AdaptationPlan__Group_5_3__0__Impl8702 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__Group_5_3__1__Impl_in_rule__AdaptationPlan__Group_5_3__18733 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AdaptationPlan__StepsAssignment_5_3_1_in_rule__AdaptationPlan__Group_5_3__1__Impl8760 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group__0__Impl_in_rule__Start__Group__08794 = new BitSet(new long[]{0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__Start__Group__1_in_rule__Start__Group__08797 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group__1__Impl_in_rule__Start__Group__18855 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Start__Group__2_in_rule__Start__Group__18858 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_38_in_rule__Start__Group__1__Impl8886 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group__2__Impl_in_rule__Start__Group__28917 = new BitSet(new long[]{0x0000018000020000L});
+        public static final BitSet FOLLOW_rule__Start__Group__3_in_rule__Start__Group__28920 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Start__Group__2__Impl8948 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group__3__Impl_in_rule__Start__Group__38979 = new BitSet(new long[]{0x0000018000020000L});
+        public static final BitSet FOLLOW_rule__Start__Group__4_in_rule__Start__Group__38982 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group_3__0_in_rule__Start__Group__3__Impl9009 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group__4__Impl_in_rule__Start__Group__49040 = new BitSet(new long[]{0x0000018000020000L});
+        public static final BitSet FOLLOW_rule__Start__Group__5_in_rule__Start__Group__49043 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group_4__0_in_rule__Start__Group__4__Impl9070 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group__5__Impl_in_rule__Start__Group__59101 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Start__Group__5__Impl9129 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group_3__0__Impl_in_rule__Start__Group_3__09172 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Start__Group_3__1_in_rule__Start__Group_3__09175 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_39_in_rule__Start__Group_3__0__Impl9203 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group_3__1__Impl_in_rule__Start__Group_3__19234 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__PredecessorAssignment_3_1_in_rule__Start__Group_3__1__Impl9261 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group_4__0__Impl_in_rule__Start__Group_4__09295 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Start__Group_4__1_in_rule__Start__Group_4__09298 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_rule__Start__Group_4__0__Impl9326 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__Group_4__1__Impl_in_rule__Start__Group_4__19357 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Start__SuccessorAssignment_4_1_in_rule__Start__Group_4__1__Impl9384 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group__0__Impl_in_rule__Stop__Group__09418 = new BitSet(new long[]{0x0000020000000000L});
+        public static final BitSet FOLLOW_rule__Stop__Group__1_in_rule__Stop__Group__09421 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group__1__Impl_in_rule__Stop__Group__19479 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Stop__Group__2_in_rule__Stop__Group__19482 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_41_in_rule__Stop__Group__1__Impl9510 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group__2__Impl_in_rule__Stop__Group__29541 = new BitSet(new long[]{0x0000018000020000L});
+        public static final BitSet FOLLOW_rule__Stop__Group__3_in_rule__Stop__Group__29544 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Stop__Group__2__Impl9572 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group__3__Impl_in_rule__Stop__Group__39603 = new BitSet(new long[]{0x0000018000020000L});
+        public static final BitSet FOLLOW_rule__Stop__Group__4_in_rule__Stop__Group__39606 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group_3__0_in_rule__Stop__Group__3__Impl9633 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group__4__Impl_in_rule__Stop__Group__49664 = new BitSet(new long[]{0x0000018000020000L});
+        public static final BitSet FOLLOW_rule__Stop__Group__5_in_rule__Stop__Group__49667 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group_4__0_in_rule__Stop__Group__4__Impl9694 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group__5__Impl_in_rule__Stop__Group__59725 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Stop__Group__5__Impl9753 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group_3__0__Impl_in_rule__Stop__Group_3__09796 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Stop__Group_3__1_in_rule__Stop__Group_3__09799 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_39_in_rule__Stop__Group_3__0__Impl9827 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group_3__1__Impl_in_rule__Stop__Group_3__19858 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__PredecessorAssignment_3_1_in_rule__Stop__Group_3__1__Impl9885 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group_4__0__Impl_in_rule__Stop__Group_4__09919 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Stop__Group_4__1_in_rule__Stop__Group_4__09922 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_rule__Stop__Group_4__0__Impl9950 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__Group_4__1__Impl_in_rule__Stop__Group_4__19981 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Stop__SuccessorAssignment_4_1_in_rule__Stop__Group_4__1__Impl10008 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__0__Impl_in_rule__Loop__Group__010042 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Loop__Group__1_in_rule__Loop__Group__010045 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__Loop__Group__0__Impl10073 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__1__Impl_in_rule__Loop__Group__110104 = new BitSet(new long[]{0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__Loop__Group__2_in_rule__Loop__Group__110107 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Loop__Group__1__Impl10135 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__2__Impl_in_rule__Loop__Group__210166 = new BitSet(new long[]{0x0004000000000040L});
+        public static final BitSet FOLLOW_rule__Loop__Group__3_in_rule__Loop__Group__210169 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__Loop__Group__2__Impl10197 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__3__Impl_in_rule__Loop__Group__310228 = new BitSet(new long[]{0x0000118000000000L});
+        public static final BitSet FOLLOW_rule__Loop__Group__4_in_rule__Loop__Group__310231 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__CounterAssignment_3_in_rule__Loop__Group__3__Impl10258 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__4__Impl_in_rule__Loop__Group__410288 = new BitSet(new long[]{0x0000118000000000L});
+        public static final BitSet FOLLOW_rule__Loop__Group__5_in_rule__Loop__Group__410291 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group_4__0_in_rule__Loop__Group__4__Impl10318 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__5__Impl_in_rule__Loop__Group__510349 = new BitSet(new long[]{0x0000118000000000L});
+        public static final BitSet FOLLOW_rule__Loop__Group__6_in_rule__Loop__Group__510352 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group_5__0_in_rule__Loop__Group__5__Impl10379 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__6__Impl_in_rule__Loop__Group__610410 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__Loop__Group__7_in_rule__Loop__Group__610413 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__Loop__Group__6__Impl10441 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__7__Impl_in_rule__Loop__Group__710472 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__Loop__Group__8_in_rule__Loop__Group__710475 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__BodyAssignment_7_in_rule__Loop__Group__7__Impl10502 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group__8__Impl_in_rule__Loop__Group__810532 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Loop__Group__8__Impl10560 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group_4__0__Impl_in_rule__Loop__Group_4__010609 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Loop__Group_4__1_in_rule__Loop__Group_4__010612 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_39_in_rule__Loop__Group_4__0__Impl10640 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group_4__1__Impl_in_rule__Loop__Group_4__110671 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__PredecessorAssignment_4_1_in_rule__Loop__Group_4__1__Impl10698 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group_5__0__Impl_in_rule__Loop__Group_5__010732 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Loop__Group_5__1_in_rule__Loop__Group_5__010735 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_rule__Loop__Group_5__0__Impl10763 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__Group_5__1__Impl_in_rule__Loop__Group_5__110794 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Loop__SuccessorAssignment_5_1_in_rule__Loop__Group_5__1__Impl10821 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__0__Impl_in_rule__Branch__Group__010855 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__1_in_rule__Branch__Group__010858 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_45_in_rule__Branch__Group__0__Impl10886 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__1__Impl_in_rule__Branch__Group__110917 = new BitSet(new long[]{0x0000C18000000000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__2_in_rule__Branch__Group__110920 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Branch__Group__1__Impl10948 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__2__Impl_in_rule__Branch__Group__210979 = new BitSet(new long[]{0x0000C18000000000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__3_in_rule__Branch__Group__210982 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_2__0_in_rule__Branch__Group__2__Impl11009 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__3__Impl_in_rule__Branch__Group__311040 = new BitSet(new long[]{0x0000C18000000000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__4_in_rule__Branch__Group__311043 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_3__0_in_rule__Branch__Group__3__Impl11070 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__4__Impl_in_rule__Branch__Group__411101 = new BitSet(new long[]{0x0000C18000000000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__5_in_rule__Branch__Group__411104 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_4__0_in_rule__Branch__Group__4__Impl11131 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__5__Impl_in_rule__Branch__Group__511162 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__6_in_rule__Branch__Group__511165 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__Branch__Group__5__Impl11193 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__6__Impl_in_rule__Branch__Group__611224 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__7_in_rule__Branch__Group__611227 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__Branch__Group__6__Impl11255 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__7__Impl_in_rule__Branch__Group__711286 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__8_in_rule__Branch__Group__711289 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__BranchesAssignment_7_in_rule__Branch__Group__7__Impl11316 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__8__Impl_in_rule__Branch__Group__811346 = new BitSet(new long[]{0x0000000000120000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__9_in_rule__Branch__Group__811349 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_8__0_in_rule__Branch__Group__8__Impl11376 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__9__Impl_in_rule__Branch__Group__911407 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__Branch__Group__10_in_rule__Branch__Group__911410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Branch__Group__9__Impl11438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group__10__Impl_in_rule__Branch__Group__1011469 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__Branch__Group__10__Impl11497 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_2__0__Impl_in_rule__Branch__Group_2__011550 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Branch__Group_2__1_in_rule__Branch__Group_2__011553 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_47_in_rule__Branch__Group_2__0__Impl11581 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_2__1__Impl_in_rule__Branch__Group_2__111612 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__ConditionAssignment_2_1_in_rule__Branch__Group_2__1__Impl11639 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_3__0__Impl_in_rule__Branch__Group_3__011673 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Branch__Group_3__1_in_rule__Branch__Group_3__011676 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_39_in_rule__Branch__Group_3__0__Impl11704 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_3__1__Impl_in_rule__Branch__Group_3__111735 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__PredecessorAssignment_3_1_in_rule__Branch__Group_3__1__Impl11762 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_4__0__Impl_in_rule__Branch__Group_4__011796 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Branch__Group_4__1_in_rule__Branch__Group_4__011799 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_rule__Branch__Group_4__0__Impl11827 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_4__1__Impl_in_rule__Branch__Group_4__111858 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__SuccessorAssignment_4_1_in_rule__Branch__Group_4__1__Impl11885 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_8__0__Impl_in_rule__Branch__Group_8__011919 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__Branch__Group_8__1_in_rule__Branch__Group_8__011922 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__Branch__Group_8__0__Impl11950 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__Group_8__1__Impl_in_rule__Branch__Group_8__111981 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Branch__BranchesAssignment_8_1_in_rule__Branch__Group_8__1__Impl12008 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__0__Impl_in_rule__ActionReference__Group__012042 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__1_in_rule__ActionReference__Group__012045 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_48_in_rule__ActionReference__Group__0__Impl12073 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__1__Impl_in_rule__ActionReference__Group__112104 = new BitSet(new long[]{0x0002018000000000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__2_in_rule__ActionReference__Group__112107 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__ActionReference__Group__1__Impl12135 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__2__Impl_in_rule__ActionReference__Group__212166 = new BitSet(new long[]{0x0002018000000000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__3_in_rule__ActionReference__Group__212169 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_2__0_in_rule__ActionReference__Group__2__Impl12196 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__3__Impl_in_rule__ActionReference__Group__312227 = new BitSet(new long[]{0x0002018000000000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__4_in_rule__ActionReference__Group__312230 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_3__0_in_rule__ActionReference__Group__3__Impl12257 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__4__Impl_in_rule__ActionReference__Group__412288 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__5_in_rule__ActionReference__Group__412291 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_49_in_rule__ActionReference__Group__4__Impl12319 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__5__Impl_in_rule__ActionReference__Group__512350 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__6_in_rule__ActionReference__Group__512353 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__RefersToAssignment_5_in_rule__ActionReference__Group__5__Impl12380 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group__6__Impl_in_rule__ActionReference__Group__612410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__ActionReference__Group__6__Impl12438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_2__0__Impl_in_rule__ActionReference__Group_2__012483 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_2__1_in_rule__ActionReference__Group_2__012486 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_39_in_rule__ActionReference__Group_2__0__Impl12514 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_2__1__Impl_in_rule__ActionReference__Group_2__112545 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__PredecessorAssignment_2_1_in_rule__ActionReference__Group_2__1__Impl12572 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_3__0__Impl_in_rule__ActionReference__Group_3__012606 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_3__1_in_rule__ActionReference__Group_3__012609 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_rule__ActionReference__Group_3__0__Impl12637 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__Group_3__1__Impl_in_rule__ActionReference__Group_3__112668 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ActionReference__SuccessorAssignment_3_1_in_rule__ActionReference__Group_3__1__Impl12695 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EInt__Group__0__Impl_in_rule__EInt__Group__012729 = new BitSet(new long[]{0x0004000000000040L});
+        public static final BitSet FOLLOW_rule__EInt__Group__1_in_rule__EInt__Group__012732 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__EInt__Group__0__Impl12761 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EInt__Group__1__Impl_in_rule__EInt__Group__112794 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EInt__Group__1__Impl12821 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__0__Impl_in_rule__ModelVariableConfigurationRange__Group__012854 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__1_in_rule__ModelVariableConfigurationRange__Group__012857 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__ModelVariableConfigurationRange__Group__0__Impl12885 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__1__Impl_in_rule__ModelVariableConfigurationRange__Group__112916 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__2_in_rule__ModelVariableConfigurationRange__Group__112919 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__IdAssignment_1_in_rule__ModelVariableConfigurationRange__Group__1__Impl12946 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__2__Impl_in_rule__ModelVariableConfigurationRange__Group__212976 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__3_in_rule__ModelVariableConfigurationRange__Group__212979 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__ModelVariableConfigurationRange__Group__2__Impl13007 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__3__Impl_in_rule__ModelVariableConfigurationRange__Group__313038 = new BitSet(new long[]{0x0404000000000040L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__4_in_rule__ModelVariableConfigurationRange__Group__313041 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__ModelVariableConfigurationRange__Group__3__Impl13069 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__4__Impl_in_rule__ModelVariableConfigurationRange__Group__413100 = new BitSet(new long[]{0x0020000000000000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__5_in_rule__ModelVariableConfigurationRange__Group__413103 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__MinValueAssignment_4_in_rule__ModelVariableConfigurationRange__Group__4__Impl13130 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__5__Impl_in_rule__ModelVariableConfigurationRange__Group__513160 = new BitSet(new long[]{0x0404000000000040L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__6_in_rule__ModelVariableConfigurationRange__Group__513163 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_53_in_rule__ModelVariableConfigurationRange__Group__5__Impl13191 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__6__Impl_in_rule__ModelVariableConfigurationRange__Group__613222 = new BitSet(new long[]{0x0040000000000000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__7_in_rule__ModelVariableConfigurationRange__Group__613225 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__MaxValueAssignment_6_in_rule__ModelVariableConfigurationRange__Group__6__Impl13252 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__7__Impl_in_rule__ModelVariableConfigurationRange__Group__713282 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__8_in_rule__ModelVariableConfigurationRange__Group__713285 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_54_in_rule__ModelVariableConfigurationRange__Group__7__Impl13313 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__8__Impl_in_rule__ModelVariableConfigurationRange__Group__813344 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__9_in_rule__ModelVariableConfigurationRange__Group__813347 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_8_in_rule__ModelVariableConfigurationRange__Group__8__Impl13374 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelVariableConfigurationRange__Group__9__Impl_in_rule__ModelVariableConfigurationRange__Group__913404 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__ModelVariableConfigurationRange__Group__9__Impl13432 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__0__Impl_in_rule__ModelEntityConfigurationRange__Group__013483 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__1_in_rule__ModelEntityConfigurationRange__Group__013486 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_55_in_rule__ModelEntityConfigurationRange__Group__0__Impl13514 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__1__Impl_in_rule__ModelEntityConfigurationRange__Group__113545 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__2_in_rule__ModelEntityConfigurationRange__Group__113548 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__IdAssignment_1_in_rule__ModelEntityConfigurationRange__Group__1__Impl13575 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__2__Impl_in_rule__ModelEntityConfigurationRange__Group__213605 = new BitSet(new long[]{0x0300000000000000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__3_in_rule__ModelEntityConfigurationRange__Group__213608 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__ModelEntityConfigurationRange__Group__2__Impl13636 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__3__Impl_in_rule__ModelEntityConfigurationRange__Group__313667 = new BitSet(new long[]{0x0300000000000000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__4_in_rule__ModelEntityConfigurationRange__Group__313670 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__0_in_rule__ModelEntityConfigurationRange__Group__3__Impl13697 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__4__Impl_in_rule__ModelEntityConfigurationRange__Group__413728 = new BitSet(new long[]{0x4800000000000000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__5_in_rule__ModelEntityConfigurationRange__Group__413731 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_56_in_rule__ModelEntityConfigurationRange__Group__4__Impl13759 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__5__Impl_in_rule__ModelEntityConfigurationRange__Group__513790 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__6_in_rule__ModelEntityConfigurationRange__Group__513793 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_5_in_rule__ModelEntityConfigurationRange__Group__5__Impl13820 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group__6__Impl_in_rule__ModelEntityConfigurationRange__Group__613850 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__ModelEntityConfigurationRange__Group__6__Impl13878 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__0__Impl_in_rule__ModelEntityConfigurationRange__Group_3__013923 = new BitSet(new long[]{0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__1_in_rule__ModelEntityConfigurationRange__Group_3__013926 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_57_in_rule__ModelEntityConfigurationRange__Group_3__0__Impl13954 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__1__Impl_in_rule__ModelEntityConfigurationRange__Group_3__113985 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__2_in_rule__ModelEntityConfigurationRange__Group_3__113988 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_25_in_rule__ModelEntityConfigurationRange__Group_3__1__Impl14016 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__2__Impl_in_rule__ModelEntityConfigurationRange__Group_3__214047 = new BitSet(new long[]{0x0000000004100000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__3_in_rule__ModelEntityConfigurationRange__Group_3__214050 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__EntityAssignment_3_2_in_rule__ModelEntityConfigurationRange__Group_3__2__Impl14077 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__3__Impl_in_rule__ModelEntityConfigurationRange__Group_3__314107 = new BitSet(new long[]{0x0000000004100000L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__4_in_rule__ModelEntityConfigurationRange__Group_3__314110 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3_3__0_in_rule__ModelEntityConfigurationRange__Group_3__3__Impl14137 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3__4__Impl_in_rule__ModelEntityConfigurationRange__Group_3__414168 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_26_in_rule__ModelEntityConfigurationRange__Group_3__4__Impl14196 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3_3__0__Impl_in_rule__ModelEntityConfigurationRange__Group_3_3__014237 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3_3__1_in_rule__ModelEntityConfigurationRange__Group_3_3__014240 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__ModelEntityConfigurationRange__Group_3_3__0__Impl14268 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__Group_3_3__1__Impl_in_rule__ModelEntityConfigurationRange__Group_3_3__114299 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ModelEntityConfigurationRange__EntityAssignment_3_3_1_in_rule__ModelEntityConfigurationRange__Group_3_3__1__Impl14326 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__0__Impl_in_rule__EDouble__Group__014360 = new BitSet(new long[]{0x0404000000000040L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__1_in_rule__EDouble__Group__014363 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__EDouble__Group__0__Impl14392 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__1__Impl_in_rule__EDouble__Group__114425 = new BitSet(new long[]{0x0404000000000040L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__2_in_rule__EDouble__Group__114428 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EDouble__Group__1__Impl14456 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__2__Impl_in_rule__EDouble__Group__214487 = new BitSet(new long[]{0x0000000000000040L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__3_in_rule__EDouble__Group__214490 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_58_in_rule__EDouble__Group__2__Impl14518 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__3__Impl_in_rule__EDouble__Group__314549 = new BitSet(new long[]{0x0000000000001800L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__4_in_rule__EDouble__Group__314552 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EDouble__Group__3__Impl14579 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__4__Impl_in_rule__EDouble__Group__414608 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__0_in_rule__EDouble__Group__4__Impl14635 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__0__Impl_in_rule__EDouble__Group_4__014676 = new BitSet(new long[]{0x0004000000000040L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__1_in_rule__EDouble__Group_4__014679 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Alternatives_4_0_in_rule__EDouble__Group_4__0__Impl14706 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__1__Impl_in_rule__EDouble__Group_4__114736 = new BitSet(new long[]{0x0004000000000040L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__2_in_rule__EDouble__Group_4__114739 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__EDouble__Group_4__1__Impl14768 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__2__Impl_in_rule__EDouble__Group_4__214801 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EDouble__Group_4__2__Impl14828 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__0__Impl_in_rule__PropertyRange__Group__014864 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__1_in_rule__PropertyRange__Group__014867 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_59_in_rule__PropertyRange__Group__0__Impl14895 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__1__Impl_in_rule__PropertyRange__Group__114926 = new BitSet(new long[]{0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__2_in_rule__PropertyRange__Group__114929 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__PropertyRange__Group__1__Impl14957 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__2__Impl_in_rule__PropertyRange__Group__214988 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__3_in_rule__PropertyRange__Group__214991 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_60_in_rule__PropertyRange__Group__2__Impl15019 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__3__Impl_in_rule__PropertyRange__Group__315050 = new BitSet(new long[]{0x2000000000000000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__4_in_rule__PropertyRange__Group__315053 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__MinValueConstraintAssignment_3_in_rule__PropertyRange__Group__3__Impl15080 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__4__Impl_in_rule__PropertyRange__Group__415110 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__5_in_rule__PropertyRange__Group__415113 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_61_in_rule__PropertyRange__Group__4__Impl15141 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__5__Impl_in_rule__PropertyRange__Group__515172 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__6_in_rule__PropertyRange__Group__515175 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__MaxValueConstraintAssignment_5_in_rule__PropertyRange__Group__5__Impl15202 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PropertyRange__Group__6__Impl_in_rule__PropertyRange__Group__615232 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__PropertyRange__Group__6__Impl15260 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__0__Impl_in_rule__SetOfConfigurations__Group__015305 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__1_in_rule__SetOfConfigurations__Group__015308 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_62_in_rule__SetOfConfigurations__Group__0__Impl15336 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__1__Impl_in_rule__SetOfConfigurations__Group__115367 = new BitSet(new long[]{0x8000000000000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__2_in_rule__SetOfConfigurations__Group__115370 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__SetOfConfigurations__Group__1__Impl15398 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__2__Impl_in_rule__SetOfConfigurations__Group__215429 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__3_in_rule__SetOfConfigurations__Group__215432 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_63_in_rule__SetOfConfigurations__Group__2__Impl15460 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__3__Impl_in_rule__SetOfConfigurations__Group__315491 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000001L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__4_in_rule__SetOfConfigurations__Group__315494 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__ValueConstraintAssignment_3_in_rule__SetOfConfigurations__Group__3__Impl15521 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__4__Impl_in_rule__SetOfConfigurations__Group__415551 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000001L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__5_in_rule__SetOfConfigurations__Group__415554 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__0_in_rule__SetOfConfigurations__Group__4__Impl15581 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group__5__Impl_in_rule__SetOfConfigurations__Group__515612 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__SetOfConfigurations__Group__5__Impl15640 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__0__Impl_in_rule__SetOfConfigurations__Group_4__015683 = new BitSet(new long[]{0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__1_in_rule__SetOfConfigurations__Group_4__015686 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_64_in_rule__SetOfConfigurations__Group_4__0__Impl15714 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__1__Impl_in_rule__SetOfConfigurations__Group_4__115745 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__2_in_rule__SetOfConfigurations__Group_4__115748 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_25_in_rule__SetOfConfigurations__Group_4__1__Impl15776 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__2__Impl_in_rule__SetOfConfigurations__Group_4__215807 = new BitSet(new long[]{0x0000000004100000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__3_in_rule__SetOfConfigurations__Group_4__215810 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__VariantsAssignment_4_2_in_rule__SetOfConfigurations__Group_4__2__Impl15837 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__3__Impl_in_rule__SetOfConfigurations__Group_4__315867 = new BitSet(new long[]{0x0000000004100000L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__4_in_rule__SetOfConfigurations__Group_4__315870 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4_3__0_in_rule__SetOfConfigurations__Group_4__3__Impl15897 = new BitSet(new long[]{0x0000000000100002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4__4__Impl_in_rule__SetOfConfigurations__Group_4__415928 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_26_in_rule__SetOfConfigurations__Group_4__4__Impl15956 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4_3__0__Impl_in_rule__SetOfConfigurations__Group_4_3__015997 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4_3__1_in_rule__SetOfConfigurations__Group_4_3__016000 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__SetOfConfigurations__Group_4_3__0__Impl16028 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__Group_4_3__1__Impl_in_rule__SetOfConfigurations__Group_4_3__116059 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SetOfConfigurations__VariantsAssignment_4_3_1_in_rule__SetOfConfigurations__Group_4_3__1__Impl16086 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group__0__Impl_in_rule__Event__Group__016122 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group__1_in_rule__Event__Group__016125 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Event__Group__1__Impl_in_rule__Event__Group__116183 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__Event__Group__1__Impl16211 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__0__Impl_in_rule__WeightedTactic__Group__016246 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__1_in_rule__WeightedTactic__Group__016249 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_66_in_rule__WeightedTactic__Group__0__Impl16277 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__1__Impl_in_rule__WeightedTactic__Group__116308 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__2_in_rule__WeightedTactic__Group__116311 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__WeightedTactic__Group__1__Impl16339 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__2__Impl_in_rule__WeightedTactic__Group__216370 = new BitSet(new long[]{0x0404000000000040L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__3_in_rule__WeightedTactic__Group__216373 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__WeightedTactic__Group__2__Impl16401 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__3__Impl_in_rule__WeightedTactic__Group__316432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__4_in_rule__WeightedTactic__Group__316435 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__CurrentWeightAssignment_3_in_rule__WeightedTactic__Group__3__Impl16462 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__4__Impl_in_rule__WeightedTactic__Group__416492 = new BitSet(new long[]{0x0404000000000040L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__5_in_rule__WeightedTactic__Group__416495 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_68_in_rule__WeightedTactic__Group__4__Impl16523 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__5__Impl_in_rule__WeightedTactic__Group__516554 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__6_in_rule__WeightedTactic__Group__516557 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__DefaultWeightAssignment_5_in_rule__WeightedTactic__Group__5__Impl16584 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__6__Impl_in_rule__WeightedTactic__Group__616614 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__7_in_rule__WeightedTactic__Group__616617 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_69_in_rule__WeightedTactic__Group__6__Impl16645 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__7__Impl_in_rule__WeightedTactic__Group__716676 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__8_in_rule__WeightedTactic__Group__716679 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__UsesAssignment_7_in_rule__WeightedTactic__Group__7__Impl16706 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightedTactic__Group__8__Impl_in_rule__WeightedTactic__Group__816736 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__WeightedTactic__Group__8__Impl16764 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__0__Impl_in_rule__WeightingFunction__Group__016813 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__1_in_rule__WeightingFunction__Group__016816 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_70_in_rule__WeightingFunction__Group__0__Impl16844 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__1__Impl_in_rule__WeightingFunction__Group__116875 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__2_in_rule__WeightingFunction__Group__116878 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__WeightingFunction__Group__1__Impl16906 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__2__Impl_in_rule__WeightingFunction__Group__216937 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__3_in_rule__WeightingFunction__Group__216940 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_71_in_rule__WeightingFunction__Group__2__Impl16968 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__3__Impl_in_rule__WeightingFunction__Group__316999 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__4_in_rule__WeightingFunction__Group__317002 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__FunctionAssignment_3_in_rule__WeightingFunction__Group__3__Impl17029 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WeightingFunction__Group__4__Impl_in_rule__WeightingFunction__Group__417059 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__WeightingFunction__Group__4__Impl17087 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__StaRepository__IdAssignment_117133 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__StaRepository__NameAssignment_417164 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTactic_in_rule__StaRepository__TacticsAssignment_717195 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTactic_in_rule__StaRepository__TacticsAssignment_8_117226 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAction_in_rule__StaRepository__ActionsAssignment_1217257 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAction_in_rule__StaRepository__ActionsAssignment_13_117288 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStrategy_in_rule__StaRepository__StrategiesAssignment_1717319 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStrategy_in_rule__StaRepository__StrategiesAssignment_18_117350 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleParameter_in_rule__StaRepository__ParametersAssignment_20_217381 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleParameter_in_rule__StaRepository__ParametersAssignment_20_3_117412 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__IdAssignment_117443 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__NameAssignment_417474 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__InputParamsAssignment_5_217509 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__InputParamsAssignment_5_3_117548 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Tactic__OutputParamAssignment_6_117587 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_rule__Tactic__ImplementedPlanAssignment_817622 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__IdAssignment_117653 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__NameAssignment_417684 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__OutputParamAssignment_5_117719 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__InputParamsAssignment_6_217758 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__InputParamsAssignment_6_3_117797 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Action__ReferredAdaptationPointAssignment_817836 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Strategy__IdAssignment_117871 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Strategy__NameAssignment_417902 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Strategy__ObjectiveAssignment_617937 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEvent_in_rule__Strategy__TriggeringEventsAssignment_7_117972 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_rule__Strategy__TacticsAssignment_1018003 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_rule__Strategy__TacticsAssignment_11_118034 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightingFunction_in_rule__Strategy__WeightingFunctionAssignment_1418065 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Parameter__NameAssignment_118096 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Parameter__TypeAssignment_418127 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__AdaptationPlan__IdAssignment_118158 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__AdaptationPlan__NameAssignment_418189 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_rule__AdaptationPlan__StepsAssignment_5_218220 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_rule__AdaptationPlan__StepsAssignment_5_3_118251 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Start__PredecessorAssignment_3_118286 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Start__SuccessorAssignment_4_118325 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Stop__PredecessorAssignment_3_118364 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Stop__SuccessorAssignment_4_118403 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_rule__Loop__CounterAssignment_318438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Loop__PredecessorAssignment_4_118473 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Loop__SuccessorAssignment_5_118512 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_rule__Loop__BodyAssignment_718547 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Branch__ConditionAssignment_2_118578 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Branch__PredecessorAssignment_3_118613 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Branch__SuccessorAssignment_4_118652 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_rule__Branch__BranchesAssignment_718687 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_rule__Branch__BranchesAssignment_8_118718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ActionReference__PredecessorAssignment_2_118753 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ActionReference__SuccessorAssignment_3_118792 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ActionReference__RefersToAssignment_518831 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__IdAssignment_118866 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__ModelVariableConfigurationRange__MinValueAssignment_418897 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__ModelVariableConfigurationRange__MaxValueAssignment_618928 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelVariableConfigurationRange__AdaptableEntityAssignment_818963 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__IdAssignment_118998 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__EntityAssignment_3_219033 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ModelEntityConfigurationRange__EntityAssignment_3_3_119072 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVariationType_in_rule__ModelEntityConfigurationRange__VariationPossibilityAssignment_519107 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PropertyRange__MinValueConstraintAssignment_319142 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PropertyRange__MaxValueConstraintAssignment_519181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__SetOfConfigurations__ValueConstraintAssignment_319220 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__SetOfConfigurations__VariantsAssignment_4_219259 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__SetOfConfigurations__VariantsAssignment_4_3_119298 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__WeightedTactic__CurrentWeightAssignment_319335 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__WeightedTactic__DefaultWeightAssignment_519366 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightedTactic__UsesAssignment_719401 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__WeightingFunction__FunctionAssignment_319436 = 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/ui/internal/StaAdaptationLanguageActivator.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/internal/StaAdaptationLanguageActivator.java
new file mode 100644
index 0000000000000000000000000000000000000000..726d3a97865afc7b083b668a5ea8f77e5a49c9a0
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src-gen/edu/kit/ipd/descartes/mm/adaptation/ui/internal/StaAdaptationLanguageActivator.java
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.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 StaAdaptationLanguageActivator extends AbstractUIPlugin {
+	
+	public static final String EDU_KIT_IPD_DESCARTES_MM_ADAPTATION_STAADAPTATIONLANGUAGE = "edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage";
+	
+	private static final Logger logger = Logger.getLogger(StaAdaptationLanguageActivator.class);
+	
+	private static StaAdaptationLanguageActivator 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 StaAdaptationLanguageActivator 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_STAADAPTATIONLANGUAGE.equals(grammar)) {
+			return new edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguageRuntimeModule();
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getUiModule(String grammar) {
+		if (EDU_KIT_IPD_DESCARTES_MM_ADAPTATION_STAADAPTATIONLANGUAGE.equals(grammar)) {
+			return new edu.kit.ipd.descartes.mm.adaptation.ui.StaAdaptationLanguageUiModule(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/ui/StaAdaptationLanguageUiModule.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/StaAdaptationLanguageUiModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..0a2fabc98ab538c38af106e737d14a44815158c0
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/StaAdaptationLanguageUiModule.java
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class StaAdaptationLanguageUiModule extends edu.kit.ipd.descartes.mm.adaptation.ui.AbstractStaAdaptationLanguageUiModule {
+	public StaAdaptationLanguageUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/StaAdaptationLanguageProposalProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/StaAdaptationLanguageProposalProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..5386eb062b3bf704c44c1c76bf4be00e719b46e4
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/contentassist/StaAdaptationLanguageProposalProvider.java
@@ -0,0 +1,12 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.ui.contentassist;
+
+import edu.kit.ipd.descartes.mm.adaptation.ui.contentassist.AbstractStaAdaptationLanguageProposalProvider;
+/**
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#contentAssist on how to customize content assistant
+ */
+public class StaAdaptationLanguageProposalProvider extends AbstractStaAdaptationLanguageProposalProvider {
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/labeling/StaAdaptationLanguageDescriptionLabelProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/labeling/StaAdaptationLanguageDescriptionLabelProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..3161c31f6d4758a40799f01b841fc8f0f5c81711
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/labeling/StaAdaptationLanguageDescriptionLabelProvider.java
@@ -0,0 +1,27 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.ui.labeling;
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider;
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class StaAdaptationLanguageDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+
+/*
+	//Labels and icons can be computed like this:
+	
+	String text(IEObjectDescription ele) {
+	  return "my "+ele.getName();
+	}
+	 
+    String image(IEObjectDescription ele) {
+      return ele.getEClass().getName() + ".gif";
+    }	 
+*/
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/labeling/StaAdaptationLanguageLabelProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/labeling/StaAdaptationLanguageLabelProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..33b594c2a1581ed9f1031f085c2db8e8fb70a9f4
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/labeling/StaAdaptationLanguageLabelProvider.java
@@ -0,0 +1,34 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.ui.labeling;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider; 
+ 
+import com.google.inject.Inject;
+
+/**
+ * Provides labels for a EObjects.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class StaAdaptationLanguageLabelProvider extends DefaultEObjectLabelProvider {
+
+	@Inject
+	public StaAdaptationLanguageLabelProvider(AdapterFactoryLabelProvider delegate) {
+		super(delegate);
+	}
+
+/*
+	//Labels and icons can be computed like this:
+	
+	String text(MyModel ele) {
+	  return "my "+ele.getName();
+	}
+	 
+    String image(MyModel ele) {
+      return "MyModel.gif";
+    }
+*/
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/outline/StaAdaptationLanguageOutlineTreeProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/outline/StaAdaptationLanguageOutlineTreeProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..57aef45436051e21ead6d52e62c8843d3aa947cf
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/outline/StaAdaptationLanguageOutlineTreeProvider.java
@@ -0,0 +1,14 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * customization of the default outline structure
+ * 
+ */
+public class StaAdaptationLanguageOutlineTreeProvider extends DefaultOutlineTreeProvider {
+	
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/quickfix/StaAdaptationLanguageQuickfixProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/quickfix/StaAdaptationLanguageQuickfixProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..cf0eaaf01faed78aa384225f5ce688d64612ad34
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta.ui/src/edu/kit/ipd/descartes/mm/adaptation/ui/quickfix/StaAdaptationLanguageQuickfixProvider.java
@@ -0,0 +1,19 @@
+
+package edu.kit.ipd.descartes.mm.adaptation.ui.quickfix;
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+
+public class StaAdaptationLanguageQuickfixProvider extends DefaultQuickfixProvider {
+
+//	@Fix(MyJavaValidator.INVALID_NAME)
+//	public void capitalizeName(final Issue issue, IssueResolutionAcceptor acceptor) {
+//		acceptor.accept(issue, "Capitalize name", "Capitalize the name.", "upcase.png", new IModification() {
+//			public void apply(IModificationContext context) throws BadLocationException {
+//				IXtextDocument xtextDocument = context.getXtextDocument();
+//				String firstLetter = xtextDocument.get(issue.getOffset(), 1);
+//				xtextDocument.replace(issue.getOffset(), 1, firstLetter.toUpperCase());
+//			}
+//		});
+//	}
+
+}
diff --git a/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/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.mm.adaptation.sta/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..9708864c5af487022fe7f9a150b4aaef1cbee77d
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+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,
+ org.eclipse.xtext.util,
+ org.antlr.runtime
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: edu.kit.ipd.descartes.mm.adaptation,
+ edu.kit.ipd.descartes.mm.adaptation.services,
+ edu.kit.ipd.descartes.mm.adaptation.parseTreeConstruction,
+ edu.kit.ipd.descartes.mm.adaptation.parser.antlr,
+ edu.kit.ipd.descartes.mm.adaptation.parser.antlr.internal,
+ edu.kit.ipd.descartes.mm.adaptation.validation,
+ edu.kit.ipd.descartes.mm.adaptation.scoping,
+ edu.kit.ipd.descartes.mm.adaptation.formatting
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/AbstractStaAdaptationLanguageRuntimeModule.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/AbstractStaAdaptationLanguageRuntimeModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..80e20ecc8bde25aa03818ac747896c30c821d6b6
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/AbstractStaAdaptationLanguageRuntimeModule.java
@@ -0,0 +1,147 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation;
+
+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.StaAdaptationLanguageRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractStaAdaptationLanguageRuntimeModule extends DefaultRuntimeModule {
+
+	protected Properties properties = null;
+
+	@Override
+	public void configure(Binder binder) {
+		properties = tryBindProperties(binder, "edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.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.StaAdaptationLanguage");
+	}
+	
+	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 java.lang.ClassLoader bindClassLoaderToInstance() {
+		return getClass().getClassLoader();
+	}
+
+	// contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+	public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+		return edu.kit.ipd.descartes.mm.adaptation.services.StaAdaptationLanguageGrammarAccess.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parseTreeConstructor.ParseTreeConstructorFragment
+	public Class<? extends org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor> bindIParseTreeConstructor() {
+		return edu.kit.ipd.descartes.mm.adaptation.parseTreeConstruction.StaAdaptationLanguageParsetreeConstructor.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.parser.antlr.StaAdaptationLanguageParser.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.parser.antlr.StaAdaptationLanguageAntlrTokenFileProvider.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.parser.antlr.internal.InternalStaAdaptationLanguageLexer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public com.google.inject.Provider<edu.kit.ipd.descartes.mm.adaptation.parser.antlr.internal.InternalStaAdaptationLanguageLexer> provideInternalStaAdaptationLanguageLexer() {
+		return org.eclipse.xtext.parser.antlr.LexerProvider.create(edu.kit.ipd.descartes.mm.adaptation.parser.antlr.internal.InternalStaAdaptationLanguageLexer.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.parser.antlr.internal.InternalStaAdaptationLanguageLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+		return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.ecore2xtext.Ecore2XtextValueConverterServiceFragment
+	public Class<? extends org.eclipse.xtext.conversion.IValueConverterService> bindIValueConverterService() {
+		return org.eclipse.xtext.common.services.Ecore2XtextTerminalConverters.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.validation.JavaValidatorFragment
+	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends edu.kit.ipd.descartes.mm.adaptation.validation.StaAdaptationLanguageJavaValidator> bindStaAdaptationLanguageJavaValidator() {
+		return edu.kit.ipd.descartes.mm.adaptation.validation.StaAdaptationLanguageJavaValidator.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.scoping.StaAdaptationLanguageScopeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.SimpleLocalScopeProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+		return org.eclipse.xtext.scoping.impl.ImportUriGlobalScopeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+		binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+	}
+
+	// contributed by org.eclipse.xtext.generator.exporting.SimpleNamesFragment
+	public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+		return org.eclipse.xtext.naming.SimpleNameProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+	public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+		return edu.kit.ipd.descartes.mm.adaptation.formatting.StaAdaptationLanguageFormatter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() {
+		return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() {
+		return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptions(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+	}
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xmi b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xmi
new file mode 100644
index 0000000000000000000000000000000000000000..ce3c4001d94607aa3f16fa5673395d1369d2fc92
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xmi
@@ -0,0 +1,959 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext">
+  <xtext:Grammar name="edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage" usedGrammars="/1">
+    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">
+      <ePackage href="http://www.descartes-research.net/metamodel/adaptation/1.0#/"/>
+    </metamodelDeclarations>
+    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
+      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+    </metamodelDeclarations>
+    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="adaptationpoints">
+      <ePackage href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#/"/>
+    </metamodelDeclarations>
+    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="core">
+      <ePackage href="http://www.descartes-research.net/metamodel/core/0.1#/"/>
+    </metamodelDeclarations>
+    <rules xsi:type="xtext:ParserRule" name="StaRepository">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//StaRepository"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="StaRepository"/>
+        <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="name"/>
+        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="tactics"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Assignment" feature="tactics" operator="+=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="*">
+          <elements xsi:type="xtext:Keyword" value=","/>
+          <elements xsi:type="xtext:Assignment" feature="tactics" operator="+=">
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+        <elements xsi:type="xtext:Keyword" value="actions"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Assignment" feature="actions" operator="+=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="*">
+          <elements xsi:type="xtext:Keyword" value=","/>
+          <elements xsi:type="xtext:Assignment" feature="actions" operator="+=">
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+        <elements xsi:type="xtext:Keyword" value="strategies"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Assignment" feature="strategies" operator="+=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="*">
+          <elements xsi:type="xtext:Keyword" value=","/>
+          <elements xsi:type="xtext:Assignment" feature="strategies" operator="+=">
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="parameters"/>
+          <elements xsi:type="xtext:Keyword" value="{"/>
+          <elements xsi:type="xtext:Assignment" feature="parameters" operator="+=">
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>
+          </elements>
+          <elements xsi:type="xtext:Group" cardinality="*">
+            <elements xsi:type="xtext:Keyword" value=","/>
+            <elements xsi:type="xtext:Assignment" feature="parameters" operator="+=">
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>
+            </elements>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value="}"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="AdaptationPoint">
+      <type metamodel="/0/@metamodelDeclarations.2">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//AdaptationPoint"/>
+      </type>
+      <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.16"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="AbstractControlFlowElement">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+      </type>
+      <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="VariationType">
+      <type metamodel="/0/@metamodelDeclarations.2">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//VariationType"/>
+      </type>
+      <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>
+        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="EString">
+      <type metamodel="/0/@metamodelDeclarations.1">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </type>
+      <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>
+        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Tactic">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Tactic"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="Tactic"/>
+        <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="name"/>
+        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="inputParams"/>
+          <elements xsi:type="xtext:Keyword" value="("/>
+          <elements xsi:type="xtext:Assignment" feature="inputParams" operator="+=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Parameter"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+          <elements xsi:type="xtext:Group" cardinality="*">
+            <elements xsi:type="xtext:Keyword" value=","/>
+            <elements xsi:type="xtext:Assignment" feature="inputParams" operator="+=">
+              <terminal xsi:type="xtext:CrossReference">
+                <type metamodel="/0/@metamodelDeclarations.0">
+                  <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Parameter"/>
+                </type>
+                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+              </terminal>
+            </elements>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value=")"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="outputParam"/>
+          <elements xsi:type="xtext:Assignment" feature="outputParam" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Parameter"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="implementedPlan"/>
+        <elements xsi:type="xtext:Assignment" feature="implementedPlan" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Action">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Action"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="Action"/>
+        <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="name"/>
+        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="outputParam"/>
+          <elements xsi:type="xtext:Assignment" feature="outputParam" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Parameter"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="inputParams"/>
+          <elements xsi:type="xtext:Keyword" value="("/>
+          <elements xsi:type="xtext:Assignment" feature="inputParams" operator="+=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Parameter"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+          <elements xsi:type="xtext:Group" cardinality="*">
+            <elements xsi:type="xtext:Keyword" value=","/>
+            <elements xsi:type="xtext:Assignment" feature="inputParams" operator="+=">
+              <terminal xsi:type="xtext:CrossReference">
+                <type metamodel="/0/@metamodelDeclarations.0">
+                  <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Parameter"/>
+                </type>
+                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+              </terminal>
+            </elements>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value=")"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="referredAdaptationPoint"/>
+        <elements xsi:type="xtext:Assignment" feature="referredAdaptationPoint" operator="=">
+          <terminal xsi:type="xtext:CrossReference">
+            <type metamodel="/0/@metamodelDeclarations.2">
+              <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//AdaptationPoint"/>
+            </type>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+          </terminal>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Strategy">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Strategy"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="Strategy"/>
+        <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="name"/>
+        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="objective"/>
+        <elements xsi:type="xtext:Assignment" feature="objective" operator="=">
+          <terminal xsi:type="xtext:CrossReference">
+            <type metamodel="/0/@metamodelDeclarations.0">
+              <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Objective"/>
+            </type>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+          </terminal>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="triggeringEvents"/>
+          <elements xsi:type="xtext:Assignment" feature="triggeringEvents" operator="=">
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.24"/>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="tactics"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Assignment" feature="tactics" operator="+=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="*">
+          <elements xsi:type="xtext:Keyword" value=","/>
+          <elements xsi:type="xtext:Assignment" feature="tactics" operator="+=">
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+        <elements xsi:type="xtext:Keyword" value="weightingFunction"/>
+        <elements xsi:type="xtext:Assignment" feature="weightingFunction" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Parameter">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Parameter"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="Parameter"/>
+        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="type"/>
+        <elements xsi:type="xtext:Assignment" feature="type" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="AdaptationPlan">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AdaptationPlan"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="AdaptationPlan"/>
+        <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="name"/>
+        <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="steps"/>
+          <elements xsi:type="xtext:Keyword" value="{"/>
+          <elements xsi:type="xtext:Assignment" feature="steps" operator="+=">
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+          </elements>
+          <elements xsi:type="xtext:Group" cardinality="*">
+            <elements xsi:type="xtext:Keyword" value=","/>
+            <elements xsi:type="xtext:Assignment" feature="steps" operator="+=">
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+            </elements>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value="}"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Start">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Start"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Action">
+          <type metamodel="/0/@metamodelDeclarations.0">
+            <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Start"/>
+          </type>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="Start"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="predecessor"/>
+          <elements xsi:type="xtext:Assignment" feature="predecessor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="successor"/>
+          <elements xsi:type="xtext:Assignment" feature="successor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Stop">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Stop"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Action">
+          <type metamodel="/0/@metamodelDeclarations.0">
+            <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Stop"/>
+          </type>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="Stop"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="predecessor"/>
+          <elements xsi:type="xtext:Assignment" feature="predecessor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="successor"/>
+          <elements xsi:type="xtext:Assignment" feature="successor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Loop">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Loop"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="Loop"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="counter"/>
+        <elements xsi:type="xtext:Assignment" feature="counter" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.15"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="predecessor"/>
+          <elements xsi:type="xtext:Assignment" feature="predecessor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="successor"/>
+          <elements xsi:type="xtext:Assignment" feature="successor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="body"/>
+        <elements xsi:type="xtext:Assignment" feature="body" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Branch">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Branch"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="Branch"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="condition"/>
+          <elements xsi:type="xtext:Assignment" feature="condition" operator="=">
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="predecessor"/>
+          <elements xsi:type="xtext:Assignment" feature="predecessor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="successor"/>
+          <elements xsi:type="xtext:Assignment" feature="successor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="branches"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Assignment" feature="branches" operator="+=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="*">
+          <elements xsi:type="xtext:Keyword" value=","/>
+          <elements xsi:type="xtext:Assignment" feature="branches" operator="+=">
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="ActionReference">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//ActionReference"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="ActionReference"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="predecessor"/>
+          <elements xsi:type="xtext:Assignment" feature="predecessor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="successor"/>
+          <elements xsi:type="xtext:Assignment" feature="successor" operator="=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.0">
+                <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//AbstractControlFlowElement"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="refersTo"/>
+        <elements xsi:type="xtext:Assignment" feature="refersTo" operator="=">
+          <terminal xsi:type="xtext:CrossReference">
+            <type metamodel="/0/@metamodelDeclarations.0">
+              <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Action"/>
+            </type>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+          </terminal>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="EInt">
+      <type metamodel="/0/@metamodelDeclarations.1">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" cardinality="?" value="-"/>
+        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="ModelVariableConfigurationRange">
+      <type metamodel="/0/@metamodelDeclarations.2">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//ModelVariableConfigurationRange"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="ModelVariableConfigurationRange"/>
+        <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="minValue"/>
+        <elements xsi:type="xtext:Assignment" feature="minValue" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="maxValue"/>
+        <elements xsi:type="xtext:Assignment" feature="maxValue" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="adaptableEntity"/>
+        <elements xsi:type="xtext:Assignment" feature="adaptableEntity" operator="=">
+          <terminal xsi:type="xtext:CrossReference">
+            <type metamodel="/0/@metamodelDeclarations.3">
+              <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/core/0.1#//AdaptableEntity"/>
+            </type>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+          </terminal>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="ModelEntityConfigurationRange">
+      <type metamodel="/0/@metamodelDeclarations.2">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//ModelEntityConfigurationRange"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="ModelEntityConfigurationRange"/>
+        <elements xsi:type="xtext:Assignment" feature="id" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="entity"/>
+          <elements xsi:type="xtext:Keyword" value="("/>
+          <elements xsi:type="xtext:Assignment" feature="entity" operator="+=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.1">
+                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+          <elements xsi:type="xtext:Group" cardinality="*">
+            <elements xsi:type="xtext:Keyword" value=","/>
+            <elements xsi:type="xtext:Assignment" feature="entity" operator="+=">
+              <terminal xsi:type="xtext:CrossReference">
+                <type metamodel="/0/@metamodelDeclarations.1">
+                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+                </type>
+                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+              </terminal>
+            </elements>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value=")"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="variationPossibility"/>
+        <elements xsi:type="xtext:Assignment" feature="variationPossibility" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="EDouble">
+      <type metamodel="/0/@metamodelDeclarations.1">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" cardinality="?" value="-"/>
+        <elements xsi:type="xtext:RuleCall" cardinality="?" rule="/1/@rules.1"/>
+        <elements xsi:type="xtext:Keyword" value="."/>
+        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Alternatives">
+            <elements xsi:type="xtext:Keyword" value="E"/>
+            <elements xsi:type="xtext:Keyword" value="e"/>
+          </elements>
+          <elements xsi:type="xtext:Keyword" cardinality="?" value="-"/>
+          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>
+        </elements>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="EObject">
+      <type metamodel="/0/@metamodelDeclarations.1">
+        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Action">
+          <type metamodel="/0/@metamodelDeclarations.1">
+            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+          </type>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="EObject"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="PropertyRange">
+      <type metamodel="/0/@metamodelDeclarations.2">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//PropertyRange"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="PropertyRange"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="minValueConstraint"/>
+        <elements xsi:type="xtext:Assignment" feature="minValueConstraint" operator="=">
+          <terminal xsi:type="xtext:CrossReference">
+            <type metamodel="/0/@metamodelDeclarations.2">
+              <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//OclConstraint"/>
+            </type>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+          </terminal>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="maxValueConstraint"/>
+        <elements xsi:type="xtext:Assignment" feature="maxValueConstraint" operator="=">
+          <terminal xsi:type="xtext:CrossReference">
+            <type metamodel="/0/@metamodelDeclarations.2">
+              <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//OclConstraint"/>
+            </type>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+          </terminal>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="SetOfConfigurations">
+      <type metamodel="/0/@metamodelDeclarations.2">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//SetOfConfigurations"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="SetOfConfigurations"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="valueConstraint"/>
+        <elements xsi:type="xtext:Assignment" feature="valueConstraint" operator="=">
+          <terminal xsi:type="xtext:CrossReference">
+            <type metamodel="/0/@metamodelDeclarations.2">
+              <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//OclConstraint"/>
+            </type>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+          </terminal>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" value="variants"/>
+          <elements xsi:type="xtext:Keyword" value="("/>
+          <elements xsi:type="xtext:Assignment" feature="variants" operator="+=">
+            <terminal xsi:type="xtext:CrossReference">
+              <type metamodel="/0/@metamodelDeclarations.1">
+                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+              </type>
+              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+            </terminal>
+          </elements>
+          <elements xsi:type="xtext:Group" cardinality="*">
+            <elements xsi:type="xtext:Keyword" value=","/>
+            <elements xsi:type="xtext:Assignment" feature="variants" operator="+=">
+              <terminal xsi:type="xtext:CrossReference">
+                <type metamodel="/0/@metamodelDeclarations.1">
+                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+                </type>
+                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+              </terminal>
+            </elements>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value=")"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="OclConstraint">
+      <type metamodel="/0/@metamodelDeclarations.2">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptationpoints/0.1#//OclConstraint"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="OclConstraint"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="oclString"/>
+        <elements xsi:type="xtext:Assignment" feature="oclString" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Objective">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Objective"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="Objective"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="specification"/>
+        <elements xsi:type="xtext:Assignment" feature="specification" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="Event">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Event"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Action">
+          <type metamodel="/0/@metamodelDeclarations.0">
+            <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Event"/>
+          </type>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="Event"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="WeightedTactic">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//WeightedTactic"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="WeightedTactic"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="currentWeight"/>
+        <elements xsi:type="xtext:Assignment" feature="currentWeight" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="defaultWeight"/>
+        <elements xsi:type="xtext:Assignment" feature="defaultWeight" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="uses"/>
+        <elements xsi:type="xtext:Assignment" feature="uses" operator="=">
+          <terminal xsi:type="xtext:CrossReference">
+            <type metamodel="/0/@metamodelDeclarations.0">
+              <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//Tactic"/>
+            </type>
+            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+          </terminal>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:ParserRule" name="WeightingFunction">
+      <type metamodel="/0/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EClass" href="http://www.descartes-research.net/metamodel/adaptation/1.0#//WeightingFunction"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="WeightingFunction"/>
+        <elements xsi:type="xtext:Keyword" value="{"/>
+        <elements xsi:type="xtext:Keyword" value="function"/>
+        <elements xsi:type="xtext:Assignment" feature="function" operator="=">
+          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+        </elements>
+        <elements xsi:type="xtext:Keyword" value="}"/>
+      </alternatives>
+    </rules>
+  </xtext:Grammar>
+  <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4">
+    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
+      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+    </metamodelDeclarations>
+    <rules xsi:type="xtext:TerminalRule" name="ID">
+      <type metamodel="/1/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" cardinality="?" value="^"/>
+        <elements xsi:type="xtext:Alternatives">
+          <elements xsi:type="xtext:CharacterRange">
+            <left value="a"/>
+            <right value="z"/>
+          </elements>
+          <elements xsi:type="xtext:CharacterRange">
+            <left value="A"/>
+            <right value="Z"/>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value="_"/>
+        </elements>
+        <elements xsi:type="xtext:Alternatives" cardinality="*">
+          <elements xsi:type="xtext:CharacterRange">
+            <left value="a"/>
+            <right value="z"/>
+          </elements>
+          <elements xsi:type="xtext:CharacterRange">
+            <left value="A"/>
+            <right value="Z"/>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value="_"/>
+          <elements xsi:type="xtext:CharacterRange">
+            <left value="0"/>
+            <right value="9"/>
+          </elements>
+        </elements>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:TerminalRule" name="INT">
+      <type metamodel="/1/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+      </type>
+      <alternatives xsi:type="xtext:CharacterRange" cardinality="+">
+        <left value="0"/>
+        <right value="9"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:TerminalRule" name="STRING">
+      <type metamodel="/1/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </type>
+      <alternatives xsi:type="xtext:Alternatives">
+        <elements xsi:type="xtext:Group">
+          <elements xsi:type="xtext:Keyword" value="&quot;"/>
+          <elements xsi:type="xtext:Alternatives" cardinality="*">
+            <elements xsi:type="xtext:Group">
+              <elements xsi:type="xtext:Keyword" value="\"/>
+              <elements xsi:type="xtext:Alternatives">
+                <elements xsi:type="xtext:Keyword" value="b"/>
+                <elements xsi:type="xtext:Keyword" value="t"/>
+                <elements xsi:type="xtext:Keyword" value="n"/>
+                <elements xsi:type="xtext:Keyword" value="f"/>
+                <elements xsi:type="xtext:Keyword" value="r"/>
+                <elements xsi:type="xtext:Keyword" value="u"/>
+                <elements xsi:type="xtext:Keyword" value="&quot;"/>
+                <elements xsi:type="xtext:Keyword" value="'"/>
+                <elements xsi:type="xtext:Keyword" value="\"/>
+              </elements>
+            </elements>
+            <elements xsi:type="xtext:NegatedToken">
+              <terminal xsi:type="xtext:Alternatives">
+                <elements xsi:type="xtext:Keyword" value="\"/>
+                <elements xsi:type="xtext:Keyword" value="&quot;"/>
+              </terminal>
+            </elements>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value="&quot;"/>
+        </elements>
+        <elements xsi:type="xtext:Group">
+          <elements xsi:type="xtext:Keyword" value="'"/>
+          <elements xsi:type="xtext:Alternatives" cardinality="*">
+            <elements xsi:type="xtext:Group">
+              <elements xsi:type="xtext:Keyword" value="\"/>
+              <elements xsi:type="xtext:Alternatives">
+                <elements xsi:type="xtext:Keyword" value="b"/>
+                <elements xsi:type="xtext:Keyword" value="t"/>
+                <elements xsi:type="xtext:Keyword" value="n"/>
+                <elements xsi:type="xtext:Keyword" value="f"/>
+                <elements xsi:type="xtext:Keyword" value="r"/>
+                <elements xsi:type="xtext:Keyword" value="u"/>
+                <elements xsi:type="xtext:Keyword" value="&quot;"/>
+                <elements xsi:type="xtext:Keyword" value="'"/>
+                <elements xsi:type="xtext:Keyword" value="\"/>
+              </elements>
+            </elements>
+            <elements xsi:type="xtext:NegatedToken">
+              <terminal xsi:type="xtext:Alternatives">
+                <elements xsi:type="xtext:Keyword" value="\"/>
+                <elements xsi:type="xtext:Keyword" value="'"/>
+              </terminal>
+            </elements>
+          </elements>
+          <elements xsi:type="xtext:Keyword" value="'"/>
+        </elements>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">
+      <type metamodel="/1/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="/*"/>
+        <elements xsi:type="xtext:UntilToken">
+          <terminal xsi:type="xtext:Keyword" value="*/"/>
+        </elements>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">
+      <type metamodel="/1/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </type>
+      <alternatives xsi:type="xtext:Group">
+        <elements xsi:type="xtext:Keyword" value="//"/>
+        <elements xsi:type="xtext:NegatedToken" cardinality="*">
+          <terminal xsi:type="xtext:Alternatives">
+            <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+            <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+          </terminal>
+        </elements>
+        <elements xsi:type="xtext:Group" cardinality="?">
+          <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
+          <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+        </elements>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:TerminalRule" name="WS">
+      <type metamodel="/1/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </type>
+      <alternatives xsi:type="xtext:Alternatives" cardinality="+">
+        <elements xsi:type="xtext:Keyword" value=" "/>
+        <elements xsi:type="xtext:Keyword" value="&#x9;"/>
+        <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+        <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+      </alternatives>
+    </rules>
+    <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">
+      <type metamodel="/1/@metamodelDeclarations.0">
+        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </type>
+      <alternatives xsi:type="xtext:Wildcard"/>
+    </rules>
+  </xtext:Grammar>
+</xmi:XMI>
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguageStandaloneSetupGenerated.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguageStandaloneSetupGenerated.java
new file mode 100644
index 0000000000000000000000000000000000000000..fdd97d5faac65cc4570fd623c6e5ce0df247e2e6
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguageStandaloneSetupGenerated.java
@@ -0,0 +1,40 @@
+
+package edu.kit.ipd.descartes.mm.adaptation;
+
+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 StaAdaptationLanguageStandaloneSetupGenerated 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.StaAdaptationLanguageRuntimeModule());
+	}
+	
+	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/parseTreeConstruction/StaAdaptationLanguageParsetreeConstructor.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parseTreeConstruction/StaAdaptationLanguageParsetreeConstructor.java
new file mode 100644
index 0000000000000000000000000000000000000000..3f4a52071959c245497f8eb2408ce9ff6ed826ee
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parseTreeConstruction/StaAdaptationLanguageParsetreeConstructor.java
@@ -0,0 +1,8091 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.parseTreeConstruction;
+
+import org.eclipse.emf.ecore.*;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parsetree.reconstr.IEObjectConsumer;
+import org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor;
+
+import edu.kit.ipd.descartes.mm.adaptation.services.StaAdaptationLanguageGrammarAccess;
+
+import com.google.inject.Inject;
+
+@SuppressWarnings("all")
+public class StaAdaptationLanguageParsetreeConstructor extends AbstractParseTreeConstructor {
+		
+	@Inject
+	private StaAdaptationLanguageGrammarAccess grammarAccess;
+	
+	@Override
+	protected AbstractToken getRootToken(IEObjectConsumer inst) {
+		return new ThisRootNode(inst);	
+	}
+	
+protected class ThisRootNode extends RootToken {
+	public ThisRootNode(IEObjectConsumer inst) {
+		super(inst);
+	}
+	
+	@Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group(this, this, 0, inst);
+			case 1: return new AdaptationPoint_Alternatives(this, this, 1, inst);
+			case 2: return new AbstractControlFlowElement_Alternatives(this, this, 2, inst);
+			case 3: return new VariationType_Alternatives(this, this, 3, inst);
+			case 4: return new Tactic_Group(this, this, 4, inst);
+			case 5: return new Action_Group(this, this, 5, inst);
+			case 6: return new Strategy_Group(this, this, 6, inst);
+			case 7: return new Parameter_Group(this, this, 7, inst);
+			case 8: return new AdaptationPlan_Group(this, this, 8, inst);
+			case 9: return new Start_Group(this, this, 9, inst);
+			case 10: return new Stop_Group(this, this, 10, inst);
+			case 11: return new Loop_Group(this, this, 11, inst);
+			case 12: return new Branch_Group(this, this, 12, inst);
+			case 13: return new ActionReference_Group(this, this, 13, inst);
+			case 14: return new ModelVariableConfigurationRange_Group(this, this, 14, inst);
+			case 15: return new ModelEntityConfigurationRange_Group(this, this, 15, inst);
+			case 16: return new EObject_Group(this, this, 16, inst);
+			case 17: return new PropertyRange_Group(this, this, 17, inst);
+			case 18: return new SetOfConfigurations_Group(this, this, 18, inst);
+			case 19: return new OclConstraint_Group(this, this, 19, inst);
+			case 20: return new Objective_Group(this, this, 20, inst);
+			case 21: return new Event_Group(this, this, 21, inst);
+			case 22: return new WeightedTactic_Group(this, this, 22, inst);
+			case 23: return new WeightingFunction_Group(this, this, 23, inst);
+			default: return null;
+		}	
+	}	
+}
+	
+
+/************ begin Rule StaRepository ****************
+ *
+ * StaRepository:
+ * 	"StaRepository" id=EString "{" "name" name=EString "tactics" "{" tactics+=Tactic ("," tactics+=Tactic)* "}" "actions"
+ * 	"{" actions+=Action ("," actions+=Action)* "}" "strategies" "{" strategies+=Strategy ("," strategies+=Strategy)* "}"
+ * 	("parameters" "{" parameters+=Parameter ("," parameters+=Parameter)* "}")? "}";
+ *
+ **/
+
+// "StaRepository" id=EString "{" "name" name=EString "tactics" "{" tactics+=Tactic ("," tactics+=Tactic)* "}" "actions"
+// "{" actions+=Action ("," actions+=Action)* "}" "strategies" "{" strategies+=Strategy ("," strategies+=Strategy)* "}"
+// ("parameters" "{" parameters+=Parameter ("," parameters+=Parameter)* "}")? "}"
+protected class StaRepository_Group extends GroupToken {
+	
+	public StaRepository_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_RightCurlyBracketKeyword_21(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getStaRepositoryRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "StaRepository"
+protected class StaRepository_StaRepositoryKeyword_0 extends KeywordToken  {
+	
+	public StaRepository_StaRepositoryKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getStaRepositoryKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// id=EString
+protected class StaRepository_IdAssignment_1 extends AssignmentToken  {
+	
+	public StaRepository_IdAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getIdAssignment_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_StaRepositoryKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStaRepositoryAccess().getIdEStringParserRuleCall_1_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getStaRepositoryAccess().getIdEStringParserRuleCall_1_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "{"
+protected class StaRepository_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public StaRepository_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_IdAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "name"
+protected class StaRepository_NameKeyword_3 extends KeywordToken  {
+	
+	public StaRepository_NameKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getNameKeyword_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// name=EString
+protected class StaRepository_NameAssignment_4 extends AssignmentToken  {
+	
+	public StaRepository_NameAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getNameAssignment_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_NameKeyword_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStaRepositoryAccess().getNameEStringParserRuleCall_4_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getStaRepositoryAccess().getNameEStringParserRuleCall_4_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "tactics"
+protected class StaRepository_TacticsKeyword_5 extends KeywordToken  {
+	
+	public StaRepository_TacticsKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getTacticsKeyword_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_NameAssignment_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "{"
+protected class StaRepository_LeftCurlyBracketKeyword_6 extends KeywordToken  {
+	
+	public StaRepository_LeftCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_TacticsKeyword_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// tactics+=Tactic
+protected class StaRepository_TacticsAssignment_7 extends AssignmentToken  {
+	
+	public StaRepository_TacticsAssignment_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getTacticsAssignment_7();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("tactics",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tactics");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getTacticRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_7_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new StaRepository_LeftCurlyBracketKeyword_6(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// ("," tactics+=Tactic)*
+protected class StaRepository_Group_8 extends GroupToken {
+	
+	public StaRepository_Group_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getGroup_8();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_TacticsAssignment_8_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class StaRepository_CommaKeyword_8_0 extends KeywordToken  {
+	
+	public StaRepository_CommaKeyword_8_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getCommaKeyword_8_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group_8(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new StaRepository_TacticsAssignment_7(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// tactics+=Tactic
+protected class StaRepository_TacticsAssignment_8_1 extends AssignmentToken  {
+	
+	public StaRepository_TacticsAssignment_8_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getTacticsAssignment_8_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("tactics",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tactics");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getTacticRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_8_1_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new StaRepository_CommaKeyword_8_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+
+// "}"
+protected class StaRepository_RightCurlyBracketKeyword_9 extends KeywordToken  {
+	
+	public StaRepository_RightCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_9();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group_8(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new StaRepository_TacticsAssignment_7(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "actions"
+protected class StaRepository_ActionsKeyword_10 extends KeywordToken  {
+	
+	public StaRepository_ActionsKeyword_10(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getActionsKeyword_10();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "{"
+protected class StaRepository_LeftCurlyBracketKeyword_11 extends KeywordToken  {
+	
+	public StaRepository_LeftCurlyBracketKeyword_11(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_11();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_ActionsKeyword_10(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// actions+=Action
+protected class StaRepository_ActionsAssignment_12 extends AssignmentToken  {
+	
+	public StaRepository_ActionsAssignment_12(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getActionsAssignment_12();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("actions",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("actions");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getActionRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_12_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new StaRepository_LeftCurlyBracketKeyword_11(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// ("," actions+=Action)*
+protected class StaRepository_Group_13 extends GroupToken {
+	
+	public StaRepository_Group_13(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getGroup_13();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_ActionsAssignment_13_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class StaRepository_CommaKeyword_13_0 extends KeywordToken  {
+	
+	public StaRepository_CommaKeyword_13_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getCommaKeyword_13_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group_13(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new StaRepository_ActionsAssignment_12(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// actions+=Action
+protected class StaRepository_ActionsAssignment_13_1 extends AssignmentToken  {
+	
+	public StaRepository_ActionsAssignment_13_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getActionsAssignment_13_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("actions",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("actions");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getActionRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_13_1_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new StaRepository_CommaKeyword_13_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+
+// "}"
+protected class StaRepository_RightCurlyBracketKeyword_14 extends KeywordToken  {
+	
+	public StaRepository_RightCurlyBracketKeyword_14(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_14();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group_13(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new StaRepository_ActionsAssignment_12(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "strategies"
+protected class StaRepository_StrategiesKeyword_15 extends KeywordToken  {
+	
+	public StaRepository_StrategiesKeyword_15(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getStrategiesKeyword_15();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_RightCurlyBracketKeyword_14(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "{"
+protected class StaRepository_LeftCurlyBracketKeyword_16 extends KeywordToken  {
+	
+	public StaRepository_LeftCurlyBracketKeyword_16(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_16();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_StrategiesKeyword_15(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// strategies+=Strategy
+protected class StaRepository_StrategiesAssignment_17 extends AssignmentToken  {
+	
+	public StaRepository_StrategiesAssignment_17(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_17();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("strategies",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("strategies");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getStrategyRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_17_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new StaRepository_LeftCurlyBracketKeyword_16(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// ("," strategies+=Strategy)*
+protected class StaRepository_Group_18 extends GroupToken {
+	
+	public StaRepository_Group_18(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getGroup_18();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_StrategiesAssignment_18_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class StaRepository_CommaKeyword_18_0 extends KeywordToken  {
+	
+	public StaRepository_CommaKeyword_18_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getCommaKeyword_18_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group_18(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new StaRepository_StrategiesAssignment_17(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// strategies+=Strategy
+protected class StaRepository_StrategiesAssignment_18_1 extends AssignmentToken  {
+	
+	public StaRepository_StrategiesAssignment_18_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getStrategiesAssignment_18_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("strategies",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("strategies");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getStrategyRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_18_1_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new StaRepository_CommaKeyword_18_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+
+// "}"
+protected class StaRepository_RightCurlyBracketKeyword_19 extends KeywordToken  {
+	
+	public StaRepository_RightCurlyBracketKeyword_19(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_19();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group_18(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new StaRepository_StrategiesAssignment_17(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ("parameters" "{" parameters+=Parameter ("," parameters+=Parameter)* "}")?
+protected class StaRepository_Group_20 extends GroupToken {
+	
+	public StaRepository_Group_20(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getGroup_20();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_RightCurlyBracketKeyword_20_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "parameters"
+protected class StaRepository_ParametersKeyword_20_0 extends KeywordToken  {
+	
+	public StaRepository_ParametersKeyword_20_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getParametersKeyword_20_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_RightCurlyBracketKeyword_19(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "{"
+protected class StaRepository_LeftCurlyBracketKeyword_20_1 extends KeywordToken  {
+	
+	public StaRepository_LeftCurlyBracketKeyword_20_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_20_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_ParametersKeyword_20_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// parameters+=Parameter
+protected class StaRepository_ParametersAssignment_20_2 extends AssignmentToken  {
+	
+	public StaRepository_ParametersAssignment_20_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Parameter_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("parameters",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parameters");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getParameterRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_2_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new StaRepository_LeftCurlyBracketKeyword_20_1(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// ("," parameters+=Parameter)*
+protected class StaRepository_Group_20_3 extends GroupToken {
+	
+	public StaRepository_Group_20_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getGroup_20_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_ParametersAssignment_20_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class StaRepository_CommaKeyword_20_3_0 extends KeywordToken  {
+	
+	public StaRepository_CommaKeyword_20_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getCommaKeyword_20_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group_20_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new StaRepository_ParametersAssignment_20_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// parameters+=Parameter
+protected class StaRepository_ParametersAssignment_20_3_1 extends AssignmentToken  {
+	
+	public StaRepository_ParametersAssignment_20_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getParametersAssignment_20_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Parameter_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("parameters",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("parameters");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getParameterRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_3_1_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new StaRepository_CommaKeyword_20_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+
+// "}"
+protected class StaRepository_RightCurlyBracketKeyword_20_4 extends KeywordToken  {
+	
+	public StaRepository_RightCurlyBracketKeyword_20_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_20_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group_20_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new StaRepository_ParametersAssignment_20_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+// "}"
+protected class StaRepository_RightCurlyBracketKeyword_21 extends KeywordToken  {
+	
+	public StaRepository_RightCurlyBracketKeyword_21(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_21();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new StaRepository_Group_20(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new StaRepository_RightCurlyBracketKeyword_19(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule StaRepository ****************/
+
+
+/************ begin Rule AdaptationPoint ****************
+ *
+ * AdaptationPoint returns adaptationpoints::AdaptationPoint:
+ * 	ModelVariableConfigurationRange | ModelEntityConfigurationRange;
+ *
+ **/
+
+// ModelVariableConfigurationRange | ModelEntityConfigurationRange
+protected class AdaptationPoint_Alternatives extends AlternativesToken {
+
+	public AdaptationPoint_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Alternatives getGrammarElement() {
+		return grammarAccess.getAdaptationPointAccess().getAlternatives();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPoint_ModelVariableConfigurationRangeParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new AdaptationPoint_ModelEntityConfigurationRangeParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getModelEntityConfigurationRangeRule().getType().getClassifier() && 
+		   getEObject().eClass() != grammarAccess.getModelVariableConfigurationRangeRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// ModelVariableConfigurationRange
+protected class AdaptationPoint_ModelVariableConfigurationRangeParserRuleCall_0 extends RuleCallToken {
+	
+	public AdaptationPoint_ModelVariableConfigurationRangeParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public RuleCall getGrammarElement() {
+		return grammarAccess.getAdaptationPointAccess().getModelVariableConfigurationRangeParserRuleCall_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getModelVariableConfigurationRangeRule().getType().getClassifier())
+			return null;
+		if(checkForRecursion(ModelVariableConfigurationRange_Group.class, eObjectConsumer)) return null;
+		return eObjectConsumer;
+	}
+	
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+		}	
+	}	
+}
+
+// ModelEntityConfigurationRange
+protected class AdaptationPoint_ModelEntityConfigurationRangeParserRuleCall_1 extends RuleCallToken {
+	
+	public AdaptationPoint_ModelEntityConfigurationRangeParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public RuleCall getGrammarElement() {
+		return grammarAccess.getAdaptationPointAccess().getModelEntityConfigurationRangeParserRuleCall_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getModelEntityConfigurationRangeRule().getType().getClassifier())
+			return null;
+		if(checkForRecursion(ModelEntityConfigurationRange_Group.class, eObjectConsumer)) return null;
+		return eObjectConsumer;
+	}
+	
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+		}	
+	}	
+}
+
+
+/************ end Rule AdaptationPoint ****************/
+
+
+/************ begin Rule AbstractControlFlowElement ****************
+ *
+ * AbstractControlFlowElement:
+ * 	Start | Stop | Loop | Branch | ActionReference;
+ *
+ **/
+
+// Start | Stop | Loop | Branch | ActionReference
+protected class AbstractControlFlowElement_Alternatives extends AlternativesToken {
+
+	public AbstractControlFlowElement_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Alternatives getGrammarElement() {
+		return grammarAccess.getAbstractControlFlowElementAccess().getAlternatives();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AbstractControlFlowElement_StartParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new AbstractControlFlowElement_StopParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+			case 2: return new AbstractControlFlowElement_LoopParserRuleCall_2(lastRuleCallOrigin, this, 2, inst);
+			case 3: return new AbstractControlFlowElement_BranchParserRuleCall_3(lastRuleCallOrigin, this, 3, inst);
+			case 4: return new AbstractControlFlowElement_ActionReferenceParserRuleCall_4(lastRuleCallOrigin, this, 4, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getActionReferenceRule().getType().getClassifier() && 
+		   getEObject().eClass() != grammarAccess.getBranchRule().getType().getClassifier() && 
+		   getEObject().eClass() != grammarAccess.getLoopRule().getType().getClassifier() && 
+		   getEObject().eClass() != grammarAccess.getStartAccess().getStartAction_0().getType().getClassifier() && 
+		   getEObject().eClass() != grammarAccess.getStopAccess().getStopAction_0().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// Start
+protected class AbstractControlFlowElement_StartParserRuleCall_0 extends RuleCallToken {
+	
+	public AbstractControlFlowElement_StartParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public RuleCall getGrammarElement() {
+		return grammarAccess.getAbstractControlFlowElementAccess().getStartParserRuleCall_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getStartAccess().getStartAction_0().getType().getClassifier())
+			return null;
+		if(checkForRecursion(Start_Group.class, eObjectConsumer)) return null;
+		return eObjectConsumer;
+	}
+	
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+		}	
+	}	
+}
+
+// Stop
+protected class AbstractControlFlowElement_StopParserRuleCall_1 extends RuleCallToken {
+	
+	public AbstractControlFlowElement_StopParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public RuleCall getGrammarElement() {
+		return grammarAccess.getAbstractControlFlowElementAccess().getStopParserRuleCall_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getStopAccess().getStopAction_0().getType().getClassifier())
+			return null;
+		if(checkForRecursion(Stop_Group.class, eObjectConsumer)) return null;
+		return eObjectConsumer;
+	}
+	
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+		}	
+	}	
+}
+
+// Loop
+protected class AbstractControlFlowElement_LoopParserRuleCall_2 extends RuleCallToken {
+	
+	public AbstractControlFlowElement_LoopParserRuleCall_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public RuleCall getGrammarElement() {
+		return grammarAccess.getAbstractControlFlowElementAccess().getLoopParserRuleCall_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getLoopRule().getType().getClassifier())
+			return null;
+		if(checkForRecursion(Loop_Group.class, eObjectConsumer)) return null;
+		return eObjectConsumer;
+	}
+	
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+		}	
+	}	
+}
+
+// Branch
+protected class AbstractControlFlowElement_BranchParserRuleCall_3 extends RuleCallToken {
+	
+	public AbstractControlFlowElement_BranchParserRuleCall_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public RuleCall getGrammarElement() {
+		return grammarAccess.getAbstractControlFlowElementAccess().getBranchParserRuleCall_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getBranchRule().getType().getClassifier())
+			return null;
+		if(checkForRecursion(Branch_Group.class, eObjectConsumer)) return null;
+		return eObjectConsumer;
+	}
+	
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+		}	
+	}	
+}
+
+// ActionReference
+protected class AbstractControlFlowElement_ActionReferenceParserRuleCall_4 extends RuleCallToken {
+	
+	public AbstractControlFlowElement_ActionReferenceParserRuleCall_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public RuleCall getGrammarElement() {
+		return grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getActionReferenceRule().getType().getClassifier())
+			return null;
+		if(checkForRecursion(ActionReference_Group.class, eObjectConsumer)) return null;
+		return eObjectConsumer;
+	}
+	
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+		}	
+	}	
+}
+
+
+/************ end Rule AbstractControlFlowElement ****************/
+
+
+/************ begin Rule VariationType ****************
+ *
+ * VariationType returns adaptationpoints::VariationType:
+ * 	PropertyRange | SetOfConfigurations;
+ *
+ **/
+
+// PropertyRange | SetOfConfigurations
+protected class VariationType_Alternatives extends AlternativesToken {
+
+	public VariationType_Alternatives(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Alternatives getGrammarElement() {
+		return grammarAccess.getVariationTypeAccess().getAlternatives();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new VariationType_PropertyRangeParserRuleCall_0(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new VariationType_SetOfConfigurationsParserRuleCall_1(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getPropertyRangeRule().getType().getClassifier() && 
+		   getEObject().eClass() != grammarAccess.getSetOfConfigurationsRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// PropertyRange
+protected class VariationType_PropertyRangeParserRuleCall_0 extends RuleCallToken {
+	
+	public VariationType_PropertyRangeParserRuleCall_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public RuleCall getGrammarElement() {
+		return grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new PropertyRange_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getPropertyRangeRule().getType().getClassifier())
+			return null;
+		if(checkForRecursion(PropertyRange_Group.class, eObjectConsumer)) return null;
+		return eObjectConsumer;
+	}
+	
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+		}	
+	}	
+}
+
+// SetOfConfigurations
+protected class VariationType_SetOfConfigurationsParserRuleCall_1 extends RuleCallToken {
+	
+	public VariationType_SetOfConfigurationsParserRuleCall_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public RuleCall getGrammarElement() {
+		return grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getSetOfConfigurationsRule().getType().getClassifier())
+			return null;
+		if(checkForRecursion(SetOfConfigurations_Group.class, eObjectConsumer)) return null;
+		return eObjectConsumer;
+	}
+	
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(next, actIndex , index, inst);
+		}	
+	}	
+}
+
+
+/************ end Rule VariationType ****************/
+
+
+
+/************ begin Rule Tactic ****************
+ *
+ * Tactic:
+ * 	"Tactic" id=EString "{" "name" name=EString ("inputParams" "(" inputParams+=[Parameter|EString] (","
+ * 	inputParams+=[Parameter|EString])* ")")? ("outputParam" outputParam=[Parameter|EString])? "implementedPlan"
+ * 	implementedPlan=AdaptationPlan "}";
+ *
+ **/
+
+// "Tactic" id=EString "{" "name" name=EString ("inputParams" "(" inputParams+=[Parameter|EString] (","
+// inputParams+=[Parameter|EString])* ")")? ("outputParam" outputParam=[Parameter|EString])? "implementedPlan"
+// implementedPlan=AdaptationPlan "}"
+protected class Tactic_Group extends GroupToken {
+	
+	public Tactic_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getTacticAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getTacticRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "Tactic"
+protected class Tactic_TacticKeyword_0 extends KeywordToken  {
+	
+	public Tactic_TacticKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getTacticKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// id=EString
+protected class Tactic_IdAssignment_1 extends AssignmentToken  {
+	
+	public Tactic_IdAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getTacticAccess().getIdAssignment_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_TacticKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getTacticAccess().getIdEStringParserRuleCall_1_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getTacticAccess().getIdEStringParserRuleCall_1_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "{"
+protected class Tactic_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public Tactic_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_IdAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "name"
+protected class Tactic_NameKeyword_3 extends KeywordToken  {
+	
+	public Tactic_NameKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getNameKeyword_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// name=EString
+protected class Tactic_NameAssignment_4 extends AssignmentToken  {
+	
+	public Tactic_NameAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getTacticAccess().getNameAssignment_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_NameKeyword_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getTacticAccess().getNameEStringParserRuleCall_4_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getTacticAccess().getNameEStringParserRuleCall_4_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// ("inputParams" "(" inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")?
+protected class Tactic_Group_5 extends GroupToken {
+	
+	public Tactic_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getTacticAccess().getGroup_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_RightParenthesisKeyword_5_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "inputParams"
+protected class Tactic_InputParamsKeyword_5_0 extends KeywordToken  {
+	
+	public Tactic_InputParamsKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getInputParamsKeyword_5_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_NameAssignment_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "("
+protected class Tactic_LeftParenthesisKeyword_5_1 extends KeywordToken  {
+	
+	public Tactic_LeftParenthesisKeyword_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getLeftParenthesisKeyword_5_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_InputParamsKeyword_5_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// inputParams+=[Parameter|EString]
+protected class Tactic_InputParamsAssignment_5_2 extends AssignmentToken  {
+	
+	public Tactic_InputParamsAssignment_5_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getTacticAccess().getInputParamsAssignment_5_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_LeftParenthesisKeyword_5_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("inputParams",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("inputParams");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_2_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_2_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// ("," inputParams+=[Parameter|EString])*
+protected class Tactic_Group_5_3 extends GroupToken {
+	
+	public Tactic_Group_5_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getTacticAccess().getGroup_5_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_InputParamsAssignment_5_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class Tactic_CommaKeyword_5_3_0 extends KeywordToken  {
+	
+	public Tactic_CommaKeyword_5_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getCommaKeyword_5_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_Group_5_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Tactic_InputParamsAssignment_5_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// inputParams+=[Parameter|EString]
+protected class Tactic_InputParamsAssignment_5_3_1 extends AssignmentToken  {
+	
+	public Tactic_InputParamsAssignment_5_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getTacticAccess().getInputParamsAssignment_5_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_CommaKeyword_5_3_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("inputParams",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("inputParams");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_3_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_3_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ")"
+protected class Tactic_RightParenthesisKeyword_5_4 extends KeywordToken  {
+	
+	public Tactic_RightParenthesisKeyword_5_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getRightParenthesisKeyword_5_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_Group_5_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Tactic_InputParamsAssignment_5_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+// ("outputParam" outputParam=[Parameter|EString])?
+protected class Tactic_Group_6 extends GroupToken {
+	
+	public Tactic_Group_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getTacticAccess().getGroup_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_OutputParamAssignment_6_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "outputParam"
+protected class Tactic_OutputParamKeyword_6_0 extends KeywordToken  {
+	
+	public Tactic_OutputParamKeyword_6_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getOutputParamKeyword_6_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_Group_5(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Tactic_NameAssignment_4(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// outputParam=[Parameter|EString]
+protected class Tactic_OutputParamAssignment_6_1 extends AssignmentToken  {
+	
+	public Tactic_OutputParamAssignment_6_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getTacticAccess().getOutputParamAssignment_6_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_OutputParamKeyword_6_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("outputParam",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("outputParam");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_6_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_6_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// "implementedPlan"
+protected class Tactic_ImplementedPlanKeyword_7 extends KeywordToken  {
+	
+	public Tactic_ImplementedPlanKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getImplementedPlanKeyword_7();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_Group_6(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Tactic_Group_5(lastRuleCallOrigin, this, 1, inst);
+			case 2: return new Tactic_NameAssignment_4(lastRuleCallOrigin, this, 2, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// implementedPlan=AdaptationPlan
+protected class Tactic_ImplementedPlanAssignment_8 extends AssignmentToken  {
+	
+	public Tactic_ImplementedPlanAssignment_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getTacticAccess().getImplementedPlanAssignment_8();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("implementedPlan",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("implementedPlan");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getAdaptationPlanRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_8_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new Tactic_ImplementedPlanKeyword_7(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// "}"
+protected class Tactic_RightCurlyBracketKeyword_9 extends KeywordToken  {
+	
+	public Tactic_RightCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_9();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Tactic_ImplementedPlanAssignment_8(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Tactic ****************/
+
+
+/************ begin Rule Action ****************
+ *
+ * Action:
+ * 	"Action" id=EString "{" "name" name=EString ("outputParam" outputParam=[Parameter|EString])? ("inputParams" "("
+ * 	inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")? "referredAdaptationPoint"
+ * 	referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString] "}";
+ *
+ **/
+
+// "Action" id=EString "{" "name" name=EString ("outputParam" outputParam=[Parameter|EString])? ("inputParams" "("
+// inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")? "referredAdaptationPoint"
+// referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString] "}"
+protected class Action_Group extends GroupToken {
+	
+	public Action_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getActionAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getActionRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "Action"
+protected class Action_ActionKeyword_0 extends KeywordToken  {
+	
+	public Action_ActionKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getActionKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// id=EString
+protected class Action_IdAssignment_1 extends AssignmentToken  {
+	
+	public Action_IdAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getActionAccess().getIdAssignment_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_ActionKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getActionAccess().getIdEStringParserRuleCall_1_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getActionAccess().getIdEStringParserRuleCall_1_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "{"
+protected class Action_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public Action_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_IdAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "name"
+protected class Action_NameKeyword_3 extends KeywordToken  {
+	
+	public Action_NameKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getNameKeyword_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// name=EString
+protected class Action_NameAssignment_4 extends AssignmentToken  {
+	
+	public Action_NameAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getActionAccess().getNameAssignment_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_NameKeyword_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getActionAccess().getNameEStringParserRuleCall_4_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getActionAccess().getNameEStringParserRuleCall_4_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// ("outputParam" outputParam=[Parameter|EString])?
+protected class Action_Group_5 extends GroupToken {
+	
+	public Action_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getActionAccess().getGroup_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_OutputParamAssignment_5_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "outputParam"
+protected class Action_OutputParamKeyword_5_0 extends KeywordToken  {
+	
+	public Action_OutputParamKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getOutputParamKeyword_5_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_NameAssignment_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// outputParam=[Parameter|EString]
+protected class Action_OutputParamAssignment_5_1 extends AssignmentToken  {
+	
+	public Action_OutputParamAssignment_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getActionAccess().getOutputParamAssignment_5_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_OutputParamKeyword_5_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("outputParam",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("outputParam");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_5_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getActionAccess().getOutputParamParameterCrossReference_5_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ("inputParams" "(" inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")?
+protected class Action_Group_6 extends GroupToken {
+	
+	public Action_Group_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getActionAccess().getGroup_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_RightParenthesisKeyword_6_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "inputParams"
+protected class Action_InputParamsKeyword_6_0 extends KeywordToken  {
+	
+	public Action_InputParamsKeyword_6_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getInputParamsKeyword_6_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_Group_5(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Action_NameAssignment_4(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "("
+protected class Action_LeftParenthesisKeyword_6_1 extends KeywordToken  {
+	
+	public Action_LeftParenthesisKeyword_6_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getLeftParenthesisKeyword_6_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_InputParamsKeyword_6_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// inputParams+=[Parameter|EString]
+protected class Action_InputParamsAssignment_6_2 extends AssignmentToken  {
+	
+	public Action_InputParamsAssignment_6_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getActionAccess().getInputParamsAssignment_6_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_LeftParenthesisKeyword_6_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("inputParams",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("inputParams");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_2_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_2_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// ("," inputParams+=[Parameter|EString])*
+protected class Action_Group_6_3 extends GroupToken {
+	
+	public Action_Group_6_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getActionAccess().getGroup_6_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_InputParamsAssignment_6_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class Action_CommaKeyword_6_3_0 extends KeywordToken  {
+	
+	public Action_CommaKeyword_6_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getCommaKeyword_6_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_Group_6_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Action_InputParamsAssignment_6_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// inputParams+=[Parameter|EString]
+protected class Action_InputParamsAssignment_6_3_1 extends AssignmentToken  {
+	
+	public Action_InputParamsAssignment_6_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getActionAccess().getInputParamsAssignment_6_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_CommaKeyword_6_3_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("inputParams",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("inputParams");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_3_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_3_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ")"
+protected class Action_RightParenthesisKeyword_6_4 extends KeywordToken  {
+	
+	public Action_RightParenthesisKeyword_6_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getRightParenthesisKeyword_6_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_Group_6_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Action_InputParamsAssignment_6_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+// "referredAdaptationPoint"
+protected class Action_ReferredAdaptationPointKeyword_7 extends KeywordToken  {
+	
+	public Action_ReferredAdaptationPointKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_Group_6(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Action_Group_5(lastRuleCallOrigin, this, 1, inst);
+			case 2: return new Action_NameAssignment_4(lastRuleCallOrigin, this, 2, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString]
+protected class Action_ReferredAdaptationPointAssignment_8 extends AssignmentToken  {
+	
+	public Action_ReferredAdaptationPointAssignment_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getActionAccess().getReferredAdaptationPointAssignment_8();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_ReferredAdaptationPointKeyword_7(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("referredAdaptationPoint",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("referredAdaptationPoint");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_8_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_8_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// "}"
+protected class Action_RightCurlyBracketKeyword_9 extends KeywordToken  {
+	
+	public Action_RightCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionAccess().getRightCurlyBracketKeyword_9();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Action_ReferredAdaptationPointAssignment_8(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Action ****************/
+
+
+/************ begin Rule Strategy ****************
+ *
+ * Strategy:
+ * 	"Strategy" id=EString "{" "name" name=EString "objective" objective=[Objective|EString] ("triggeringEvents"
+ * 	triggeringEvents=Event)? "tactics" "{" tactics+=WeightedTactic ("," tactics+=WeightedTactic)* "}" "weightingFunction"
+ * 	weightingFunction=WeightingFunction "}";
+ *
+ **/
+
+// "Strategy" id=EString "{" "name" name=EString "objective" objective=[Objective|EString] ("triggeringEvents"
+// triggeringEvents=Event)? "tactics" "{" tactics+=WeightedTactic ("," tactics+=WeightedTactic)* "}" "weightingFunction"
+// weightingFunction=WeightingFunction "}"
+protected class Strategy_Group extends GroupToken {
+	
+	public Strategy_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_RightCurlyBracketKeyword_15(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getStrategyRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "Strategy"
+protected class Strategy_StrategyKeyword_0 extends KeywordToken  {
+	
+	public Strategy_StrategyKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getStrategyKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// id=EString
+protected class Strategy_IdAssignment_1 extends AssignmentToken  {
+	
+	public Strategy_IdAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getIdAssignment_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_StrategyKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "{"
+protected class Strategy_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public Strategy_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_IdAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "name"
+protected class Strategy_NameKeyword_3 extends KeywordToken  {
+	
+	public Strategy_NameKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getNameKeyword_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// name=EString
+protected class Strategy_NameAssignment_4 extends AssignmentToken  {
+	
+	public Strategy_NameAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getNameAssignment_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_NameKeyword_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_4_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_4_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "objective"
+protected class Strategy_ObjectiveKeyword_5 extends KeywordToken  {
+	
+	public Strategy_ObjectiveKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getObjectiveKeyword_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_NameAssignment_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// objective=[Objective|EString]
+protected class Strategy_ObjectiveAssignment_6 extends AssignmentToken  {
+	
+	public Strategy_ObjectiveAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getObjectiveAssignment_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_ObjectiveKeyword_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("objective",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("objective");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_6_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_6_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// ("triggeringEvents" triggeringEvents=Event)?
+protected class Strategy_Group_7 extends GroupToken {
+	
+	public Strategy_Group_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getGroup_7();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_TriggeringEventsAssignment_7_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "triggeringEvents"
+protected class Strategy_TriggeringEventsKeyword_7_0 extends KeywordToken  {
+	
+	public Strategy_TriggeringEventsKeyword_7_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getTriggeringEventsKeyword_7_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_ObjectiveAssignment_6(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// triggeringEvents=Event
+protected class Strategy_TriggeringEventsAssignment_7_1 extends AssignmentToken  {
+	
+	public Strategy_TriggeringEventsAssignment_7_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getTriggeringEventsAssignment_7_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Event_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("triggeringEvents",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("triggeringEvents");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getEventRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_7_1_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new Strategy_TriggeringEventsKeyword_7_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+
+// "tactics"
+protected class Strategy_TacticsKeyword_8 extends KeywordToken  {
+	
+	public Strategy_TacticsKeyword_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getTacticsKeyword_8();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_Group_7(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Strategy_ObjectiveAssignment_6(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "{"
+protected class Strategy_LeftCurlyBracketKeyword_9 extends KeywordToken  {
+	
+	public Strategy_LeftCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_9();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_TacticsKeyword_8(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// tactics+=WeightedTactic
+protected class Strategy_TacticsAssignment_10 extends AssignmentToken  {
+	
+	public Strategy_TacticsAssignment_10(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getTacticsAssignment_10();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("tactics",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tactics");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getWeightedTacticRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_10_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new Strategy_LeftCurlyBracketKeyword_9(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// ("," tactics+=WeightedTactic)*
+protected class Strategy_Group_11 extends GroupToken {
+	
+	public Strategy_Group_11(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getGroup_11();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_TacticsAssignment_11_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class Strategy_CommaKeyword_11_0 extends KeywordToken  {
+	
+	public Strategy_CommaKeyword_11_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getCommaKeyword_11_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_Group_11(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Strategy_TacticsAssignment_10(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// tactics+=WeightedTactic
+protected class Strategy_TacticsAssignment_11_1 extends AssignmentToken  {
+	
+	public Strategy_TacticsAssignment_11_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getTacticsAssignment_11_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("tactics",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("tactics");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getWeightedTacticRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_11_1_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new Strategy_CommaKeyword_11_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+
+// "}"
+protected class Strategy_RightCurlyBracketKeyword_12 extends KeywordToken  {
+	
+	public Strategy_RightCurlyBracketKeyword_12(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_12();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_Group_11(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Strategy_TacticsAssignment_10(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "weightingFunction"
+protected class Strategy_WeightingFunctionKeyword_13 extends KeywordToken  {
+	
+	public Strategy_WeightingFunctionKeyword_13(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_13();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_RightCurlyBracketKeyword_12(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// weightingFunction=WeightingFunction
+protected class Strategy_WeightingFunctionAssignment_14 extends AssignmentToken  {
+	
+	public Strategy_WeightingFunctionAssignment_14(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getWeightingFunctionAssignment_14();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightingFunction_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("weightingFunction",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("weightingFunction");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getWeightingFunctionRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_14_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new Strategy_WeightingFunctionKeyword_13(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// "}"
+protected class Strategy_RightCurlyBracketKeyword_15 extends KeywordToken  {
+	
+	public Strategy_RightCurlyBracketKeyword_15(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_15();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Strategy_WeightingFunctionAssignment_14(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Strategy ****************/
+
+
+/************ begin Rule Parameter ****************
+ *
+ * Parameter:
+ * 	"Parameter" name=EString "{" "type" type=EString "}";
+ *
+ **/
+
+// "Parameter" name=EString "{" "type" type=EString "}"
+protected class Parameter_Group extends GroupToken {
+	
+	public Parameter_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getParameterAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Parameter_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getParameterRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "Parameter"
+protected class Parameter_ParameterKeyword_0 extends KeywordToken  {
+	
+	public Parameter_ParameterKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getParameterAccess().getParameterKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// name=EString
+protected class Parameter_NameAssignment_1 extends AssignmentToken  {
+	
+	public Parameter_NameAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getParameterAccess().getNameAssignment_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Parameter_ParameterKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "{"
+protected class Parameter_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public Parameter_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Parameter_NameAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "type"
+protected class Parameter_TypeKeyword_3 extends KeywordToken  {
+	
+	public Parameter_TypeKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getParameterAccess().getTypeKeyword_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Parameter_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// type=EString
+protected class Parameter_TypeAssignment_4 extends AssignmentToken  {
+	
+	public Parameter_TypeAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getParameterAccess().getTypeAssignment_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Parameter_TypeKeyword_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("type",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("type");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_4_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_4_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "}"
+protected class Parameter_RightCurlyBracketKeyword_5 extends KeywordToken  {
+	
+	public Parameter_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Parameter_TypeAssignment_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Parameter ****************/
+
+
+/************ begin Rule AdaptationPlan ****************
+ *
+ * AdaptationPlan:
+ * 	"AdaptationPlan" id=EString "{" "name" name=EString ("steps" "{" steps+=AbstractControlFlowElement (","
+ * 	steps+=AbstractControlFlowElement)* "}")? "}";
+ *
+ **/
+
+// "AdaptationPlan" id=EString "{" "name" name=EString ("steps" "{" steps+=AbstractControlFlowElement (","
+// steps+=AbstractControlFlowElement)* "}")? "}"
+protected class AdaptationPlan_Group extends GroupToken {
+	
+	public AdaptationPlan_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getAdaptationPlanRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "AdaptationPlan"
+protected class AdaptationPlan_AdaptationPlanKeyword_0 extends KeywordToken  {
+	
+	public AdaptationPlan_AdaptationPlanKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getAdaptationPlanKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// id=EString
+protected class AdaptationPlan_IdAssignment_1 extends AssignmentToken  {
+	
+	public AdaptationPlan_IdAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getIdAssignment_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_AdaptationPlanKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "{"
+protected class AdaptationPlan_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public AdaptationPlan_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_IdAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "name"
+protected class AdaptationPlan_NameKeyword_3 extends KeywordToken  {
+	
+	public AdaptationPlan_NameKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getNameKeyword_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// name=EString
+protected class AdaptationPlan_NameAssignment_4 extends AssignmentToken  {
+	
+	public AdaptationPlan_NameAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getNameAssignment_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_NameKeyword_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("name",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("name");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_4_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_4_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// ("steps" "{" steps+=AbstractControlFlowElement ("," steps+=AbstractControlFlowElement)* "}")?
+protected class AdaptationPlan_Group_5 extends GroupToken {
+	
+	public AdaptationPlan_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getGroup_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_RightCurlyBracketKeyword_5_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "steps"
+protected class AdaptationPlan_StepsKeyword_5_0 extends KeywordToken  {
+	
+	public AdaptationPlan_StepsKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getStepsKeyword_5_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_NameAssignment_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "{"
+protected class AdaptationPlan_LeftCurlyBracketKeyword_5_1 extends KeywordToken  {
+	
+	public AdaptationPlan_LeftCurlyBracketKeyword_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_5_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_StepsKeyword_5_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// steps+=AbstractControlFlowElement
+protected class AdaptationPlan_StepsAssignment_5_2 extends AssignmentToken  {
+	
+	public AdaptationPlan_StepsAssignment_5_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AbstractControlFlowElement_Alternatives(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("steps",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("steps");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getAbstractControlFlowElementRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_2_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new AdaptationPlan_LeftCurlyBracketKeyword_5_1(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// ("," steps+=AbstractControlFlowElement)*
+protected class AdaptationPlan_Group_5_3 extends GroupToken {
+	
+	public AdaptationPlan_Group_5_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getGroup_5_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_StepsAssignment_5_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class AdaptationPlan_CommaKeyword_5_3_0 extends KeywordToken  {
+	
+	public AdaptationPlan_CommaKeyword_5_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getCommaKeyword_5_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_Group_5_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new AdaptationPlan_StepsAssignment_5_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// steps+=AbstractControlFlowElement
+protected class AdaptationPlan_StepsAssignment_5_3_1 extends AssignmentToken  {
+	
+	public AdaptationPlan_StepsAssignment_5_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getStepsAssignment_5_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AbstractControlFlowElement_Alternatives(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("steps",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("steps");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getAbstractControlFlowElementRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_3_1_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new AdaptationPlan_CommaKeyword_5_3_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+
+// "}"
+protected class AdaptationPlan_RightCurlyBracketKeyword_5_4 extends KeywordToken  {
+	
+	public AdaptationPlan_RightCurlyBracketKeyword_5_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_5_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_Group_5_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new AdaptationPlan_StepsAssignment_5_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+// "}"
+protected class AdaptationPlan_RightCurlyBracketKeyword_6 extends KeywordToken  {
+	
+	public AdaptationPlan_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_Group_5(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new AdaptationPlan_NameAssignment_4(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule AdaptationPlan ****************/
+
+
+/************ begin Rule Start ****************
+ *
+ * Start:
+ * 	{Start} "Start" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+ * 	successor=[AbstractControlFlowElement|EString])? "}";
+ *
+ **/
+
+// {Start} "Start" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+// successor=[AbstractControlFlowElement|EString])? "}"
+protected class Start_Group extends GroupToken {
+	
+	public Start_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStartAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getStartAccess().getStartAction_0().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// {Start}
+protected class Start_StartAction_0 extends ActionToken  {
+
+	public Start_StartAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Action getGrammarElement() {
+		return grammarAccess.getStartAccess().getStartAction_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(!eObjectConsumer.isConsumed()) return null;
+		return eObjectConsumer;
+	}
+}
+
+// "Start"
+protected class Start_StartKeyword_1 extends KeywordToken  {
+	
+	public Start_StartKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStartAccess().getStartKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_StartAction_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "{"
+protected class Start_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public Start_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStartAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_StartKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+protected class Start_Group_3 extends GroupToken {
+	
+	public Start_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStartAccess().getGroup_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_PredecessorAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "predecessor"
+protected class Start_PredecessorKeyword_3_0 extends KeywordToken  {
+	
+	public Start_PredecessorKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStartAccess().getPredecessorKeyword_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// predecessor=[AbstractControlFlowElement|EString]
+protected class Start_PredecessorAssignment_3_1 extends AssignmentToken  {
+	
+	public Start_PredecessorAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStartAccess().getPredecessorAssignment_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_PredecessorKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("predecessor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("predecessor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ("successor" successor=[AbstractControlFlowElement|EString])?
+protected class Start_Group_4 extends GroupToken {
+	
+	public Start_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStartAccess().getGroup_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_SuccessorAssignment_4_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "successor"
+protected class Start_SuccessorKeyword_4_0 extends KeywordToken  {
+	
+	public Start_SuccessorKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStartAccess().getSuccessorKeyword_4_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_Group_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Start_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// successor=[AbstractControlFlowElement|EString]
+protected class Start_SuccessorAssignment_4_1 extends AssignmentToken  {
+	
+	public Start_SuccessorAssignment_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStartAccess().getSuccessorAssignment_4_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_SuccessorKeyword_4_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("successor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("successor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// "}"
+protected class Start_RightCurlyBracketKeyword_5 extends KeywordToken  {
+	
+	public Start_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStartAccess().getRightCurlyBracketKeyword_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Start_Group_4(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Start_Group_3(lastRuleCallOrigin, this, 1, inst);
+			case 2: return new Start_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 2, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Start ****************/
+
+
+/************ begin Rule Stop ****************
+ *
+ * Stop:
+ * 	{Stop} "Stop" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+ * 	successor=[AbstractControlFlowElement|EString])? "}";
+ *
+ **/
+
+// {Stop} "Stop" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+// successor=[AbstractControlFlowElement|EString])? "}"
+protected class Stop_Group extends GroupToken {
+	
+	public Stop_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStopAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getStopAccess().getStopAction_0().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// {Stop}
+protected class Stop_StopAction_0 extends ActionToken  {
+
+	public Stop_StopAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Action getGrammarElement() {
+		return grammarAccess.getStopAccess().getStopAction_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(!eObjectConsumer.isConsumed()) return null;
+		return eObjectConsumer;
+	}
+}
+
+// "Stop"
+protected class Stop_StopKeyword_1 extends KeywordToken  {
+	
+	public Stop_StopKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStopAccess().getStopKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_StopAction_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "{"
+protected class Stop_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public Stop_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStopAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_StopKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+protected class Stop_Group_3 extends GroupToken {
+	
+	public Stop_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStopAccess().getGroup_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_PredecessorAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "predecessor"
+protected class Stop_PredecessorKeyword_3_0 extends KeywordToken  {
+	
+	public Stop_PredecessorKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStopAccess().getPredecessorKeyword_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// predecessor=[AbstractControlFlowElement|EString]
+protected class Stop_PredecessorAssignment_3_1 extends AssignmentToken  {
+	
+	public Stop_PredecessorAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStopAccess().getPredecessorAssignment_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_PredecessorKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("predecessor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("predecessor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ("successor" successor=[AbstractControlFlowElement|EString])?
+protected class Stop_Group_4 extends GroupToken {
+	
+	public Stop_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getStopAccess().getGroup_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_SuccessorAssignment_4_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "successor"
+protected class Stop_SuccessorKeyword_4_0 extends KeywordToken  {
+	
+	public Stop_SuccessorKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStopAccess().getSuccessorKeyword_4_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_Group_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Stop_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// successor=[AbstractControlFlowElement|EString]
+protected class Stop_SuccessorAssignment_4_1 extends AssignmentToken  {
+	
+	public Stop_SuccessorAssignment_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getStopAccess().getSuccessorAssignment_4_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_SuccessorKeyword_4_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("successor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("successor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// "}"
+protected class Stop_RightCurlyBracketKeyword_5 extends KeywordToken  {
+	
+	public Stop_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getStopAccess().getRightCurlyBracketKeyword_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Stop_Group_4(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Stop_Group_3(lastRuleCallOrigin, this, 1, inst);
+			case 2: return new Stop_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 2, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Stop ****************/
+
+
+/************ begin Rule Loop ****************
+ *
+ * Loop:
+ * 	"Loop" "{" "counter" counter=EInt ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+ * 	successor=[AbstractControlFlowElement|EString])? "body" body=AdaptationPlan "}";
+ *
+ **/
+
+// "Loop" "{" "counter" counter=EInt ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+// successor=[AbstractControlFlowElement|EString])? "body" body=AdaptationPlan "}"
+protected class Loop_Group extends GroupToken {
+	
+	public Loop_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getLoopAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_RightCurlyBracketKeyword_8(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getLoopRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "Loop"
+protected class Loop_LoopKeyword_0 extends KeywordToken  {
+	
+	public Loop_LoopKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getLoopAccess().getLoopKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// "{"
+protected class Loop_LeftCurlyBracketKeyword_1 extends KeywordToken  {
+	
+	public Loop_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getLoopAccess().getLeftCurlyBracketKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_LoopKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "counter"
+protected class Loop_CounterKeyword_2 extends KeywordToken  {
+	
+	public Loop_CounterKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getLoopAccess().getCounterKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// counter=EInt
+protected class Loop_CounterAssignment_3 extends AssignmentToken  {
+	
+	public Loop_CounterAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getLoopAccess().getCounterAssignment_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_CounterKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("counter",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("counter");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getLoopAccess().getCounterEIntParserRuleCall_3_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getLoopAccess().getCounterEIntParserRuleCall_3_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+protected class Loop_Group_4 extends GroupToken {
+	
+	public Loop_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getLoopAccess().getGroup_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_PredecessorAssignment_4_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "predecessor"
+protected class Loop_PredecessorKeyword_4_0 extends KeywordToken  {
+	
+	public Loop_PredecessorKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getLoopAccess().getPredecessorKeyword_4_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_CounterAssignment_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// predecessor=[AbstractControlFlowElement|EString]
+protected class Loop_PredecessorAssignment_4_1 extends AssignmentToken  {
+	
+	public Loop_PredecessorAssignment_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getLoopAccess().getPredecessorAssignment_4_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_PredecessorKeyword_4_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("predecessor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("predecessor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementCrossReference_4_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementCrossReference_4_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ("successor" successor=[AbstractControlFlowElement|EString])?
+protected class Loop_Group_5 extends GroupToken {
+	
+	public Loop_Group_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getLoopAccess().getGroup_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_SuccessorAssignment_5_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "successor"
+protected class Loop_SuccessorKeyword_5_0 extends KeywordToken  {
+	
+	public Loop_SuccessorKeyword_5_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getLoopAccess().getSuccessorKeyword_5_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_Group_4(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Loop_CounterAssignment_3(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// successor=[AbstractControlFlowElement|EString]
+protected class Loop_SuccessorAssignment_5_1 extends AssignmentToken  {
+	
+	public Loop_SuccessorAssignment_5_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getLoopAccess().getSuccessorAssignment_5_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_SuccessorKeyword_5_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("successor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("successor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementCrossReference_5_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementCrossReference_5_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// "body"
+protected class Loop_BodyKeyword_6 extends KeywordToken  {
+	
+	public Loop_BodyKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getLoopAccess().getBodyKeyword_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_Group_5(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Loop_Group_4(lastRuleCallOrigin, this, 1, inst);
+			case 2: return new Loop_CounterAssignment_3(lastRuleCallOrigin, this, 2, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// body=AdaptationPlan
+protected class Loop_BodyAssignment_7 extends AssignmentToken  {
+	
+	public Loop_BodyAssignment_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getLoopAccess().getBodyAssignment_7();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("body",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("body");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getAdaptationPlanRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getLoopAccess().getBodyAdaptationPlanParserRuleCall_7_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new Loop_BodyKeyword_6(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// "}"
+protected class Loop_RightCurlyBracketKeyword_8 extends KeywordToken  {
+	
+	public Loop_RightCurlyBracketKeyword_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getLoopAccess().getRightCurlyBracketKeyword_8();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Loop_BodyAssignment_7(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Loop ****************/
+
+
+/************ begin Rule Branch ****************
+ *
+ * Branch:
+ * 	"Branch" "{" ("condition" condition=EString)? ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+ * 	("successor" successor=[AbstractControlFlowElement|EString])? "branches" "{" branches+=AdaptationPlan (","
+ * 	branches+=AdaptationPlan)* "}" "}";
+ *
+ **/
+
+// "Branch" "{" ("condition" condition=EString)? ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+// ("successor" successor=[AbstractControlFlowElement|EString])? "branches" "{" branches+=AdaptationPlan (","
+// branches+=AdaptationPlan)* "}" "}"
+protected class Branch_Group extends GroupToken {
+	
+	public Branch_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getBranchAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_RightCurlyBracketKeyword_10(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getBranchRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "Branch"
+protected class Branch_BranchKeyword_0 extends KeywordToken  {
+	
+	public Branch_BranchKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getBranchKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// "{"
+protected class Branch_LeftCurlyBracketKeyword_1 extends KeywordToken  {
+	
+	public Branch_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_BranchKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ("condition" condition=EString)?
+protected class Branch_Group_2 extends GroupToken {
+	
+	public Branch_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getBranchAccess().getGroup_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_ConditionAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "condition"
+protected class Branch_ConditionKeyword_2_0 extends KeywordToken  {
+	
+	public Branch_ConditionKeyword_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getConditionKeyword_2_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// condition=EString
+protected class Branch_ConditionAssignment_2_1 extends AssignmentToken  {
+	
+	public Branch_ConditionAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getBranchAccess().getConditionAssignment_2_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_ConditionKeyword_2_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("condition",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("condition");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getBranchAccess().getConditionEStringParserRuleCall_2_1_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getBranchAccess().getConditionEStringParserRuleCall_2_1_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+
+// ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+protected class Branch_Group_3 extends GroupToken {
+	
+	public Branch_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getBranchAccess().getGroup_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_PredecessorAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "predecessor"
+protected class Branch_PredecessorKeyword_3_0 extends KeywordToken  {
+	
+	public Branch_PredecessorKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getPredecessorKeyword_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_Group_2(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Branch_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// predecessor=[AbstractControlFlowElement|EString]
+protected class Branch_PredecessorAssignment_3_1 extends AssignmentToken  {
+	
+	public Branch_PredecessorAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getBranchAccess().getPredecessorAssignment_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_PredecessorKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("predecessor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("predecessor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ("successor" successor=[AbstractControlFlowElement|EString])?
+protected class Branch_Group_4 extends GroupToken {
+	
+	public Branch_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getBranchAccess().getGroup_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_SuccessorAssignment_4_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "successor"
+protected class Branch_SuccessorKeyword_4_0 extends KeywordToken  {
+	
+	public Branch_SuccessorKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getSuccessorKeyword_4_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_Group_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Branch_Group_2(lastRuleCallOrigin, this, 1, inst);
+			case 2: return new Branch_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 2, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// successor=[AbstractControlFlowElement|EString]
+protected class Branch_SuccessorAssignment_4_1 extends AssignmentToken  {
+	
+	public Branch_SuccessorAssignment_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getBranchAccess().getSuccessorAssignment_4_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_SuccessorKeyword_4_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("successor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("successor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// "branches"
+protected class Branch_BranchesKeyword_5 extends KeywordToken  {
+	
+	public Branch_BranchesKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getBranchesKeyword_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_Group_4(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Branch_Group_3(lastRuleCallOrigin, this, 1, inst);
+			case 2: return new Branch_Group_2(lastRuleCallOrigin, this, 2, inst);
+			case 3: return new Branch_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 3, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "{"
+protected class Branch_LeftCurlyBracketKeyword_6 extends KeywordToken  {
+	
+	public Branch_LeftCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_BranchesKeyword_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// branches+=AdaptationPlan
+protected class Branch_BranchesAssignment_7 extends AssignmentToken  {
+	
+	public Branch_BranchesAssignment_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getBranchAccess().getBranchesAssignment_7();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("branches",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("branches");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getAdaptationPlanRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_7_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new Branch_LeftCurlyBracketKeyword_6(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// ("," branches+=AdaptationPlan)*
+protected class Branch_Group_8 extends GroupToken {
+	
+	public Branch_Group_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getBranchAccess().getGroup_8();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_BranchesAssignment_8_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class Branch_CommaKeyword_8_0 extends KeywordToken  {
+	
+	public Branch_CommaKeyword_8_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getCommaKeyword_8_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_Group_8(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Branch_BranchesAssignment_7(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// branches+=AdaptationPlan
+protected class Branch_BranchesAssignment_8_1 extends AssignmentToken  {
+	
+	public Branch_BranchesAssignment_8_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getBranchAccess().getBranchesAssignment_8_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new AdaptationPlan_Group(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("branches",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("branches");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getAdaptationPlanRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_8_1_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new Branch_CommaKeyword_8_0(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+
+// "}"
+protected class Branch_RightCurlyBracketKeyword_9 extends KeywordToken  {
+	
+	public Branch_RightCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_9();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_Group_8(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new Branch_BranchesAssignment_7(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "}"
+protected class Branch_RightCurlyBracketKeyword_10 extends KeywordToken  {
+	
+	public Branch_RightCurlyBracketKeyword_10(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_10();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Branch_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Branch ****************/
+
+
+/************ begin Rule ActionReference ****************
+ *
+ * ActionReference:
+ * 	"ActionReference" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+ * 	successor=[AbstractControlFlowElement|EString])? "refersTo" refersTo=[Action|EString] "}";
+ *
+ **/
+
+// "ActionReference" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+// successor=[AbstractControlFlowElement|EString])? "refersTo" refersTo=[Action|EString] "}"
+protected class ActionReference_Group extends GroupToken {
+	
+	public ActionReference_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getActionReferenceRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "ActionReference"
+protected class ActionReference_ActionReferenceKeyword_0 extends KeywordToken  {
+	
+	public ActionReference_ActionReferenceKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// "{"
+protected class ActionReference_LeftCurlyBracketKeyword_1 extends KeywordToken  {
+	
+	public ActionReference_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getLeftCurlyBracketKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_ActionReferenceKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+protected class ActionReference_Group_2 extends GroupToken {
+	
+	public ActionReference_Group_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getGroup_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_PredecessorAssignment_2_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "predecessor"
+protected class ActionReference_PredecessorKeyword_2_0 extends KeywordToken  {
+	
+	public ActionReference_PredecessorKeyword_2_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getPredecessorKeyword_2_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// predecessor=[AbstractControlFlowElement|EString]
+protected class ActionReference_PredecessorAssignment_2_1 extends AssignmentToken  {
+	
+	public ActionReference_PredecessorAssignment_2_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getPredecessorAssignment_2_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_PredecessorKeyword_2_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("predecessor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("predecessor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementCrossReference_2_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementCrossReference_2_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ("successor" successor=[AbstractControlFlowElement|EString])?
+protected class ActionReference_Group_3 extends GroupToken {
+	
+	public ActionReference_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getGroup_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_SuccessorAssignment_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "successor"
+protected class ActionReference_SuccessorKeyword_3_0 extends KeywordToken  {
+	
+	public ActionReference_SuccessorKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getSuccessorKeyword_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_Group_2(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new ActionReference_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// successor=[AbstractControlFlowElement|EString]
+protected class ActionReference_SuccessorAssignment_3_1 extends AssignmentToken  {
+	
+	public ActionReference_SuccessorAssignment_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getSuccessorAssignment_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_SuccessorKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("successor",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("successor");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementCrossReference_3_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementCrossReference_3_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// "refersTo"
+protected class ActionReference_RefersToKeyword_4 extends KeywordToken  {
+	
+	public ActionReference_RefersToKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getRefersToKeyword_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_Group_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new ActionReference_Group_2(lastRuleCallOrigin, this, 1, inst);
+			case 2: return new ActionReference_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 2, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// refersTo=[Action|EString]
+protected class ActionReference_RefersToAssignment_5 extends AssignmentToken  {
+	
+	public ActionReference_RefersToAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getRefersToAssignment_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_RefersToKeyword_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("refersTo",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("refersTo");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_5_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_5_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// "}"
+protected class ActionReference_RightCurlyBracketKeyword_6 extends KeywordToken  {
+	
+	public ActionReference_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getActionReferenceAccess().getRightCurlyBracketKeyword_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ActionReference_RefersToAssignment_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule ActionReference ****************/
+
+
+
+/************ begin Rule ModelVariableConfigurationRange ****************
+ *
+ * ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange:
+ * 	"ModelVariableConfigurationRange" id=EString "{" "minValue" minValue=EDouble "maxValue" maxValue=EDouble
+ * 	"adaptableEntity" adaptableEntity=[core::AdaptableEntity|EString] "}";
+ *
+ **/
+
+// "ModelVariableConfigurationRange" id=EString "{" "minValue" minValue=EDouble "maxValue" maxValue=EDouble
+// "adaptableEntity" adaptableEntity=[core::AdaptableEntity|EString] "}"
+protected class ModelVariableConfigurationRange_Group extends GroupToken {
+	
+	public ModelVariableConfigurationRange_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_RightCurlyBracketKeyword_9(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getModelVariableConfigurationRangeRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "ModelVariableConfigurationRange"
+protected class ModelVariableConfigurationRange_ModelVariableConfigurationRangeKeyword_0 extends KeywordToken  {
+	
+	public ModelVariableConfigurationRange_ModelVariableConfigurationRangeKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// id=EString
+protected class ModelVariableConfigurationRange_IdAssignment_1 extends AssignmentToken  {
+	
+	public ModelVariableConfigurationRange_IdAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getIdAssignment_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_ModelVariableConfigurationRangeKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "{"
+protected class ModelVariableConfigurationRange_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public ModelVariableConfigurationRange_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_IdAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "minValue"
+protected class ModelVariableConfigurationRange_MinValueKeyword_3 extends KeywordToken  {
+	
+	public ModelVariableConfigurationRange_MinValueKeyword_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// minValue=EDouble
+protected class ModelVariableConfigurationRange_MinValueAssignment_4 extends AssignmentToken  {
+	
+	public ModelVariableConfigurationRange_MinValueAssignment_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueAssignment_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_MinValueKeyword_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("minValue",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("minValue");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_4_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_4_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "maxValue"
+protected class ModelVariableConfigurationRange_MaxValueKeyword_5 extends KeywordToken  {
+	
+	public ModelVariableConfigurationRange_MaxValueKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_MinValueAssignment_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// maxValue=EDouble
+protected class ModelVariableConfigurationRange_MaxValueAssignment_6 extends AssignmentToken  {
+	
+	public ModelVariableConfigurationRange_MaxValueAssignment_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueAssignment_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_MaxValueKeyword_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("maxValue",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("maxValue");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_6_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_6_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "adaptableEntity"
+protected class ModelVariableConfigurationRange_AdaptableEntityKeyword_7 extends KeywordToken  {
+	
+	public ModelVariableConfigurationRange_AdaptableEntityKeyword_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_7();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_MaxValueAssignment_6(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// adaptableEntity=[core::AdaptableEntity|EString]
+protected class ModelVariableConfigurationRange_AdaptableEntityAssignment_8 extends AssignmentToken  {
+	
+	public ModelVariableConfigurationRange_AdaptableEntityAssignment_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAssignment_8();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_AdaptableEntityKeyword_7(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("adaptableEntity",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("adaptableEntity");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_8_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_8_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// "}"
+protected class ModelVariableConfigurationRange_RightCurlyBracketKeyword_9 extends KeywordToken  {
+	
+	public ModelVariableConfigurationRange_RightCurlyBracketKeyword_9(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_9();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelVariableConfigurationRange_AdaptableEntityAssignment_8(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule ModelVariableConfigurationRange ****************/
+
+
+/************ begin Rule ModelEntityConfigurationRange ****************
+ *
+ * ModelEntityConfigurationRange returns adaptationpoints::ModelEntityConfigurationRange:
+ * 	"ModelEntityConfigurationRange" id=EString "{" ("entity" "(" entity+=[ecore::EObject|EString] (","
+ * 	entity+=[ecore::EObject|EString])* ")")? "variationPossibility" variationPossibility=VariationType "}";
+ *
+ **/
+
+// "ModelEntityConfigurationRange" id=EString "{" ("entity" "(" entity+=[ecore::EObject|EString] (","
+// entity+=[ecore::EObject|EString])* ")")? "variationPossibility" variationPossibility=VariationType "}"
+protected class ModelEntityConfigurationRange_Group extends GroupToken {
+	
+	public ModelEntityConfigurationRange_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getModelEntityConfigurationRangeRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "ModelEntityConfigurationRange"
+protected class ModelEntityConfigurationRange_ModelEntityConfigurationRangeKeyword_0 extends KeywordToken  {
+	
+	public ModelEntityConfigurationRange_ModelEntityConfigurationRangeKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// id=EString
+protected class ModelEntityConfigurationRange_IdAssignment_1 extends AssignmentToken  {
+	
+	public ModelEntityConfigurationRange_IdAssignment_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getIdAssignment_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_ModelEntityConfigurationRangeKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("id",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("id");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "{"
+protected class ModelEntityConfigurationRange_LeftCurlyBracketKeyword_2 extends KeywordToken  {
+	
+	public ModelEntityConfigurationRange_LeftCurlyBracketKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_IdAssignment_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ("entity" "(" entity+=[ecore::EObject|EString] ("," entity+=[ecore::EObject|EString])* ")")?
+protected class ModelEntityConfigurationRange_Group_3 extends GroupToken {
+	
+	public ModelEntityConfigurationRange_Group_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_RightParenthesisKeyword_3_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "entity"
+protected class ModelEntityConfigurationRange_EntityKeyword_3_0 extends KeywordToken  {
+	
+	public ModelEntityConfigurationRange_EntityKeyword_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getEntityKeyword_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "("
+protected class ModelEntityConfigurationRange_LeftParenthesisKeyword_3_1 extends KeywordToken  {
+	
+	public ModelEntityConfigurationRange_LeftParenthesisKeyword_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getLeftParenthesisKeyword_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_EntityKeyword_3_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// entity+=[ecore::EObject|EString]
+protected class ModelEntityConfigurationRange_EntityAssignment_3_2 extends AssignmentToken  {
+	
+	public ModelEntityConfigurationRange_EntityAssignment_3_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_LeftParenthesisKeyword_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("entity",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("entity");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_2_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_2_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// ("," entity+=[ecore::EObject|EString])*
+protected class ModelEntityConfigurationRange_Group_3_3 extends GroupToken {
+	
+	public ModelEntityConfigurationRange_Group_3_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getGroup_3_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_EntityAssignment_3_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class ModelEntityConfigurationRange_CommaKeyword_3_3_0 extends KeywordToken  {
+	
+	public ModelEntityConfigurationRange_CommaKeyword_3_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getCommaKeyword_3_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_Group_3_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new ModelEntityConfigurationRange_EntityAssignment_3_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// entity+=[ecore::EObject|EString]
+protected class ModelEntityConfigurationRange_EntityAssignment_3_3_1 extends AssignmentToken  {
+	
+	public ModelEntityConfigurationRange_EntityAssignment_3_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getEntityAssignment_3_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_CommaKeyword_3_3_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("entity",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("entity");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_3_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_3_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ")"
+protected class ModelEntityConfigurationRange_RightParenthesisKeyword_3_4 extends KeywordToken  {
+	
+	public ModelEntityConfigurationRange_RightParenthesisKeyword_3_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getRightParenthesisKeyword_3_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_Group_3_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new ModelEntityConfigurationRange_EntityAssignment_3_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+// "variationPossibility"
+protected class ModelEntityConfigurationRange_VariationPossibilityKeyword_4 extends KeywordToken  {
+	
+	public ModelEntityConfigurationRange_VariationPossibilityKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_Group_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new ModelEntityConfigurationRange_LeftCurlyBracketKeyword_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// variationPossibility=VariationType
+protected class ModelEntityConfigurationRange_VariationPossibilityAssignment_5 extends AssignmentToken  {
+	
+	public ModelEntityConfigurationRange_VariationPossibilityAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityAssignment_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new VariationType_Alternatives(this, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("variationPossibility",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("variationPossibility");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::RuleCallImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getVariationTypeRule().getType().getClassifier())) {
+				type = AssignmentType.PARSER_RULE_CALL;
+				element = grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_5_0(); 
+				consumed = obj;
+				return param;
+			}
+		}
+		return null;
+	}
+
+    @Override
+	public AbstractToken createFollowerAfterReturn(AbstractToken next,	int actIndex, int index, IEObjectConsumer inst) {
+		if(value == inst.getEObject() && !inst.isConsumed()) return null;
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_VariationPossibilityKeyword_4(lastRuleCallOrigin, next, actIndex, consumed);
+			default: return null;
+		}	
+	}	
+}
+
+// "}"
+protected class ModelEntityConfigurationRange_RightCurlyBracketKeyword_6 extends KeywordToken  {
+	
+	public ModelEntityConfigurationRange_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new ModelEntityConfigurationRange_VariationPossibilityAssignment_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule ModelEntityConfigurationRange ****************/
+
+
+
+/************ begin Rule EObject ****************
+ *
+ * EObject returns ecore::EObject:
+ * 	{ecore::EObject} "EObject";
+ *
+ **/
+
+// {ecore::EObject} "EObject"
+protected class EObject_Group extends GroupToken {
+	
+	public EObject_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getEObjectAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new EObject_EObjectKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getEObjectAccess().getEObjectAction_0().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// {ecore::EObject}
+protected class EObject_EObjectAction_0 extends ActionToken  {
+
+	public EObject_EObjectAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Action getGrammarElement() {
+		return grammarAccess.getEObjectAccess().getEObjectAction_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(!eObjectConsumer.isConsumed()) return null;
+		return eObjectConsumer;
+	}
+}
+
+// "EObject"
+protected class EObject_EObjectKeyword_1 extends KeywordToken  {
+	
+	public EObject_EObjectKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getEObjectAccess().getEObjectKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new EObject_EObjectAction_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule EObject ****************/
+
+
+/************ begin Rule PropertyRange ****************
+ *
+ * PropertyRange returns adaptationpoints::PropertyRange:
+ * 	"PropertyRange" "{" "minValueConstraint" minValueConstraint=[adaptationpoints::OclConstraint|EString]
+ * 	"maxValueConstraint" maxValueConstraint=[adaptationpoints::OclConstraint|EString] "}";
+ *
+ **/
+
+// "PropertyRange" "{" "minValueConstraint" minValueConstraint=[adaptationpoints::OclConstraint|EString]
+// "maxValueConstraint" maxValueConstraint=[adaptationpoints::OclConstraint|EString] "}"
+protected class PropertyRange_Group extends GroupToken {
+	
+	public PropertyRange_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getPropertyRangeAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new PropertyRange_RightCurlyBracketKeyword_6(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getPropertyRangeRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "PropertyRange"
+protected class PropertyRange_PropertyRangeKeyword_0 extends KeywordToken  {
+	
+	public PropertyRange_PropertyRangeKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// "{"
+protected class PropertyRange_LeftCurlyBracketKeyword_1 extends KeywordToken  {
+	
+	public PropertyRange_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new PropertyRange_PropertyRangeKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "minValueConstraint"
+protected class PropertyRange_MinValueConstraintKeyword_2 extends KeywordToken  {
+	
+	public PropertyRange_MinValueConstraintKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new PropertyRange_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// minValueConstraint=[adaptationpoints::OclConstraint|EString]
+protected class PropertyRange_MinValueConstraintAssignment_3 extends AssignmentToken  {
+	
+	public PropertyRange_MinValueConstraintAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getPropertyRangeAccess().getMinValueConstraintAssignment_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new PropertyRange_MinValueConstraintKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("minValueConstraint",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("minValueConstraint");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintCrossReference_3_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintCrossReference_3_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// "maxValueConstraint"
+protected class PropertyRange_MaxValueConstraintKeyword_4 extends KeywordToken  {
+	
+	public PropertyRange_MaxValueConstraintKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new PropertyRange_MinValueConstraintAssignment_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// maxValueConstraint=[adaptationpoints::OclConstraint|EString]
+protected class PropertyRange_MaxValueConstraintAssignment_5 extends AssignmentToken  {
+	
+	public PropertyRange_MaxValueConstraintAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getPropertyRangeAccess().getMaxValueConstraintAssignment_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new PropertyRange_MaxValueConstraintKeyword_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("maxValueConstraint",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("maxValueConstraint");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintCrossReference_5_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintCrossReference_5_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// "}"
+protected class PropertyRange_RightCurlyBracketKeyword_6 extends KeywordToken  {
+	
+	public PropertyRange_RightCurlyBracketKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getPropertyRangeAccess().getRightCurlyBracketKeyword_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new PropertyRange_MaxValueConstraintAssignment_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule PropertyRange ****************/
+
+
+/************ begin Rule SetOfConfigurations ****************
+ *
+ * SetOfConfigurations returns adaptationpoints::SetOfConfigurations:
+ * 	"SetOfConfigurations" "{" "valueConstraint" valueConstraint=[adaptationpoints::OclConstraint|EString] ("variants" "("
+ * 	variants+=[ecore::EObject|EString] ("," variants+=[ecore::EObject|EString])* ")")? "}";
+ *
+ **/
+
+// "SetOfConfigurations" "{" "valueConstraint" valueConstraint=[adaptationpoints::OclConstraint|EString] ("variants" "("
+// variants+=[ecore::EObject|EString] ("," variants+=[ecore::EObject|EString])* ")")? "}"
+protected class SetOfConfigurations_Group extends GroupToken {
+	
+	public SetOfConfigurations_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_RightCurlyBracketKeyword_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getSetOfConfigurationsRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "SetOfConfigurations"
+protected class SetOfConfigurations_SetOfConfigurationsKeyword_0 extends KeywordToken  {
+	
+	public SetOfConfigurations_SetOfConfigurationsKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// "{"
+protected class SetOfConfigurations_LeftCurlyBracketKeyword_1 extends KeywordToken  {
+	
+	public SetOfConfigurations_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_SetOfConfigurationsKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "valueConstraint"
+protected class SetOfConfigurations_ValueConstraintKeyword_2 extends KeywordToken  {
+	
+	public SetOfConfigurations_ValueConstraintKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// valueConstraint=[adaptationpoints::OclConstraint|EString]
+protected class SetOfConfigurations_ValueConstraintAssignment_3 extends AssignmentToken  {
+	
+	public SetOfConfigurations_ValueConstraintAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getValueConstraintAssignment_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_ValueConstraintKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("valueConstraint",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("valueConstraint");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintCrossReference_3_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintCrossReference_3_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// ("variants" "(" variants+=[ecore::EObject|EString] ("," variants+=[ecore::EObject|EString])* ")")?
+protected class SetOfConfigurations_Group_4 extends GroupToken {
+	
+	public SetOfConfigurations_Group_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getGroup_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_RightParenthesisKeyword_4_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "variants"
+protected class SetOfConfigurations_VariantsKeyword_4_0 extends KeywordToken  {
+	
+	public SetOfConfigurations_VariantsKeyword_4_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_4_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_ValueConstraintAssignment_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "("
+protected class SetOfConfigurations_LeftParenthesisKeyword_4_1 extends KeywordToken  {
+	
+	public SetOfConfigurations_LeftParenthesisKeyword_4_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_4_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_VariantsKeyword_4_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// variants+=[ecore::EObject|EString]
+protected class SetOfConfigurations_VariantsAssignment_4_2 extends AssignmentToken  {
+	
+	public SetOfConfigurations_VariantsAssignment_4_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_LeftParenthesisKeyword_4_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("variants",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("variants");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_2_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_2_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// ("," variants+=[ecore::EObject|EString])*
+protected class SetOfConfigurations_Group_4_3 extends GroupToken {
+	
+	public SetOfConfigurations_Group_4_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getGroup_4_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_VariantsAssignment_4_3_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// ","
+protected class SetOfConfigurations_CommaKeyword_4_3_0 extends KeywordToken  {
+	
+	public SetOfConfigurations_CommaKeyword_4_3_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_4_3_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_Group_4_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new SetOfConfigurations_VariantsAssignment_4_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// variants+=[ecore::EObject|EString]
+protected class SetOfConfigurations_VariantsAssignment_4_3_1 extends AssignmentToken  {
+	
+	public SetOfConfigurations_VariantsAssignment_4_3_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getVariantsAssignment_4_3_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_CommaKeyword_4_3_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("variants",false)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("variants");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_3_1_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_3_1_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+
+// ")"
+protected class SetOfConfigurations_RightParenthesisKeyword_4_4 extends KeywordToken  {
+	
+	public SetOfConfigurations_RightParenthesisKeyword_4_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_4_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_Group_4_3(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new SetOfConfigurations_VariantsAssignment_4_2(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+// "}"
+protected class SetOfConfigurations_RightCurlyBracketKeyword_5 extends KeywordToken  {
+	
+	public SetOfConfigurations_RightCurlyBracketKeyword_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new SetOfConfigurations_Group_4(lastRuleCallOrigin, this, 0, inst);
+			case 1: return new SetOfConfigurations_ValueConstraintAssignment_3(lastRuleCallOrigin, this, 1, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule SetOfConfigurations ****************/
+
+
+/************ begin Rule OclConstraint ****************
+ *
+ * OclConstraint returns adaptationpoints::OclConstraint:
+ * 	"OclConstraint" "{" "oclString" oclString=EString "}";
+ *
+ **/
+
+// "OclConstraint" "{" "oclString" oclString=EString "}"
+protected class OclConstraint_Group extends GroupToken {
+	
+	public OclConstraint_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getOclConstraintAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new OclConstraint_RightCurlyBracketKeyword_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getOclConstraintRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "OclConstraint"
+protected class OclConstraint_OclConstraintKeyword_0 extends KeywordToken  {
+	
+	public OclConstraint_OclConstraintKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getOclConstraintAccess().getOclConstraintKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// "{"
+protected class OclConstraint_LeftCurlyBracketKeyword_1 extends KeywordToken  {
+	
+	public OclConstraint_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getOclConstraintAccess().getLeftCurlyBracketKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new OclConstraint_OclConstraintKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "oclString"
+protected class OclConstraint_OclStringKeyword_2 extends KeywordToken  {
+	
+	public OclConstraint_OclStringKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getOclConstraintAccess().getOclStringKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new OclConstraint_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// oclString=EString
+protected class OclConstraint_OclStringAssignment_3 extends AssignmentToken  {
+	
+	public OclConstraint_OclStringAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getOclConstraintAccess().getOclStringAssignment_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new OclConstraint_OclStringKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("oclString",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("oclString");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_3_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getOclConstraintAccess().getOclStringEStringParserRuleCall_3_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "}"
+protected class OclConstraint_RightCurlyBracketKeyword_4 extends KeywordToken  {
+	
+	public OclConstraint_RightCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getOclConstraintAccess().getRightCurlyBracketKeyword_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new OclConstraint_OclStringAssignment_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule OclConstraint ****************/
+
+
+/************ begin Rule Objective ****************
+ *
+ * Objective:
+ * 	"Objective" "{" "specification" specification=EString "}";
+ *
+ **/
+
+// "Objective" "{" "specification" specification=EString "}"
+protected class Objective_Group extends GroupToken {
+	
+	public Objective_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getObjectiveAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Objective_RightCurlyBracketKeyword_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getObjectiveRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "Objective"
+protected class Objective_ObjectiveKeyword_0 extends KeywordToken  {
+	
+	public Objective_ObjectiveKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getObjectiveAccess().getObjectiveKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// "{"
+protected class Objective_LeftCurlyBracketKeyword_1 extends KeywordToken  {
+	
+	public Objective_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getObjectiveAccess().getLeftCurlyBracketKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Objective_ObjectiveKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "specification"
+protected class Objective_SpecificationKeyword_2 extends KeywordToken  {
+	
+	public Objective_SpecificationKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getObjectiveAccess().getSpecificationKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Objective_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// specification=EString
+protected class Objective_SpecificationAssignment_3 extends AssignmentToken  {
+	
+	public Objective_SpecificationAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getObjectiveAccess().getSpecificationAssignment_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Objective_SpecificationKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("specification",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("specification");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getObjectiveAccess().getSpecificationEStringParserRuleCall_3_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getObjectiveAccess().getSpecificationEStringParserRuleCall_3_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "}"
+protected class Objective_RightCurlyBracketKeyword_4 extends KeywordToken  {
+	
+	public Objective_RightCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getObjectiveAccess().getRightCurlyBracketKeyword_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Objective_SpecificationAssignment_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Objective ****************/
+
+
+/************ begin Rule Event ****************
+ *
+ * Event:
+ * 	{Event} "Event";
+ *
+ **/
+
+// {Event} "Event"
+protected class Event_Group extends GroupToken {
+	
+	public Event_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getEventAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Event_EventKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getEventAccess().getEventAction_0().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// {Event}
+protected class Event_EventAction_0 extends ActionToken  {
+
+	public Event_EventAction_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Action getGrammarElement() {
+		return grammarAccess.getEventAccess().getEventAction_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(!eObjectConsumer.isConsumed()) return null;
+		return eObjectConsumer;
+	}
+}
+
+// "Event"
+protected class Event_EventKeyword_1 extends KeywordToken  {
+	
+	public Event_EventKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getEventAccess().getEventKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new Event_EventAction_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule Event ****************/
+
+
+/************ begin Rule WeightedTactic ****************
+ *
+ * WeightedTactic:
+ * 	"WeightedTactic" "{" "currentWeight" currentWeight=EDouble "defaultWeight" defaultWeight=EDouble "uses"
+ * 	uses=[Tactic|EString] "}";
+ *
+ **/
+
+// "WeightedTactic" "{" "currentWeight" currentWeight=EDouble "defaultWeight" defaultWeight=EDouble "uses"
+// uses=[Tactic|EString] "}"
+protected class WeightedTactic_Group extends GroupToken {
+	
+	public WeightedTactic_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_RightCurlyBracketKeyword_8(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getWeightedTacticRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "WeightedTactic"
+protected class WeightedTactic_WeightedTacticKeyword_0 extends KeywordToken  {
+	
+	public WeightedTactic_WeightedTacticKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getWeightedTacticKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// "{"
+protected class WeightedTactic_LeftCurlyBracketKeyword_1 extends KeywordToken  {
+	
+	public WeightedTactic_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getLeftCurlyBracketKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_WeightedTacticKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "currentWeight"
+protected class WeightedTactic_CurrentWeightKeyword_2 extends KeywordToken  {
+	
+	public WeightedTactic_CurrentWeightKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getCurrentWeightKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// currentWeight=EDouble
+protected class WeightedTactic_CurrentWeightAssignment_3 extends AssignmentToken  {
+	
+	public WeightedTactic_CurrentWeightAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getCurrentWeightAssignment_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_CurrentWeightKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("currentWeight",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("currentWeight");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_3_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_3_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "defaultWeight"
+protected class WeightedTactic_DefaultWeightKeyword_4 extends KeywordToken  {
+	
+	public WeightedTactic_DefaultWeightKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getDefaultWeightKeyword_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_CurrentWeightAssignment_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// defaultWeight=EDouble
+protected class WeightedTactic_DefaultWeightAssignment_5 extends AssignmentToken  {
+	
+	public WeightedTactic_DefaultWeightAssignment_5(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getDefaultWeightAssignment_5();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_DefaultWeightKeyword_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("defaultWeight",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("defaultWeight");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_5_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_5_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "uses"
+protected class WeightedTactic_UsesKeyword_6 extends KeywordToken  {
+	
+	public WeightedTactic_UsesKeyword_6(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getUsesKeyword_6();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_DefaultWeightAssignment_5(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// uses=[Tactic|EString]
+protected class WeightedTactic_UsesAssignment_7 extends AssignmentToken  {
+	
+	public WeightedTactic_UsesAssignment_7(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getUsesAssignment_7();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_UsesKeyword_6(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("uses",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("uses");
+		if(value instanceof EObject) { // org::eclipse::xtext::impl::CrossReferenceImpl
+			IEObjectConsumer param = createEObjectConsumer((EObject)value);
+			if(param.isInstanceOf(grammarAccess.getWeightedTacticAccess().getUsesTacticCrossReference_7_0().getType().getClassifier())) {
+				type = AssignmentType.CROSS_REFERENCE;
+				element = grammarAccess.getWeightedTacticAccess().getUsesTacticCrossReference_7_0(); 
+				return obj;
+			}
+		}
+		return null;
+	}
+
+}
+
+// "}"
+protected class WeightedTactic_RightCurlyBracketKeyword_8 extends KeywordToken  {
+	
+	public WeightedTactic_RightCurlyBracketKeyword_8(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightedTacticAccess().getRightCurlyBracketKeyword_8();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightedTactic_UsesAssignment_7(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule WeightedTactic ****************/
+
+
+/************ begin Rule WeightingFunction ****************
+ *
+ * WeightingFunction:
+ * 	"WeightingFunction" "{" "function" function=EString "}";
+ *
+ **/
+
+// "WeightingFunction" "{" "function" function=EString "}"
+protected class WeightingFunction_Group extends GroupToken {
+	
+	public WeightingFunction_Group(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Group getGrammarElement() {
+		return grammarAccess.getWeightingFunctionAccess().getGroup();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightingFunction_RightCurlyBracketKeyword_4(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override
+	public IEObjectConsumer tryConsume() {
+		if(getEObject().eClass() != grammarAccess.getWeightingFunctionRule().getType().getClassifier())
+			return null;
+		return eObjectConsumer;
+	}
+
+}
+
+// "WeightingFunction"
+protected class WeightingFunction_WeightingFunctionKeyword_0 extends KeywordToken  {
+	
+	public WeightingFunction_WeightingFunctionKeyword_0(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightingFunctionAccess().getWeightingFunctionKeyword_0();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			default: return lastRuleCallOrigin.createFollowerAfterReturn(this, index, index, inst);
+		}	
+	}
+
+}
+
+// "{"
+protected class WeightingFunction_LeftCurlyBracketKeyword_1 extends KeywordToken  {
+	
+	public WeightingFunction_LeftCurlyBracketKeyword_1(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightingFunctionAccess().getLeftCurlyBracketKeyword_1();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightingFunction_WeightingFunctionKeyword_0(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// "function"
+protected class WeightingFunction_FunctionKeyword_2 extends KeywordToken  {
+	
+	public WeightingFunction_FunctionKeyword_2(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightingFunctionAccess().getFunctionKeyword_2();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightingFunction_LeftCurlyBracketKeyword_1(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+// function=EString
+protected class WeightingFunction_FunctionAssignment_3 extends AssignmentToken  {
+	
+	public WeightingFunction_FunctionAssignment_3(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Assignment getGrammarElement() {
+		return grammarAccess.getWeightingFunctionAccess().getFunctionAssignment_3();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightingFunction_FunctionKeyword_2(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+    @Override	
+	public IEObjectConsumer tryConsume() {
+		if((value = eObjectConsumer.getConsumable("function",true)) == null) return null;
+		IEObjectConsumer obj = eObjectConsumer.cloneAndConsume("function");
+		if(valueSerializer.isValid(obj.getEObject(), grammarAccess.getWeightingFunctionAccess().getFunctionEStringParserRuleCall_3_0(), value, null)) {
+			type = AssignmentType.DATATYPE_RULE_CALL;
+			element = grammarAccess.getWeightingFunctionAccess().getFunctionEStringParserRuleCall_3_0();
+			return obj;
+		}
+		return null;
+	}
+
+}
+
+// "}"
+protected class WeightingFunction_RightCurlyBracketKeyword_4 extends KeywordToken  {
+	
+	public WeightingFunction_RightCurlyBracketKeyword_4(AbstractToken lastRuleCallOrigin, AbstractToken next, int transitionIndex, IEObjectConsumer eObjectConsumer) {
+		super(lastRuleCallOrigin, next, transitionIndex, eObjectConsumer);
+	}
+	
+	@Override
+	public Keyword getGrammarElement() {
+		return grammarAccess.getWeightingFunctionAccess().getRightCurlyBracketKeyword_4();
+	}
+
+    @Override
+	public AbstractToken createFollower(int index, IEObjectConsumer inst) {
+		switch(index) {
+			case 0: return new WeightingFunction_FunctionAssignment_3(lastRuleCallOrigin, this, 0, inst);
+			default: return null;
+		}	
+	}
+
+}
+
+
+/************ end Rule WeightingFunction ****************/
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/StaAdaptationLanguageAntlrTokenFileProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/StaAdaptationLanguageAntlrTokenFileProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..7b528abf0104cce93a535bdd9efbbfb27f305074
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/StaAdaptationLanguageAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class StaAdaptationLanguageAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+	
+	public InputStream getAntlrTokenFile() {
+		ClassLoader classLoader = getClass().getClassLoader();
+    	return classLoader.getResourceAsStream("edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.tokens");
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/StaAdaptationLanguageParser.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/StaAdaptationLanguageParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..9945c1eaeca291cedc36c647a8e3df47d00d1391
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/StaAdaptationLanguageParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package edu.kit.ipd.descartes.mm.adaptation.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import edu.kit.ipd.descartes.mm.adaptation.services.StaAdaptationLanguageGrammarAccess;
+
+public class StaAdaptationLanguageParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+	
+	@Inject
+	private StaAdaptationLanguageGrammarAccess 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.parser.antlr.internal.InternalStaAdaptationLanguageParser createParser(XtextTokenStream stream) {
+		return new edu.kit.ipd.descartes.mm.adaptation.parser.antlr.internal.InternalStaAdaptationLanguageParser(stream, getGrammarAccess());
+	}
+	
+	@Override 
+	protected String getDefaultRuleName() {
+		return "StaRepository";
+	}
+	
+	public StaAdaptationLanguageGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(StaAdaptationLanguageGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+	
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g
new file mode 100644
index 0000000000000000000000000000000000000000..81e99870402461fa49a777f4be1e6bae450525b4
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g
@@ -0,0 +1,2413 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStaAdaptationLanguage;
+
+options {
+	superClass=AbstractInternalAntlrParser;
+	
+}
+
+@lexer::header {
+package edu.kit.ipd.descartes.mm.adaptation.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.parser.antlr.internal; 
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import edu.kit.ipd.descartes.mm.adaptation.services.StaAdaptationLanguageGrammarAccess;
+
+}
+
+@parser::members {
+
+ 	private StaAdaptationLanguageGrammarAccess grammarAccess;
+ 	
+    public InternalStaAdaptationLanguageParser(TokenStream input, StaAdaptationLanguageGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+    
+    @Override
+    protected String getFirstRuleName() {
+    	return "StaRepository";	
+   	}
+   	
+   	@Override
+   	protected StaAdaptationLanguageGrammarAccess getGrammarAccess() {
+   		return grammarAccess;
+   	}
+}
+
+@rulecatch { 
+    catch (RecognitionException re) { 
+        recover(input,re); 
+        appendSkippedTokens();
+    } 
+}
+
+
+
+
+// Entry rule entryRuleStaRepository
+entryRuleStaRepository returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStaRepositoryRule()); }
+	 iv_ruleStaRepository=ruleStaRepository 
+	 { $current=$iv_ruleStaRepository.current; } 
+	 EOF 
+;
+
+// Rule StaRepository
+ruleStaRepository returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='StaRepository' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getStaRepositoryAccess().getStaRepositoryKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getIdEStringParserRuleCall_1_0()); 
+	    }
+		lv_id_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='name' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getStaRepositoryAccess().getNameKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getNameEStringParserRuleCall_4_0()); 
+	    }
+		lv_name_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='tactics' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getStaRepositoryAccess().getTacticsKeyword_5());
+    }
+	otherlv_6='{' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_6());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_7_0()); 
+	    }
+		lv_tactics_7_0=ruleTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_7_0, 
+        		"Tactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_8=',' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getStaRepositoryAccess().getCommaKeyword_8_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_8_1_0()); 
+	    }
+		lv_tactics_9_0=ruleTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_9_0, 
+        		"Tactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_9());
+    }
+	otherlv_11='actions' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getStaRepositoryAccess().getActionsKeyword_10());
+    }
+	otherlv_12='{' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_11());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_12_0()); 
+	    }
+		lv_actions_13_0=ruleAction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		add(
+       			$current, 
+       			"actions",
+        		lv_actions_13_0, 
+        		"Action");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_14=',' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getStaRepositoryAccess().getCommaKeyword_13_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_13_1_0()); 
+	    }
+		lv_actions_15_0=ruleAction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		add(
+       			$current, 
+       			"actions",
+        		lv_actions_15_0, 
+        		"Action");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_16='}' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_14());
+    }
+	otherlv_17='strategies' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getStaRepositoryAccess().getStrategiesKeyword_15());
+    }
+	otherlv_18='{' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_16());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_17_0()); 
+	    }
+		lv_strategies_19_0=ruleStrategy		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		add(
+       			$current, 
+       			"strategies",
+        		lv_strategies_19_0, 
+        		"Strategy");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_20=',' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getStaRepositoryAccess().getCommaKeyword_18_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_18_1_0()); 
+	    }
+		lv_strategies_21_0=ruleStrategy		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		add(
+       			$current, 
+       			"strategies",
+        		lv_strategies_21_0, 
+        		"Strategy");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_22='}' 
+    {
+    	newLeafNode(otherlv_22, grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_19());
+    }
+(	otherlv_23='parameters' 
+    {
+    	newLeafNode(otherlv_23, grammarAccess.getStaRepositoryAccess().getParametersKeyword_20_0());
+    }
+	otherlv_24='{' 
+    {
+    	newLeafNode(otherlv_24, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_20_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_2_0()); 
+	    }
+		lv_parameters_25_0=ruleParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		add(
+       			$current, 
+       			"parameters",
+        		lv_parameters_25_0, 
+        		"Parameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_26=',' 
+    {
+    	newLeafNode(otherlv_26, grammarAccess.getStaRepositoryAccess().getCommaKeyword_20_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_3_1_0()); 
+	    }
+		lv_parameters_27_0=ruleParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+	        }
+       		add(
+       			$current, 
+       			"parameters",
+        		lv_parameters_27_0, 
+        		"Parameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_28='}' 
+    {
+    	newLeafNode(otherlv_28, grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_20_4());
+    }
+)?	otherlv_29='}' 
+    {
+    	newLeafNode(otherlv_29, grammarAccess.getStaRepositoryAccess().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().getStartParserRuleCall_0()); 
+    }
+    this_Start_0=ruleStart
+    { 
+        $current = $this_Start_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getStopParserRuleCall_1()); 
+    }
+    this_Stop_1=ruleStop
+    { 
+        $current = $this_Stop_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getLoopParserRuleCall_2()); 
+    }
+    this_Loop_2=ruleLoop
+    { 
+        $current = $this_Loop_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getBranchParserRuleCall_3()); 
+    }
+    this_Branch_3=ruleBranch
+    { 
+        $current = $this_Branch_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().getIdEStringParserRuleCall_1_0()); 
+	    }
+		lv_id_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='name' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getTacticAccess().getNameKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_4_0()); 
+	    }
+		lv_name_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5='inputParams' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getTacticAccess().getInputParamsKeyword_5_0());
+    }
+	otherlv_6='(' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getTacticAccess().getLeftParenthesisKeyword_5_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_8=',' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getTacticAccess().getCommaKeyword_5_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_10=')' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getTacticAccess().getRightParenthesisKeyword_5_4());
+    }
+)?(	otherlv_11='outputParam' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getTacticAccess().getOutputParamKeyword_6_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_6_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_13='implementedPlan' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getTacticAccess().getImplementedPlanKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_8_0()); 
+	    }
+		lv_implementedPlan_14_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"implementedPlan",
+        		lv_implementedPlan_14_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_15='}' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_9());
+    }
+)
+;
+
+
+
+
+
+// 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().getIdEStringParserRuleCall_1_0()); 
+	    }
+		lv_id_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='name' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getActionAccess().getNameKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getNameEStringParserRuleCall_4_0()); 
+	    }
+		lv_name_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5='outputParam' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getActionAccess().getOutputParamKeyword_5_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_5_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_7='inputParams' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getActionAccess().getInputParamsKeyword_6_0());
+    }
+	otherlv_8='(' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getActionAccess().getLeftParenthesisKeyword_6_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getActionAccess().getCommaKeyword_6_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_12=')' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getActionAccess().getRightParenthesisKeyword_6_4());
+    }
+)?	otherlv_13='referredAdaptationPoint' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_8_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_15='}' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getActionAccess().getRightCurlyBracketKeyword_9());
+    }
+)
+;
+
+
+
+
+
+// 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(); }:
+(	otherlv_0='Strategy' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getStrategyAccess().getStrategyKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_0()); 
+	    }
+		lv_id_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='name' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getStrategyAccess().getNameKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_4_0()); 
+	    }
+		lv_name_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='objective' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getStrategyAccess().getObjectiveKeyword_5());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStrategyRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_6_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_7='triggeringEvents' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getStrategyAccess().getTriggeringEventsKeyword_7_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_7_1_0()); 
+	    }
+		lv_triggeringEvents_8_0=ruleEvent		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"triggeringEvents",
+        		lv_triggeringEvents_8_0, 
+        		"Event");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_9='tactics' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getStrategyAccess().getTacticsKeyword_8());
+    }
+	otherlv_10='{' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_9());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_10_0()); 
+	    }
+		lv_tactics_11_0=ruleWeightedTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_11_0, 
+        		"WeightedTactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_12=',' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getStrategyAccess().getCommaKeyword_11_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_11_1_0()); 
+	    }
+		lv_tactics_13_0=ruleWeightedTactic		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		add(
+       			$current, 
+       			"tactics",
+        		lv_tactics_13_0, 
+        		"WeightedTactic");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_14='}' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_12());
+    }
+	otherlv_15='weightingFunction' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_13());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_14_0()); 
+	    }
+		lv_weightingFunction_16_0=ruleWeightingFunction		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStrategyRule());
+	        }
+       		set(
+       			$current, 
+       			"weightingFunction",
+        		lv_weightingFunction_16_0, 
+        		"WeightingFunction");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_17='}' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_15());
+    }
+)
+;
+
+
+
+
+
+// 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(); }:
+(	otherlv_0='Parameter' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getParameterAccess().getParameterKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='type' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getParameterAccess().getTypeKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_4_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().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// 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(); }:
+(	otherlv_0='AdaptationPlan' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getAdaptationPlanAccess().getAdaptationPlanKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_0()); 
+	    }
+		lv_id_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='name' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getAdaptationPlanAccess().getNameKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_4_0()); 
+	    }
+		lv_name_4_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_4_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5='steps' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getAdaptationPlanAccess().getStepsKeyword_5_0());
+    }
+	otherlv_6='{' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_5_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_2_0()); 
+	    }
+		lv_steps_7_0=ruleAbstractControlFlowElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		add(
+       			$current, 
+       			"steps",
+        		lv_steps_7_0, 
+        		"AbstractControlFlowElement");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_8=',' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getAdaptationPlanAccess().getCommaKeyword_5_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_3_1_0()); 
+	    }
+		lv_steps_9_0=ruleAbstractControlFlowElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+	        }
+       		add(
+       			$current, 
+       			"steps",
+        		lv_steps_9_0, 
+        		"AbstractControlFlowElement");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_5_4());
+    }
+)?	otherlv_11='}' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStart
+entryRuleStart returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStartRule()); }
+	 iv_ruleStart=ruleStart 
+	 { $current=$iv_ruleStart.current; } 
+	 EOF 
+;
+
+// Rule Start
+ruleStart returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getStartAccess().getStartAction_0(),
+            $current);
+    }
+)	otherlv_1='Start' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getStartAccess().getStartKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStartAccess().getLeftCurlyBracketKeyword_2());
+    }
+(	otherlv_3='predecessor' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getStartAccess().getPredecessorKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStartRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_5='successor' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getStartAccess().getSuccessorKeyword_4_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStartRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_7='}' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getStartAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleStop
+entryRuleStop returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStopRule()); }
+	 iv_ruleStop=ruleStop 
+	 { $current=$iv_ruleStop.current; } 
+	 EOF 
+;
+
+// Rule Stop
+ruleStop returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getStopAccess().getStopAction_0(),
+            $current);
+    }
+)	otherlv_1='Stop' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getStopAccess().getStopKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStopAccess().getLeftCurlyBracketKeyword_2());
+    }
+(	otherlv_3='predecessor' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getStopAccess().getPredecessorKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStopRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_5='successor' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getStopAccess().getSuccessorKeyword_4_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStopRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_7='}' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getStopAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLoop
+entryRuleLoop returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getLoopRule()); }
+	 iv_ruleLoop=ruleLoop 
+	 { $current=$iv_ruleLoop.current; } 
+	 EOF 
+;
+
+// Rule Loop
+ruleLoop returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='Loop' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getLoopAccess().getLoopKeyword_0());
+    }
+	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getLoopAccess().getLeftCurlyBracketKeyword_1());
+    }
+	otherlv_2='counter' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getLoopAccess().getCounterKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getLoopAccess().getCounterEIntParserRuleCall_3_0()); 
+	    }
+		lv_counter_3_0=ruleEInt		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getLoopRule());
+	        }
+       		set(
+       			$current, 
+       			"counter",
+        		lv_counter_3_0, 
+        		"EInt");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4='predecessor' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getLoopAccess().getPredecessorKeyword_4_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getLoopRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementCrossReference_4_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_6='successor' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getLoopAccess().getSuccessorKeyword_5_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getLoopRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementCrossReference_5_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_8='body' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getLoopAccess().getBodyKeyword_6());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getLoopAccess().getBodyAdaptationPlanParserRuleCall_7_0()); 
+	    }
+		lv_body_9_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getLoopRule());
+	        }
+       		set(
+       			$current, 
+       			"body",
+        		lv_body_9_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getLoopAccess().getRightCurlyBracketKeyword_8());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBranch
+entryRuleBranch returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getBranchRule()); }
+	 iv_ruleBranch=ruleBranch 
+	 { $current=$iv_ruleBranch.current; } 
+	 EOF 
+;
+
+// Rule Branch
+ruleBranch returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='Branch' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getBranchAccess().getBranchKeyword_0());
+    }
+	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_1());
+    }
+(	otherlv_2='condition' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getBranchAccess().getConditionKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchAccess().getConditionEStringParserRuleCall_2_1_0()); 
+	    }
+		lv_condition_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchRule());
+	        }
+       		set(
+       			$current, 
+       			"condition",
+        		lv_condition_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_4='predecessor' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getBranchAccess().getPredecessorKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getBranchRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_6='successor' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getBranchAccess().getSuccessorKeyword_4_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getBranchRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_8='branches' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getBranchAccess().getBranchesKeyword_5());
+    }
+	otherlv_9='{' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_6());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_7_0()); 
+	    }
+		lv_branches_10_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchRule());
+	        }
+       		add(
+       			$current, 
+       			"branches",
+        		lv_branches_10_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_11=',' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getBranchAccess().getCommaKeyword_8_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_8_1_0()); 
+	    }
+		lv_branches_12_0=ruleAdaptationPlan		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBranchRule());
+	        }
+       		add(
+       			$current, 
+       			"branches",
+        		lv_branches_12_0, 
+        		"AdaptationPlan");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_13='}' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_9());
+    }
+	otherlv_14='}' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_10());
+    }
+)
+;
+
+
+
+
+
+// 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='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getActionReferenceAccess().getLeftCurlyBracketKeyword_1());
+    }
+(	otherlv_2='predecessor' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getActionReferenceAccess().getPredecessorKeyword_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionReferenceRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementCrossReference_2_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_4='successor' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getActionReferenceAccess().getSuccessorKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionReferenceRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementCrossReference_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_6='refersTo' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getActionReferenceAccess().getRefersToKeyword_4());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionReferenceRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_5_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='}' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getActionReferenceAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleEInt
+entryRuleEInt returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getEIntRule()); } 
+	 iv_ruleEInt=ruleEInt 
+	 { $current=$iv_ruleEInt.current.getText(); }  
+	 EOF 
+;
+
+// Rule EInt
+ruleEInt returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+	kw='-' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); 
+    }
+)?    this_INT_1=RULE_INT    {
+		$current.merge(this_INT_1);
+    }
+
+    { 
+    newLeafNode(this_INT_1, grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); 
+    }
+)
+    ;
+
+
+
+
+
+// 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());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); 
+	    }
+		lv_id_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='minValue' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_4_0()); 
+	    }
+		lv_minValue_4_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"minValue",
+        		lv_minValue_4_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='maxValue' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_6_0()); 
+	    }
+		lv_maxValue_6_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"maxValue",
+        		lv_maxValue_6_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7='adaptableEntity' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_7());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getModelVariableConfigurationRangeRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_8_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='}' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_9());
+    }
+)
+;
+
+
+
+
+
+// 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());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); 
+	    }
+		lv_id_1_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+       		set(
+       			$current, 
+       			"id",
+        		lv_id_1_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+    }
+(	otherlv_3='entity' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getModelEntityConfigurationRangeAccess().getEntityKeyword_3_0());
+    }
+	otherlv_4='(' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getModelEntityConfigurationRangeAccess().getLeftParenthesisKeyword_3_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_6=',' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getModelEntityConfigurationRangeAccess().getCommaKeyword_3_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getModelEntityConfigurationRangeRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_8=')' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getModelEntityConfigurationRangeAccess().getRightParenthesisKeyword_3_4());
+    }
+)?	otherlv_9='variationPossibility' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_5_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_6());
+    }
+)
+;
+
+
+
+
+
+// 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());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getPropertyRangeRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintCrossReference_3_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4='maxValueConstraint' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getPropertyRangeRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintCrossReference_5_0()); 
+	    }
+		ruleEString		{ 
+	        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='valueConstraint' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintCrossReference_3_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4='variants' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_4_0());
+    }
+	otherlv_5='(' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_4_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_2_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_7=',' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_4_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_3_1_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_9=')' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_4_4());
+    }
+)?	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+
+
+
+
+// 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(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getEventAccess().getEventAction_0(),
+            $current);
+    }
+)	otherlv_1='Event' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getEventAccess().getEventKeyword_1());
+    }
+)
+;
+
+
+
+
+
+// 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(); }:
+(	otherlv_0='WeightedTactic' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getWeightedTacticAccess().getWeightedTacticKeyword_0());
+    }
+	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getWeightedTacticAccess().getLeftCurlyBracketKeyword_1());
+    }
+	otherlv_2='currentWeight' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getWeightedTacticAccess().getCurrentWeightKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_3_0()); 
+	    }
+		lv_currentWeight_3_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"currentWeight",
+        		lv_currentWeight_3_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4='defaultWeight' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getWeightedTacticAccess().getDefaultWeightKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_5_0()); 
+	    }
+		lv_defaultWeight_5_0=ruleEDouble		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+	        }
+       		set(
+       			$current, 
+       			"defaultWeight",
+        		lv_defaultWeight_5_0, 
+        		"EDouble");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_6='uses' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getWeightedTacticAccess().getUsesKeyword_6());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getWeightedTacticRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getUsesTacticCrossReference_7_0()); 
+	    }
+		ruleEString		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='}' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getWeightedTacticAccess().getRightCurlyBracketKeyword_8());
+    }
+)
+;
+
+
+
+
+
+// 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(); }:
+(	otherlv_0='WeightingFunction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getWeightingFunctionAccess().getWeightingFunctionKeyword_0());
+    }
+	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getWeightingFunctionAccess().getLeftCurlyBracketKeyword_1());
+    }
+	otherlv_2='function' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getWeightingFunctionAccess().getFunctionKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getFunctionEStringParserRuleCall_3_0()); 
+	    }
+		lv_function_3_0=ruleEString		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+	        }
+       		set(
+       			$current, 
+       			"function",
+        		lv_function_3_0, 
+        		"EString");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getWeightingFunctionAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+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/parser/antlr/internal/InternalStaAdaptationLanguage.tokens b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.tokens
new file mode 100644
index 0000000000000000000000000000000000000000..f90d9af2414b331acf293c192e889e3a080f75d3
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.tokens
@@ -0,0 +1,129 @@
+T__68=68
+T__69=69
+RULE_ID=5
+T__66=66
+T__67=67
+T__64=64
+T__29=29
+T__65=65
+T__28=28
+T__62=62
+T__27=27
+T__63=63
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=10
+T__21=21
+T__20=20
+T__61=61
+T__60=60
+T__55=55
+T__56=56
+T__19=19
+T__57=57
+T__58=58
+T__51=51
+T__16=16
+T__52=52
+T__15=15
+T__53=53
+T__18=18
+T__54=54
+T__17=17
+T__12=12
+T__11=11
+T__14=14
+T__13=13
+T__59=59
+RULE_INT=6
+T__50=50
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__47=47
+T__44=44
+T__45=45
+T__48=48
+T__49=49
+RULE_SL_COMMENT=8
+RULE_ML_COMMENT=7
+T__30=30
+T__31=31
+RULE_STRING=4
+T__32=32
+T__71=71
+T__33=33
+T__34=34
+T__35=35
+T__70=70
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+RULE_WS=9
+'counter'=41
+'type'=33
+'Event'=65
+'AdaptationPlan'=34
+'e'=58
+'weightingFunction'=31
+'maxValue'=51
+'uses'=69
+'minValueConstraint'=60
+'inputParams'=21
+'body'=42
+'function'=71
+'defaultWeight'=68
+'currentWeight'=67
+'.'=56
+'adaptableEntity'=52
+'SetOfConfigurations'=62
+'condition'=44
+'referredAdaptationPoint'=27
+'{'=12
+'Branch'=43
+'entity'=54
+'WeightingFunction'=70
+'('=22
+'-'=48
+'tactics'=14
+','=15
+'Stop'=39
+'Start'=36
+'implementedPlan'=25
+'ActionReference'=46
+'refersTo'=47
+'branches'=45
+'variationPossibility'=55
+'valueConstraint'=63
+'Loop'=40
+'ModelVariableConfigurationRange'=49
+'steps'=35
+'Tactic'=20
+'ModelEntityConfigurationRange'=53
+'successor'=38
+'Strategy'=28
+')'=23
+'strategies'=18
+'triggeringEvents'=30
+'StaRepository'=11
+'}'=16
+'parameters'=19
+'minValue'=50
+'objective'=29
+'actions'=17
+'maxValueConstraint'=61
+'predecessor'=37
+'WeightedTactic'=66
+'Parameter'=32
+'Action'=26
+'PropertyRange'=59
+'outputParam'=24
+'name'=13
+'E'=57
+'variants'=64
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguageLexer.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguageLexer.java
new file mode 100644
index 0000000000000000000000000000000000000000..1c8ec609d8af67cd96b7a87c7612bd625af04ddc
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguageLexer.java
@@ -0,0 +1,3271 @@
+package edu.kit.ipd.descartes.mm.adaptation.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 InternalStaAdaptationLanguageLexer extends Lexer {
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int RULE_ID=5;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__29=29;
+    public static final int T__64=64;
+    public static final int T__28=28;
+    public static final int T__65=65;
+    public static final int T__27=27;
+    public static final int T__62=62;
+    public static final int T__26=26;
+    public static final int T__63=63;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int T__61=61;
+    public static final int EOF=-1;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__16=16;
+    public static final int T__52=52;
+    public static final int T__15=15;
+    public static final int T__53=53;
+    public static final int T__18=18;
+    public static final int T__54=54;
+    public static final int T__17=17;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__59=59;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int RULE_STRING=4;
+    public static final int T__33=33;
+    public static final int T__71=71;
+    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__70=70;
+    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 InternalStaAdaptationLanguageLexer() {;} 
+    public InternalStaAdaptationLanguageLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalStaAdaptationLanguageLexer(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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.g:11:7: ( 'StaRepository' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:11:9: 'StaRepository'
+            {
+            match("StaRepository"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:12:7: ( '{' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:12:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__12"
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:13:7: ( 'name' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:13:9: 'name'
+            {
+            match("name"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:14:7: ( 'tactics' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:14:9: 'tactics'
+            {
+            match("tactics"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:15:7: ( ',' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:15:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:16:7: ( '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.g:17:7: ( 'actions' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:17:9: 'actions'
+            {
+            match("actions"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:18:7: ( 'strategies' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:18:9: 'strategies'
+            {
+            match("strategies"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:19:7: ( 'parameters' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:19:9: 'parameters'
+            {
+            match("parameters"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:20:7: ( 'Tactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:20:9: 'Tactic'
+            {
+            match("Tactic"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:21:7: ( 'inputParams' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:21:9: 'inputParams'
+            {
+            match("inputParams"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:22:7: ( '(' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.g:23:7: ( ')' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.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/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:24:7: ( 'outputParam' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:24:9: 'outputParam'
+            {
+            match("outputParam"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:25:7: ( 'implementedPlan' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:25:9: 'implementedPlan'
+            {
+            match("implementedPlan"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:26:7: ( 'Action' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:26:9: 'Action'
+            {
+            match("Action"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:27:7: ( 'referredAdaptationPoint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:27:9: 'referredAdaptationPoint'
+            {
+            match("referredAdaptationPoint"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:28:7: ( 'Strategy' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:28:9: 'Strategy'
+            {
+            match("Strategy"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:29:7: ( 'objective' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:29:9: 'objective'
+            {
+            match("objective"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:30:7: ( 'triggeringEvents' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:30:9: 'triggeringEvents'
+            {
+            match("triggeringEvents"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:31:7: ( 'weightingFunction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:31:9: 'weightingFunction'
+            {
+            match("weightingFunction"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:32:7: ( 'Parameter' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:32:9: 'Parameter'
+            {
+            match("Parameter"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:33:7: ( 'type' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:33:9: 'type'
+            {
+            match("type"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:34:7: ( 'AdaptationPlan' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:34:9: 'AdaptationPlan'
+            {
+            match("AdaptationPlan"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:35:7: ( 'steps' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:35:9: 'steps'
+            {
+            match("steps"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:36:7: ( 'Start' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:36:9: 'Start'
+            {
+            match("Start"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:37:7: ( 'predecessor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:37:9: 'predecessor'
+            {
+            match("predecessor"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:38:7: ( 'successor' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:38:9: 'successor'
+            {
+            match("successor"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:39:7: ( 'Stop' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:39:9: 'Stop'
+            {
+            match("Stop"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:40:7: ( 'Loop' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:40:9: 'Loop'
+            {
+            match("Loop"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:41:7: ( 'counter' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:41:9: 'counter'
+            {
+            match("counter"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:42:7: ( 'body' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:42:9: 'body'
+            {
+            match("body"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:43:7: ( 'Branch' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:43:9: 'Branch'
+            {
+            match("Branch"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:44:7: ( 'condition' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:44:9: 'condition'
+            {
+            match("condition"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:45:7: ( 'branches' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:45:9: 'branches'
+            {
+            match("branches"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:46:7: ( 'ActionReference' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:46:9: 'ActionReference'
+            {
+            match("ActionReference"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:47:7: ( 'refersTo' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:47:9: 'refersTo'
+            {
+            match("refersTo"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:48:7: ( '-' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:48:9: '-'
+            {
+            match('-'); 
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:49:7: ( 'ModelVariableConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:49:9: 'ModelVariableConfigurationRange'
+            {
+            match("ModelVariableConfigurationRange"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:50:7: ( 'minValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:50:9: 'minValue'
+            {
+            match("minValue"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:51:7: ( 'maxValue' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:51:9: 'maxValue'
+            {
+            match("maxValue"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:52:7: ( 'adaptableEntity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:52:9: 'adaptableEntity'
+            {
+            match("adaptableEntity"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:53:7: ( 'ModelEntityConfigurationRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:53:9: 'ModelEntityConfigurationRange'
+            {
+            match("ModelEntityConfigurationRange"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:54:7: ( 'entity' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:54:9: 'entity'
+            {
+            match("entity"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:55:7: ( 'variationPossibility' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:55:9: 'variationPossibility'
+            {
+            match("variationPossibility"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:56:7: ( '.' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:56:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:57:7: ( 'E' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:57:9: 'E'
+            {
+            match('E'); 
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:58:7: ( 'e' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:58:9: 'e'
+            {
+            match('e'); 
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:59:7: ( 'PropertyRange' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:59:9: 'PropertyRange'
+            {
+            match("PropertyRange"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:60:7: ( 'minValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:60:9: 'minValueConstraint'
+            {
+            match("minValueConstraint"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:61:7: ( 'maxValueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:61:9: 'maxValueConstraint'
+            {
+            match("maxValueConstraint"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:62:7: ( 'SetOfConfigurations' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:62:9: 'SetOfConfigurations'
+            {
+            match("SetOfConfigurations"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:63:7: ( 'valueConstraint' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:63:9: 'valueConstraint'
+            {
+            match("valueConstraint"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:64:7: ( 'variants' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:64:9: 'variants'
+            {
+            match("variants"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:65:7: ( 'Event' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:65:9: 'Event'
+            {
+            match("Event"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:66:7: ( 'WeightedTactic' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:66:9: 'WeightedTactic'
+            {
+            match("WeightedTactic"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:67:7: ( 'currentWeight' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:67:9: 'currentWeight'
+            {
+            match("currentWeight"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:68:7: ( 'defaultWeight' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:68:9: 'defaultWeight'
+            {
+            match("defaultWeight"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:69:7: ( 'uses' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:69:9: 'uses'
+            {
+            match("uses"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:70:7: ( 'WeightingFunction' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:70:9: 'WeightingFunction'
+            {
+            match("WeightingFunction"); 
+
+
+            }
+
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:71:7: ( 'function' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:71:9: 'function'
+            {
+            match("function"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__71"
+
+    // $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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2399: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2399: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2399: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2399: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2399: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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2401:10: ( ( '0' .. '9' )+ )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2401:12: ( '0' .. '9' )+
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2401: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2401: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2403: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2405:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2405:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2405: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2405: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2407:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2407:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2407: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2407: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2407: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2407:41: ( '\\r' )? '\\n'
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2407: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2407: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2409:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2409:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2409: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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2411:16: ( . )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2411: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/parser/antlr/internal/InternalStaAdaptationLanguage.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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=68;
+        alt12 = dfa12.predict(input);
+        switch (alt12) {
+            case 1 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1:376: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 63 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1:384: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 64 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1:393: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 65 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1:405: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 66 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1:421: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 67 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1:437: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 68 :
+                // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1:445: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String DFA12_eotS =
+        "\1\uffff\1\54\1\uffff\2\54\2\uffff\5\54\2\uffff\11\54\1\uffff\2"+
+        "\54\1\122\1\54\1\uffff\1\126\4\54\1\51\2\uffff\3\51\2\uffff\2\54"+
+        "\2\uffff\4\54\2\uffff\11\54\2\uffff\16\54\1\uffff\4\54\1\uffff\1"+
+        "\54\1\uffff\1\54\1\uffff\4\54\5\uffff\57\54\1\u00bc\1\54\1\u00be"+
+        "\2\54\1\u00c1\22\54\1\u00d4\3\54\1\u00d8\13\54\1\u00e4\2\54\1\u00e7"+
+        "\1\54\1\uffff\1\54\1\uffff\2\54\1\uffff\3\54\1\u00ef\16\54\1\uffff"+
+        "\3\54\1\uffff\10\54\1\u010c\2\54\1\uffff\2\54\1\uffff\7\54\1\uffff"+
+        "\3\54\1\u011b\4\54\1\u0121\12\54\1\u012c\4\54\1\u0131\3\54\1\uffff"+
+        "\6\54\1\u013c\1\54\1\u013e\5\54\1\uffff\5\54\1\uffff\6\54\1\u014f"+
+        "\3\54\1\uffff\4\54\1\uffff\10\54\1\u015f\1\54\1\uffff\1\54\1\uffff"+
+        "\14\54\1\u016e\3\54\1\uffff\2\54\1\u0174\2\54\1\u0178\1\u017a\1"+
+        "\54\1\u017c\4\54\1\u0181\1\54\1\uffff\4\54\1\u0187\5\54\1\u018d"+
+        "\3\54\1\uffff\1\54\1\u0192\1\54\1\u0194\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\1\uffff\1\54\1\uffff\4\54\1\uffff\4\54\1\u01a3\1\uffff\1\u01a4"+
+        "\4\54\1\uffff\4\54\1\uffff\1\54\1\uffff\16\54\2\uffff\1\u01bc\1"+
+        "\u01bd\1\54\1\u01bf\23\54\2\uffff\1\54\1\uffff\17\54\1\u01e3\10"+
+        "\54\1\u01ec\1\u01ed\10\54\1\u01f6\1\uffff\5\54\1\u01fc\2\54\2\uffff"+
+        "\6\54\1\u0205\1\54\1\uffff\2\54\1\u0209\1\u020a\1\u020b\1\uffff"+
+        "\7\54\1\u0213\1\uffff\2\54\1\u0216\3\uffff\7\54\1\uffff\2\54\1\uffff"+
+        "\1\54\1\u0221\5\54\1\u0227\2\54\1\uffff\2\54\1\u022c\1\u022d\1\54"+
+        "\1\uffff\1\u022f\3\54\2\uffff\1\54\1\uffff\3\54\1\u0237\3\54\1\uffff"+
+        "\3\54\1\u023e\2\54\1\uffff\13\54\1\u024c\1\54\1\uffff\1\u024e\1"+
+        "\uffff";
+    static final String DFA12_eofS =
+        "\u024f\uffff";
+    static final String DFA12_minS =
+        "\1\0\1\145\1\uffff\2\141\2\uffff\1\143\1\164\2\141\1\155\2\uffff"+
+        "\1\142\1\143\2\145\1\141\3\157\1\162\1\uffff\1\157\1\141\1\60\1"+
+        "\141\1\uffff\1\60\2\145\1\163\1\165\1\101\2\uffff\2\0\1\52\2\uffff"+
+        "\1\141\1\164\2\uffff\1\155\1\143\1\151\1\160\2\uffff\1\164\1\141"+
+        "\1\145\1\143\1\162\1\145\1\143\2\160\2\uffff\1\164\1\152\1\164\1"+
+        "\141\1\146\1\151\1\162\2\157\1\156\1\162\1\144\2\141\1\uffff\1\144"+
+        "\1\156\1\170\1\164\1\uffff\1\154\1\uffff\1\145\1\uffff\1\151\1\146"+
+        "\1\145\1\156\5\uffff\1\122\1\141\1\160\1\117\1\145\1\164\1\147\1"+
+        "\145\1\151\1\160\1\141\1\160\1\143\1\141\1\144\1\164\1\165\1\154"+
+        "\1\160\1\145\1\151\1\160\1\145\1\147\1\141\2\160\1\156\1\144\1\162"+
+        "\1\171\2\156\1\145\2\126\2\151\1\165\1\156\1\147\1\141\1\163\1\143"+
+        "\1\145\2\164\1\60\1\146\1\60\1\151\1\147\1\60\1\157\2\164\1\163"+
+        "\1\145\1\155\1\145\1\151\1\164\1\145\1\165\1\143\1\157\1\164\1\162"+
+        "\1\150\1\155\1\145\1\60\1\164\1\151\1\145\1\60\2\143\1\154\2\141"+
+        "\1\164\1\141\1\145\1\164\1\150\1\165\1\60\1\164\1\160\1\60\1\145"+
+        "\1\uffff\1\103\1\uffff\1\143\1\145\1\uffff\1\156\1\141\1\145\1\60"+
+        "\1\163\1\145\2\143\1\120\1\155\2\164\1\156\1\141\1\162\1\164\1\145"+
+        "\1\162\1\uffff\1\145\1\164\1\156\1\uffff\2\150\1\105\2\154\1\171"+
+        "\1\156\1\103\1\60\1\164\1\154\1\uffff\1\151\1\157\1\uffff\1\147"+
+        "\1\157\1\163\1\162\1\163\1\142\1\147\1\uffff\1\163\1\164\1\145\1"+
+        "\60\1\141\1\145\1\120\1\151\1\60\1\164\1\145\1\124\1\151\2\164\1"+
+        "\162\1\151\1\164\1\145\1\60\1\141\1\156\2\165\1\60\1\151\1\164\1"+
+        "\157\1\uffff\1\145\1\164\1\157\1\163\1\171\1\156\1\60\1\151\1\60"+
+        "\1\154\1\151\1\157\1\145\1\163\1\uffff\1\162\1\156\1\141\1\166\1"+
+        "\145\1\uffff\1\151\1\144\1\157\1\156\1\145\1\171\1\60\1\157\1\127"+
+        "\1\163\1\uffff\1\162\1\164\2\145\1\uffff\1\157\1\163\1\156\1\144"+
+        "\1\156\1\127\1\156\1\151\1\60\1\146\1\uffff\1\156\1\uffff\2\145"+
+        "\2\162\1\163\1\141\1\164\1\162\1\145\1\146\1\157\1\101\1\60\1\147"+
+        "\1\162\1\122\1\uffff\1\156\1\145\1\60\2\151\2\60\1\156\1\60\1\163"+
+        "\1\124\1\147\1\145\1\60\1\164\1\uffff\1\151\1\147\1\105\1\163\1"+
+        "\60\1\163\1\157\1\155\1\145\1\141\1\60\1\145\1\156\1\144\1\uffff"+
+        "\1\106\1\60\1\141\1\60\1\151\1\uffff\1\141\1\164\1\157\1\uffff\1"+
+        "\157\1\uffff\1\120\1\uffff\1\164\1\141\1\106\1\151\1\uffff\1\157"+
+        "\1\147\1\105\1\156\1\60\1\uffff\1\60\1\162\1\163\1\144\1\155\1\uffff"+
+        "\1\162\1\120\1\141\1\165\1\uffff\1\156\1\uffff\1\147\1\142\1\171"+
+        "\2\156\1\157\1\162\1\143\1\165\1\147\1\162\1\165\1\166\1\164\2\uffff"+
+        "\2\60\1\120\1\60\1\145\1\154\1\160\1\156\1\147\1\150\1\154\1\103"+
+        "\3\163\1\141\1\164\1\156\1\150\1\171\1\162\1\145\1\151\2\uffff\1"+
+        "\154\1\uffff\1\156\1\141\1\164\1\143\1\145\1\164\1\145\1\157\2\164"+
+        "\1\163\2\151\1\143\1\164\1\60\1\141\1\156\1\164\1\141\1\143\1\156"+
+        "\1\141\1\164\2\60\1\103\1\156\2\162\1\151\1\156\1\143\1\164\1\60"+
+        "\1\uffff\2\164\1\171\1\156\1\145\1\60\1\164\1\151\2\uffff\1\157"+
+        "\1\146\2\141\1\142\1\164\1\60\1\151\1\uffff\1\151\1\163\3\60\1\uffff"+
+        "\1\151\1\157\1\156\4\151\1\60\1\uffff\2\157\1\60\3\uffff\1\157\1"+
+        "\156\1\146\1\147\2\156\1\154\1\uffff\2\156\1\uffff\1\156\1\60\1"+
+        "\151\1\165\2\164\1\151\1\60\1\163\1\120\1\uffff\1\147\1\162\2\60"+
+        "\1\164\1\uffff\1\60\1\157\1\165\1\141\2\uffff\1\171\1\uffff\1\151"+
+        "\1\162\1\164\1\60\1\156\1\141\1\151\1\uffff\2\164\1\157\1\60\1\151"+
+        "\1\156\1\uffff\1\157\1\122\1\156\1\141\1\122\1\156\1\141\1\147\1"+
+        "\156\1\145\1\147\1\60\1\145\1\uffff\1\60\1\uffff";
+    static final String DFA12_maxS =
+        "\1\uffff\1\164\1\uffff\1\141\1\171\2\uffff\1\144\1\165\1\162\1\141"+
+        "\1\156\2\uffff\1\165\1\144\2\145\1\162\1\157\1\165\2\162\1\uffff"+
+        "\1\157\1\151\1\172\1\141\1\uffff\1\172\2\145\1\163\1\165\1\172\2"+
+        "\uffff\2\uffff\1\57\2\uffff\1\162\1\164\2\uffff\1\155\1\143\1\151"+
+        "\1\160\2\uffff\1\164\1\141\1\162\1\143\1\162\1\145\1\143\2\160\2"+
+        "\uffff\1\164\1\152\1\164\1\141\1\146\1\151\1\162\2\157\1\165\1\162"+
+        "\1\144\2\141\1\uffff\1\144\1\156\1\170\1\164\1\uffff\1\162\1\uffff"+
+        "\1\145\1\uffff\1\151\1\146\1\145\1\156\5\uffff\1\162\1\141\1\160"+
+        "\1\117\1\145\1\164\1\147\1\145\1\151\1\160\1\141\1\160\1\143\1\141"+
+        "\1\144\1\164\1\165\1\154\1\160\1\145\1\151\1\160\1\145\1\147\1\141"+
+        "\2\160\1\156\1\144\1\162\1\171\2\156\1\145\2\126\2\151\1\165\1\156"+
+        "\1\147\1\141\1\163\1\143\1\145\2\164\1\172\1\146\1\172\1\151\1\147"+
+        "\1\172\1\157\2\164\1\163\1\145\1\155\1\145\1\151\1\164\1\145\1\165"+
+        "\1\143\1\157\1\164\1\162\1\150\1\155\1\145\1\172\1\164\1\151\1\145"+
+        "\1\172\2\143\1\154\2\141\1\164\1\141\1\145\1\164\1\150\1\165\1\172"+
+        "\1\164\1\160\1\172\1\145\1\uffff\1\103\1\uffff\1\143\1\145\1\uffff"+
+        "\1\156\1\141\1\145\1\172\1\163\1\145\2\143\1\120\1\155\2\164\1\156"+
+        "\1\141\1\163\1\164\1\145\1\162\1\uffff\1\145\1\164\1\156\1\uffff"+
+        "\2\150\1\126\2\154\1\171\1\164\1\103\1\172\1\164\1\154\1\uffff\1"+
+        "\151\1\157\1\uffff\1\147\1\157\1\163\1\162\1\163\1\142\1\147\1\uffff"+
+        "\1\163\1\164\1\145\1\172\1\141\1\145\1\120\1\151\1\172\1\164\1\145"+
+        "\1\124\1\151\2\164\1\162\1\151\1\164\1\145\1\172\1\141\1\156\2\165"+
+        "\1\172\1\151\1\164\1\157\1\uffff\1\151\1\164\1\157\1\163\1\171\1"+
+        "\156\1\172\1\151\1\172\1\154\1\151\1\157\1\145\1\163\1\uffff\1\162"+
+        "\1\156\1\141\1\166\1\145\1\uffff\1\151\1\144\1\157\1\156\1\145\1"+
+        "\171\1\172\1\157\1\127\1\163\1\uffff\1\162\1\164\2\145\1\uffff\1"+
+        "\157\1\163\1\156\1\144\1\156\1\127\1\156\1\151\1\172\1\146\1\uffff"+
+        "\1\156\1\uffff\2\145\2\162\1\163\1\141\1\164\1\162\1\145\1\146\1"+
+        "\157\1\101\1\172\1\147\1\162\1\122\1\uffff\1\156\1\145\1\172\2\151"+
+        "\2\172\1\156\1\172\1\163\1\124\1\147\1\145\1\172\1\164\1\uffff\1"+
+        "\151\1\147\1\105\1\163\1\172\1\163\1\157\1\155\1\145\1\141\1\172"+
+        "\1\145\1\156\1\144\1\uffff\1\106\1\172\1\141\1\172\1\151\1\uffff"+
+        "\1\141\1\164\1\157\1\uffff\1\157\1\uffff\1\120\1\uffff\1\164\1\141"+
+        "\1\106\1\151\1\uffff\1\157\1\147\1\105\1\156\1\172\1\uffff\1\172"+
+        "\1\162\1\163\1\144\1\155\1\uffff\1\162\1\120\1\141\1\165\1\uffff"+
+        "\1\156\1\uffff\1\147\1\142\1\171\2\156\1\157\1\162\1\143\1\165\1"+
+        "\147\1\162\1\165\1\166\1\164\2\uffff\2\172\1\120\1\172\1\145\1\154"+
+        "\1\160\1\156\1\147\1\150\1\154\1\103\3\163\1\141\1\164\1\156\1\150"+
+        "\1\171\1\162\1\145\1\151\2\uffff\1\154\1\uffff\1\156\1\141\1\164"+
+        "\1\143\1\145\1\164\1\145\1\157\2\164\1\163\2\151\1\143\1\164\1\172"+
+        "\1\141\1\156\1\164\1\141\1\143\1\156\1\141\1\164\2\172\1\103\1\156"+
+        "\2\162\1\151\1\156\1\143\1\164\1\172\1\uffff\2\164\1\171\1\156\1"+
+        "\145\1\172\1\164\1\151\2\uffff\1\157\1\146\2\141\1\142\1\164\1\172"+
+        "\1\151\1\uffff\1\151\1\163\3\172\1\uffff\1\151\1\157\1\156\4\151"+
+        "\1\172\1\uffff\2\157\1\172\3\uffff\1\157\1\156\1\146\1\147\2\156"+
+        "\1\154\1\uffff\2\156\1\uffff\1\156\1\172\1\151\1\165\2\164\1\151"+
+        "\1\172\1\163\1\120\1\uffff\1\147\1\162\2\172\1\164\1\uffff\1\172"+
+        "\1\157\1\165\1\141\2\uffff\1\171\1\uffff\1\151\1\162\1\164\1\172"+
+        "\1\156\1\141\1\151\1\uffff\2\164\1\157\1\172\1\151\1\156\1\uffff"+
+        "\1\157\1\122\1\156\1\141\1\122\1\156\1\141\1\147\1\156\1\145\1\147"+
+        "\1\172\1\145\1\uffff\1\172\1\uffff";
+    static final String DFA12_acceptS =
+        "\2\uffff\1\2\2\uffff\1\5\1\6\5\uffff\1\14\1\15\11\uffff\1\46\4\uffff"+
+        "\1\56\6\uffff\1\76\1\77\3\uffff\1\103\1\104\2\uffff\1\76\1\2\4\uffff"+
+        "\1\5\1\6\11\uffff\1\14\1\15\16\uffff\1\46\4\uffff\1\60\1\uffff\1"+
+        "\56\1\uffff\1\57\4\uffff\1\77\1\100\1\101\1\102\1\103\134\uffff"+
+        "\1\35\1\uffff\1\3\2\uffff\1\27\22\uffff\1\36\3\uffff\1\40\13\uffff"+
+        "\1\73\2\uffff\1\32\7\uffff\1\31\34\uffff\1\67\16\uffff\1\12\5\uffff"+
+        "\1\20\12\uffff\1\41\4\uffff\1\54\12\uffff\1\4\1\uffff\1\7\20\uffff"+
+        "\1\37\17\uffff\1\22\16\uffff\1\45\5\uffff\1\43\3\uffff\1\50\1\uffff"+
+        "\1\51\1\uffff\1\66\4\uffff\1\75\5\uffff\1\34\5\uffff\1\23\4\uffff"+
+        "\1\26\1\uffff\1\42\16\uffff\1\10\1\11\27\uffff\1\33\1\13\1\uffff"+
+        "\1\16\43\uffff\1\1\10\uffff\1\61\1\71\10\uffff\1\72\5\uffff\1\30"+
+        "\10\uffff\1\70\3\uffff\1\52\1\17\1\44\7\uffff\1\65\2\uffff\1\24"+
+        "\12\uffff\1\25\5\uffff\1\74\4\uffff\1\62\1\63\1\uffff\1\64\7\uffff"+
+        "\1\55\6\uffff\1\21\15\uffff\1\53\1\uffff\1\47";
+    static final String DFA12_specialS =
+        "\1\2\44\uffff\1\1\1\0\u0228\uffff}>";
+    static final String[] DFA12_transitionS = {
+            "\11\51\2\50\2\51\1\50\22\51\1\50\1\51\1\45\4\51\1\46\1\14\1"+
+            "\15\2\51\1\5\1\27\1\34\1\47\12\44\7\51\1\17\1\26\2\43\1\35\6"+
+            "\43\1\23\1\30\2\43\1\22\2\43\1\1\1\12\2\43\1\36\3\43\3\51\1"+
+            "\42\1\43\1\51\1\7\1\25\1\24\1\37\1\32\1\41\2\43\1\13\3\43\1"+
+            "\31\1\3\1\16\1\11\1\43\1\20\1\10\1\4\1\40\1\33\1\21\3\43\1\2"+
+            "\1\51\1\6\uff82\51",
+            "\1\53\16\uffff\1\52",
+            "",
+            "\1\56",
+            "\1\57\20\uffff\1\60\6\uffff\1\61",
+            "",
+            "",
+            "\1\64\1\65",
+            "\1\66\1\67",
+            "\1\70\20\uffff\1\71",
+            "\1\72",
+            "\1\74\1\73",
+            "",
+            "",
+            "\1\100\22\uffff\1\77",
+            "\1\101\1\102",
+            "\1\103",
+            "\1\104",
+            "\1\105\20\uffff\1\106",
+            "\1\107",
+            "\1\110\5\uffff\1\111",
+            "\1\112\2\uffff\1\113",
+            "\1\114",
+            "",
+            "\1\116",
+            "\1\120\7\uffff\1\117",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\15\54\1\121\14\54",
+            "\1\123",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\25\54\1\125\4\54",
+            "\1\127",
+            "\1\130",
+            "\1\131",
+            "\1\132",
+            "\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "",
+            "\0\134",
+            "\0\134",
+            "\1\135\4\uffff\1\136",
+            "",
+            "",
+            "\1\140\15\uffff\1\142\2\uffff\1\141",
+            "\1\143",
+            "",
+            "",
+            "\1\144",
+            "\1\145",
+            "\1\146",
+            "\1\147",
+            "",
+            "",
+            "\1\150",
+            "\1\151",
+            "\1\153\14\uffff\1\152",
+            "\1\154",
+            "\1\155",
+            "\1\156",
+            "\1\157",
+            "\1\160",
+            "\1\161",
+            "",
+            "",
+            "\1\162",
+            "\1\163",
+            "\1\164",
+            "\1\165",
+            "\1\166",
+            "\1\167",
+            "\1\170",
+            "\1\171",
+            "\1\172",
+            "\1\174\6\uffff\1\173",
+            "\1\175",
+            "\1\176",
+            "\1\177",
+            "\1\u0080",
+            "",
+            "\1\u0081",
+            "\1\u0082",
+            "\1\u0083",
+            "\1\u0084",
+            "",
+            "\1\u0086\5\uffff\1\u0085",
+            "",
+            "\1\u0087",
+            "",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a",
+            "\1\u008b",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u008c\37\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",
+            "\1\u00a7",
+            "\1\u00a8",
+            "\1\u00a9",
+            "\1\u00aa",
+            "\1\u00ab",
+            "\1\u00ac",
+            "\1\u00ad",
+            "\1\u00ae",
+            "\1\u00af",
+            "\1\u00b0",
+            "\1\u00b1",
+            "\1\u00b2",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9",
+            "\1\u00ba",
+            "\1\u00bb",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00bd",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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",
+            "\1\u00d3",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00d5",
+            "\1\u00d6",
+            "\1\u00d7",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00d9",
+            "\1\u00da",
+            "\1\u00db",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u00e8",
+            "",
+            "\1\u00e9",
+            "",
+            "\1\u00ea",
+            "\1\u00eb",
+            "",
+            "\1\u00ec",
+            "\1\u00ed",
+            "\1\u00ee",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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\u0105\20\uffff\1\u0104",
+            "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\u010a\5\uffff\1\u0109",
+            "\1\u010b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u010d",
+            "\1\u010e",
+            "",
+            "\1\u010f",
+            "\1\u0110",
+            "",
+            "\1\u0111",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "\1\u0117",
+            "",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011a",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u011c",
+            "\1\u011d",
+            "\1\u011e",
+            "\1\u011f",
+            "\12\54\7\uffff\21\54\1\u0120\10\54\4\uffff\1\54\1\uffff\32"+
+            "\54",
+            "\1\u0122",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "\1\u012a",
+            "\1\u012b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u012d",
+            "\1\u012e",
+            "\1\u012f",
+            "\1\u0130",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0132",
+            "\1\u0133",
+            "\1\u0134",
+            "",
+            "\1\u0135\3\uffff\1\u0136",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\u0139",
+            "\1\u013a",
+            "\1\u013b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u013d",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u013f",
+            "\1\u0140",
+            "\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\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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\u016d",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u016f",
+            "\1\u0170",
+            "\1\u0171",
+            "",
+            "\1\u0172",
+            "\1\u0173",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0175",
+            "\1\u0176",
+            "\12\54\7\uffff\2\54\1\u0177\27\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\2\54\1\u0179\27\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u017b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u017d",
+            "\1\u017e",
+            "\1\u017f",
+            "\1\u0180",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0182",
+            "",
+            "\1\u0183",
+            "\1\u0184",
+            "\1\u0185",
+            "\1\u0186",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0188",
+            "\1\u0189",
+            "\1\u018a",
+            "\1\u018b",
+            "\1\u018c",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u018e",
+            "\1\u018f",
+            "\1\u0190",
+            "",
+            "\1\u0191",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0193",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0195",
+            "",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "",
+            "\1\u0199",
+            "",
+            "\1\u019a",
+            "",
+            "\1\u019b",
+            "\1\u019c",
+            "\1\u019d",
+            "\1\u019e",
+            "",
+            "\1\u019f",
+            "\1\u01a0",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\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",
+            "\1\u01bb",
+            "",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01be",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01c0",
+            "\1\u01c1",
+            "\1\u01c2",
+            "\1\u01c3",
+            "\1\u01c4",
+            "\1\u01c5",
+            "\1\u01c6",
+            "\1\u01c7",
+            "\1\u01c8",
+            "\1\u01c9",
+            "\1\u01ca",
+            "\1\u01cb",
+            "\1\u01cc",
+            "\1\u01cd",
+            "\1\u01ce",
+            "\1\u01cf",
+            "\1\u01d0",
+            "\1\u01d1",
+            "\1\u01d2",
+            "",
+            "",
+            "\1\u01d3",
+            "",
+            "\1\u01d4",
+            "\1\u01d5",
+            "\1\u01d6",
+            "\1\u01d7",
+            "\1\u01d8",
+            "\1\u01d9",
+            "\1\u01da",
+            "\1\u01db",
+            "\1\u01dc",
+            "\1\u01dd",
+            "\1\u01de",
+            "\1\u01df",
+            "\1\u01e0",
+            "\1\u01e1",
+            "\1\u01e2",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01e4",
+            "\1\u01e5",
+            "\1\u01e6",
+            "\1\u01e7",
+            "\1\u01e8",
+            "\1\u01e9",
+            "\1\u01ea",
+            "\1\u01eb",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01ee",
+            "\1\u01ef",
+            "\1\u01f0",
+            "\1\u01f1",
+            "\1\u01f2",
+            "\1\u01f3",
+            "\1\u01f4",
+            "\1\u01f5",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "\1\u01f7",
+            "\1\u01f8",
+            "\1\u01f9",
+            "\1\u01fa",
+            "\1\u01fb",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u01fd",
+            "\1\u01fe",
+            "",
+            "",
+            "\1\u01ff",
+            "\1\u0200",
+            "\1\u0201",
+            "\1\u0202",
+            "\1\u0203",
+            "\1\u0204",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0206",
+            "",
+            "\1\u0207",
+            "\1\u0208",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "\1\u020c",
+            "\1\u020d",
+            "\1\u020e",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\u0211",
+            "\1\u0212",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "\1\u0214",
+            "\1\u0215",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "",
+            "",
+            "",
+            "\1\u0217",
+            "\1\u0218",
+            "\1\u0219",
+            "\1\u021a",
+            "\1\u021b",
+            "\1\u021c",
+            "\1\u021d",
+            "",
+            "\1\u021e",
+            "\1\u021f",
+            "",
+            "\1\u0220",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0222",
+            "\1\u0223",
+            "\1\u0224",
+            "\1\u0225",
+            "\1\u0226",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0228",
+            "\1\u0229",
+            "",
+            "\1\u022a",
+            "\1\u022b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u022e",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0230",
+            "\1\u0231",
+            "\1\u0232",
+            "",
+            "",
+            "\1\u0233",
+            "",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\u0236",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u0238",
+            "\1\u0239",
+            "\1\u023a",
+            "",
+            "\1\u023b",
+            "\1\u023c",
+            "\1\u023d",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u023f",
+            "\1\u0240",
+            "",
+            "\1\u0241",
+            "\1\u0242",
+            "\1\u0243",
+            "\1\u0244",
+            "\1\u0245",
+            "\1\u0246",
+            "\1\u0247",
+            "\1\u0248",
+            "\1\u0249",
+            "\1\u024a",
+            "\1\u024b",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            "\1\u024d",
+            "",
+            "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+            ""
+    };
+
+    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 | 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_38 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_38>='\u0000' && LA12_38<='\uFFFF')) ) {s = 92;}
+
+                        else s = 41;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA12_37 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_37>='\u0000' && LA12_37<='\uFFFF')) ) {s = 92;}
+
+                        else s = 41;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA12_0=='S') ) {s = 1;}
+
+                        else if ( (LA12_0=='{') ) {s = 2;}
+
+                        else if ( (LA12_0=='n') ) {s = 3;}
+
+                        else if ( (LA12_0=='t') ) {s = 4;}
+
+                        else if ( (LA12_0==',') ) {s = 5;}
+
+                        else if ( (LA12_0=='}') ) {s = 6;}
+
+                        else if ( (LA12_0=='a') ) {s = 7;}
+
+                        else if ( (LA12_0=='s') ) {s = 8;}
+
+                        else if ( (LA12_0=='p') ) {s = 9;}
+
+                        else if ( (LA12_0=='T') ) {s = 10;}
+
+                        else if ( (LA12_0=='i') ) {s = 11;}
+
+                        else if ( (LA12_0=='(') ) {s = 12;}
+
+                        else if ( (LA12_0==')') ) {s = 13;}
+
+                        else if ( (LA12_0=='o') ) {s = 14;}
+
+                        else if ( (LA12_0=='A') ) {s = 15;}
+
+                        else if ( (LA12_0=='r') ) {s = 16;}
+
+                        else if ( (LA12_0=='w') ) {s = 17;}
+
+                        else if ( (LA12_0=='P') ) {s = 18;}
+
+                        else if ( (LA12_0=='L') ) {s = 19;}
+
+                        else if ( (LA12_0=='c') ) {s = 20;}
+
+                        else if ( (LA12_0=='b') ) {s = 21;}
+
+                        else if ( (LA12_0=='B') ) {s = 22;}
+
+                        else if ( (LA12_0=='-') ) {s = 23;}
+
+                        else if ( (LA12_0=='M') ) {s = 24;}
+
+                        else if ( (LA12_0=='m') ) {s = 25;}
+
+                        else if ( (LA12_0=='e') ) {s = 26;}
+
+                        else if ( (LA12_0=='v') ) {s = 27;}
+
+                        else if ( (LA12_0=='.') ) {s = 28;}
+
+                        else if ( (LA12_0=='E') ) {s = 29;}
+
+                        else if ( (LA12_0=='W') ) {s = 30;}
+
+                        else if ( (LA12_0=='d') ) {s = 31;}
+
+                        else if ( (LA12_0=='u') ) {s = 32;}
+
+                        else if ( (LA12_0=='f') ) {s = 33;}
+
+                        else if ( (LA12_0=='^') ) {s = 34;}
+
+                        else if ( ((LA12_0>='C' && LA12_0<='D')||(LA12_0>='F' && LA12_0<='K')||(LA12_0>='N' && LA12_0<='O')||(LA12_0>='Q' && LA12_0<='R')||(LA12_0>='U' && LA12_0<='V')||(LA12_0>='X' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='g' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='l')||LA12_0=='q'||(LA12_0>='x' && LA12_0<='z')) ) {s = 35;}
+
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 36;}
+
+                        else if ( (LA12_0=='\"') ) {s = 37;}
+
+                        else if ( (LA12_0=='\'') ) {s = 38;}
+
+                        else if ( (LA12_0=='/') ) {s = 39;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 40;}
+
+                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='*' && LA12_0<='+')||(LA12_0>=':' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 41;}
+
+                        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/parser/antlr/internal/InternalStaAdaptationLanguageParser.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguageParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e90cc760bbc13d6a6794f82e183f9177f9c1539
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguageParser.java
@@ -0,0 +1,5864 @@
+package edu.kit.ipd.descartes.mm.adaptation.parser.antlr.internal; 
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import edu.kit.ipd.descartes.mm.adaptation.services.StaAdaptationLanguageGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStaAdaptationLanguageParser 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", "'StaRepository'", "'{'", "'name'", "'tactics'", "','", "'}'", "'actions'", "'strategies'", "'parameters'", "'Tactic'", "'inputParams'", "'('", "')'", "'outputParam'", "'implementedPlan'", "'Action'", "'referredAdaptationPoint'", "'Strategy'", "'objective'", "'triggeringEvents'", "'weightingFunction'", "'Parameter'", "'type'", "'AdaptationPlan'", "'steps'", "'Start'", "'predecessor'", "'successor'", "'Stop'", "'Loop'", "'counter'", "'body'", "'Branch'", "'condition'", "'branches'", "'ActionReference'", "'refersTo'", "'-'", "'ModelVariableConfigurationRange'", "'minValue'", "'maxValue'", "'adaptableEntity'", "'ModelEntityConfigurationRange'", "'entity'", "'variationPossibility'", "'.'", "'E'", "'e'", "'PropertyRange'", "'minValueConstraint'", "'maxValueConstraint'", "'SetOfConfigurations'", "'valueConstraint'", "'variants'", "'Event'", "'WeightedTactic'", "'currentWeight'", "'defaultWeight'", "'uses'", "'WeightingFunction'", "'function'"
+    };
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int RULE_ID=5;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__29=29;
+    public static final int T__65=65;
+    public static final int T__28=28;
+    public static final int T__62=62;
+    public static final int T__27=27;
+    public static final int T__63=63;
+    public static final int T__26=26;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int EOF=-1;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__16=16;
+    public static final int T__52=52;
+    public static final int T__15=15;
+    public static final int T__53=53;
+    public static final int T__18=18;
+    public static final int T__54=54;
+    public static final int T__17=17;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__59=59;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int RULE_STRING=4;
+    public static final int T__32=32;
+    public static final int T__71=71;
+    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__70=70;
+    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 InternalStaAdaptationLanguageParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalStaAdaptationLanguageParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalStaAdaptationLanguageParser.tokenNames; }
+    public String getGrammarFileName() { return "../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g"; }
+
+
+
+     	private StaAdaptationLanguageGrammarAccess grammarAccess;
+     	
+        public InternalStaAdaptationLanguageParser(TokenStream input, StaAdaptationLanguageGrammarAccess grammarAccess) {
+            this(input);
+            this.grammarAccess = grammarAccess;
+            registerRules(grammarAccess.getGrammar());
+        }
+        
+        @Override
+        protected String getFirstRuleName() {
+        	return "StaRepository";	
+       	}
+       	
+       	@Override
+       	protected StaAdaptationLanguageGrammarAccess getGrammarAccess() {
+       		return grammarAccess;
+       	}
+
+
+
+    // $ANTLR start "entryRuleStaRepository"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:67:1: entryRuleStaRepository returns [EObject current=null] : iv_ruleStaRepository= ruleStaRepository EOF ;
+    public final EObject entryRuleStaRepository() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStaRepository = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:68:2: (iv_ruleStaRepository= ruleStaRepository EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:69:2: iv_ruleStaRepository= ruleStaRepository EOF
+            {
+             newCompositeNode(grammarAccess.getStaRepositoryRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStaRepository_in_entryRuleStaRepository75);
+            iv_ruleStaRepository=ruleStaRepository();
+
+            state._fsp--;
+
+             current =iv_ruleStaRepository; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStaRepository85); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStaRepository"
+
+
+    // $ANTLR start "ruleStaRepository"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:76:1: ruleStaRepository returns [EObject current=null] : (otherlv_0= 'StaRepository' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'tactics' otherlv_6= '{' ( (lv_tactics_7_0= ruleTactic ) ) (otherlv_8= ',' ( (lv_tactics_9_0= ruleTactic ) ) )* otherlv_10= '}' otherlv_11= 'actions' otherlv_12= '{' ( (lv_actions_13_0= ruleAction ) ) (otherlv_14= ',' ( (lv_actions_15_0= ruleAction ) ) )* otherlv_16= '}' otherlv_17= 'strategies' otherlv_18= '{' ( (lv_strategies_19_0= ruleStrategy ) ) (otherlv_20= ',' ( (lv_strategies_21_0= ruleStrategy ) ) )* otherlv_22= '}' (otherlv_23= 'parameters' otherlv_24= '{' ( (lv_parameters_25_0= ruleParameter ) ) (otherlv_26= ',' ( (lv_parameters_27_0= ruleParameter ) ) )* otherlv_28= '}' )? otherlv_29= '}' ) ;
+    public final EObject ruleStaRepository() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token otherlv_14=null;
+        Token otherlv_16=null;
+        Token otherlv_17=null;
+        Token otherlv_18=null;
+        Token otherlv_20=null;
+        Token otherlv_22=null;
+        Token otherlv_23=null;
+        Token otherlv_24=null;
+        Token otherlv_26=null;
+        Token otherlv_28=null;
+        Token otherlv_29=null;
+        AntlrDatatypeRuleToken lv_id_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_4_0 = null;
+
+        EObject lv_tactics_7_0 = null;
+
+        EObject lv_tactics_9_0 = null;
+
+        EObject lv_actions_13_0 = null;
+
+        EObject lv_actions_15_0 = null;
+
+        EObject lv_strategies_19_0 = null;
+
+        EObject lv_strategies_21_0 = null;
+
+        EObject lv_parameters_25_0 = null;
+
+        EObject lv_parameters_27_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:79:28: ( (otherlv_0= 'StaRepository' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'tactics' otherlv_6= '{' ( (lv_tactics_7_0= ruleTactic ) ) (otherlv_8= ',' ( (lv_tactics_9_0= ruleTactic ) ) )* otherlv_10= '}' otherlv_11= 'actions' otherlv_12= '{' ( (lv_actions_13_0= ruleAction ) ) (otherlv_14= ',' ( (lv_actions_15_0= ruleAction ) ) )* otherlv_16= '}' otherlv_17= 'strategies' otherlv_18= '{' ( (lv_strategies_19_0= ruleStrategy ) ) (otherlv_20= ',' ( (lv_strategies_21_0= ruleStrategy ) ) )* otherlv_22= '}' (otherlv_23= 'parameters' otherlv_24= '{' ( (lv_parameters_25_0= ruleParameter ) ) (otherlv_26= ',' ( (lv_parameters_27_0= ruleParameter ) ) )* otherlv_28= '}' )? otherlv_29= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:80:1: (otherlv_0= 'StaRepository' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'tactics' otherlv_6= '{' ( (lv_tactics_7_0= ruleTactic ) ) (otherlv_8= ',' ( (lv_tactics_9_0= ruleTactic ) ) )* otherlv_10= '}' otherlv_11= 'actions' otherlv_12= '{' ( (lv_actions_13_0= ruleAction ) ) (otherlv_14= ',' ( (lv_actions_15_0= ruleAction ) ) )* otherlv_16= '}' otherlv_17= 'strategies' otherlv_18= '{' ( (lv_strategies_19_0= ruleStrategy ) ) (otherlv_20= ',' ( (lv_strategies_21_0= ruleStrategy ) ) )* otherlv_22= '}' (otherlv_23= 'parameters' otherlv_24= '{' ( (lv_parameters_25_0= ruleParameter ) ) (otherlv_26= ',' ( (lv_parameters_27_0= ruleParameter ) ) )* otherlv_28= '}' )? otherlv_29= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:80:1: (otherlv_0= 'StaRepository' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'tactics' otherlv_6= '{' ( (lv_tactics_7_0= ruleTactic ) ) (otherlv_8= ',' ( (lv_tactics_9_0= ruleTactic ) ) )* otherlv_10= '}' otherlv_11= 'actions' otherlv_12= '{' ( (lv_actions_13_0= ruleAction ) ) (otherlv_14= ',' ( (lv_actions_15_0= ruleAction ) ) )* otherlv_16= '}' otherlv_17= 'strategies' otherlv_18= '{' ( (lv_strategies_19_0= ruleStrategy ) ) (otherlv_20= ',' ( (lv_strategies_21_0= ruleStrategy ) ) )* otherlv_22= '}' (otherlv_23= 'parameters' otherlv_24= '{' ( (lv_parameters_25_0= ruleParameter ) ) (otherlv_26= ',' ( (lv_parameters_27_0= ruleParameter ) ) )* otherlv_28= '}' )? otherlv_29= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:80:3: otherlv_0= 'StaRepository' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'tactics' otherlv_6= '{' ( (lv_tactics_7_0= ruleTactic ) ) (otherlv_8= ',' ( (lv_tactics_9_0= ruleTactic ) ) )* otherlv_10= '}' otherlv_11= 'actions' otherlv_12= '{' ( (lv_actions_13_0= ruleAction ) ) (otherlv_14= ',' ( (lv_actions_15_0= ruleAction ) ) )* otherlv_16= '}' otherlv_17= 'strategies' otherlv_18= '{' ( (lv_strategies_19_0= ruleStrategy ) ) (otherlv_20= ',' ( (lv_strategies_21_0= ruleStrategy ) ) )* otherlv_22= '}' (otherlv_23= 'parameters' otherlv_24= '{' ( (lv_parameters_25_0= ruleParameter ) ) (otherlv_26= ',' ( (lv_parameters_27_0= ruleParameter ) ) )* otherlv_28= '}' )? otherlv_29= '}'
+            {
+            otherlv_0=(Token)match(input,11,FollowSets000.FOLLOW_11_in_ruleStaRepository122); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getStaRepositoryAccess().getStaRepositoryKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:84:1: ( (lv_id_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:85:1: (lv_id_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:85:1: (lv_id_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:86:3: lv_id_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getIdEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStaRepository143);
+            lv_id_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"id",
+                    		lv_id_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStaRepository155); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleStaRepository167); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getStaRepositoryAccess().getNameKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:110:1: ( (lv_name_4_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:111:1: (lv_name_4_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:111:1: (lv_name_4_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:112:3: lv_name_4_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getNameEStringParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStaRepository188);
+            lv_name_4_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_4_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleStaRepository200); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getStaRepositoryAccess().getTacticsKeyword_5());
+                
+            otherlv_6=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStaRepository212); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_6());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:136:1: ( (lv_tactics_7_0= ruleTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:137:1: (lv_tactics_7_0= ruleTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:137:1: (lv_tactics_7_0= ruleTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:138:3: lv_tactics_7_0= ruleTactic
+            {
+             
+            	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_7_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleTactic_in_ruleStaRepository233);
+            lv_tactics_7_0=ruleTactic();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"tactics",
+                    		lv_tactics_7_0, 
+                    		"Tactic");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:154:2: (otherlv_8= ',' ( (lv_tactics_9_0= ruleTactic ) ) )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==15) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:154:4: otherlv_8= ',' ( (lv_tactics_9_0= ruleTactic ) )
+            	    {
+            	    otherlv_8=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleStaRepository246); 
+
+            	        	newLeafNode(otherlv_8, grammarAccess.getStaRepositoryAccess().getCommaKeyword_8_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:158:1: ( (lv_tactics_9_0= ruleTactic ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:159:1: (lv_tactics_9_0= ruleTactic )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:159:1: (lv_tactics_9_0= ruleTactic )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:160:3: lv_tactics_9_0= ruleTactic
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getTacticsTacticParserRuleCall_8_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleTactic_in_ruleStaRepository267);
+            	    lv_tactics_9_0=ruleTactic();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"tactics",
+            	            		lv_tactics_9_0, 
+            	            		"Tactic");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+            otherlv_10=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleStaRepository281); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_9());
+                
+            otherlv_11=(Token)match(input,17,FollowSets000.FOLLOW_17_in_ruleStaRepository293); 
+
+                	newLeafNode(otherlv_11, grammarAccess.getStaRepositoryAccess().getActionsKeyword_10());
+                
+            otherlv_12=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStaRepository305); 
+
+                	newLeafNode(otherlv_12, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_11());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:188:1: ( (lv_actions_13_0= ruleAction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:189:1: (lv_actions_13_0= ruleAction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:189:1: (lv_actions_13_0= ruleAction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:190:3: lv_actions_13_0= ruleAction
+            {
+             
+            	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_12_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAction_in_ruleStaRepository326);
+            lv_actions_13_0=ruleAction();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"actions",
+                    		lv_actions_13_0, 
+                    		"Action");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:206:2: (otherlv_14= ',' ( (lv_actions_15_0= ruleAction ) ) )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0==15) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:206:4: otherlv_14= ',' ( (lv_actions_15_0= ruleAction ) )
+            	    {
+            	    otherlv_14=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleStaRepository339); 
+
+            	        	newLeafNode(otherlv_14, grammarAccess.getStaRepositoryAccess().getCommaKeyword_13_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:210:1: ( (lv_actions_15_0= ruleAction ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:211:1: (lv_actions_15_0= ruleAction )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:211:1: (lv_actions_15_0= ruleAction )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:212:3: lv_actions_15_0= ruleAction
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getActionsActionParserRuleCall_13_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleAction_in_ruleStaRepository360);
+            	    lv_actions_15_0=ruleAction();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"actions",
+            	            		lv_actions_15_0, 
+            	            		"Action");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+            otherlv_16=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleStaRepository374); 
+
+                	newLeafNode(otherlv_16, grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_14());
+                
+            otherlv_17=(Token)match(input,18,FollowSets000.FOLLOW_18_in_ruleStaRepository386); 
+
+                	newLeafNode(otherlv_17, grammarAccess.getStaRepositoryAccess().getStrategiesKeyword_15());
+                
+            otherlv_18=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStaRepository398); 
+
+                	newLeafNode(otherlv_18, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_16());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:240:1: ( (lv_strategies_19_0= ruleStrategy ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:241:1: (lv_strategies_19_0= ruleStrategy )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:241:1: (lv_strategies_19_0= ruleStrategy )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:242:3: lv_strategies_19_0= ruleStrategy
+            {
+             
+            	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_17_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleStrategy_in_ruleStaRepository419);
+            lv_strategies_19_0=ruleStrategy();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"strategies",
+                    		lv_strategies_19_0, 
+                    		"Strategy");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:258:2: (otherlv_20= ',' ( (lv_strategies_21_0= ruleStrategy ) ) )*
+            loop3:
+            do {
+                int alt3=2;
+                int LA3_0 = input.LA(1);
+
+                if ( (LA3_0==15) ) {
+                    alt3=1;
+                }
+
+
+                switch (alt3) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:258:4: otherlv_20= ',' ( (lv_strategies_21_0= ruleStrategy ) )
+            	    {
+            	    otherlv_20=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleStaRepository432); 
+
+            	        	newLeafNode(otherlv_20, grammarAccess.getStaRepositoryAccess().getCommaKeyword_18_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:262:1: ( (lv_strategies_21_0= ruleStrategy ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:263:1: (lv_strategies_21_0= ruleStrategy )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:263:1: (lv_strategies_21_0= ruleStrategy )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:264:3: lv_strategies_21_0= ruleStrategy
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getStrategiesStrategyParserRuleCall_18_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleStrategy_in_ruleStaRepository453);
+            	    lv_strategies_21_0=ruleStrategy();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"strategies",
+            	            		lv_strategies_21_0, 
+            	            		"Strategy");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop3;
+                }
+            } while (true);
+
+            otherlv_22=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleStaRepository467); 
+
+                	newLeafNode(otherlv_22, grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_19());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:284:1: (otherlv_23= 'parameters' otherlv_24= '{' ( (lv_parameters_25_0= ruleParameter ) ) (otherlv_26= ',' ( (lv_parameters_27_0= ruleParameter ) ) )* otherlv_28= '}' )?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==19) ) {
+                alt5=1;
+            }
+            switch (alt5) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:284:3: otherlv_23= 'parameters' otherlv_24= '{' ( (lv_parameters_25_0= ruleParameter ) ) (otherlv_26= ',' ( (lv_parameters_27_0= ruleParameter ) ) )* otherlv_28= '}'
+                    {
+                    otherlv_23=(Token)match(input,19,FollowSets000.FOLLOW_19_in_ruleStaRepository480); 
+
+                        	newLeafNode(otherlv_23, grammarAccess.getStaRepositoryAccess().getParametersKeyword_20_0());
+                        
+                    otherlv_24=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStaRepository492); 
+
+                        	newLeafNode(otherlv_24, grammarAccess.getStaRepositoryAccess().getLeftCurlyBracketKeyword_20_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:292:1: ( (lv_parameters_25_0= ruleParameter ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:293:1: (lv_parameters_25_0= ruleParameter )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:293:1: (lv_parameters_25_0= ruleParameter )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:294:3: lv_parameters_25_0= ruleParameter
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleParameter_in_ruleStaRepository513);
+                    lv_parameters_25_0=ruleParameter();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"parameters",
+                            		lv_parameters_25_0, 
+                            		"Parameter");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:310:2: (otherlv_26= ',' ( (lv_parameters_27_0= ruleParameter ) ) )*
+                    loop4:
+                    do {
+                        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/parser/antlr/internal/InternalStaAdaptationLanguage.g:310:4: otherlv_26= ',' ( (lv_parameters_27_0= ruleParameter ) )
+                    	    {
+                    	    otherlv_26=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleStaRepository526); 
+
+                    	        	newLeafNode(otherlv_26, grammarAccess.getStaRepositoryAccess().getCommaKeyword_20_3_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:314:1: ( (lv_parameters_27_0= ruleParameter ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:315:1: (lv_parameters_27_0= ruleParameter )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:315:1: (lv_parameters_27_0= ruleParameter )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:316:3: lv_parameters_27_0= ruleParameter
+                    	    {
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getStaRepositoryAccess().getParametersParameterParserRuleCall_20_3_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleParameter_in_ruleStaRepository547);
+                    	    lv_parameters_27_0=ruleParameter();
+
+                    	    state._fsp--;
+
+
+                    	    	        if (current==null) {
+                    	    	            current = createModelElementForParent(grammarAccess.getStaRepositoryRule());
+                    	    	        }
+                    	           		add(
+                    	           			current, 
+                    	           			"parameters",
+                    	            		lv_parameters_27_0, 
+                    	            		"Parameter");
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop4;
+                        }
+                    } while (true);
+
+                    otherlv_28=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleStaRepository561); 
+
+                        	newLeafNode(otherlv_28, grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_20_4());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_29=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleStaRepository575); 
+
+                	newLeafNode(otherlv_29, grammarAccess.getStaRepositoryAccess().getRightCurlyBracketKeyword_21());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStaRepository"
+
+
+    // $ANTLR start "entryRuleAbstractControlFlowElement"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:350: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:351:2: (iv_ruleAbstractControlFlowElement= ruleAbstractControlFlowElement EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:352:2: iv_ruleAbstractControlFlowElement= ruleAbstractControlFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getAbstractControlFlowElementRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAbstractControlFlowElement_in_entryRuleAbstractControlFlowElement613);
+            iv_ruleAbstractControlFlowElement=ruleAbstractControlFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleAbstractControlFlowElement; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAbstractControlFlowElement623); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:359:1: ruleAbstractControlFlowElement returns [EObject current=null] : (this_Start_0= ruleStart | this_Stop_1= ruleStop | this_Loop_2= ruleLoop | this_Branch_3= ruleBranch | this_ActionReference_4= ruleActionReference ) ;
+    public final EObject ruleAbstractControlFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_Start_0 = null;
+
+        EObject this_Stop_1 = null;
+
+        EObject this_Loop_2 = null;
+
+        EObject this_Branch_3 = null;
+
+        EObject this_ActionReference_4 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:362:28: ( (this_Start_0= ruleStart | this_Stop_1= ruleStop | this_Loop_2= ruleLoop | this_Branch_3= ruleBranch | this_ActionReference_4= ruleActionReference ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:363:1: (this_Start_0= ruleStart | this_Stop_1= ruleStop | this_Loop_2= ruleLoop | this_Branch_3= ruleBranch | this_ActionReference_4= ruleActionReference )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:363:1: (this_Start_0= ruleStart | this_Stop_1= ruleStop | this_Loop_2= ruleLoop | this_Branch_3= ruleBranch | this_ActionReference_4= ruleActionReference )
+            int alt6=5;
+            switch ( input.LA(1) ) {
+            case 36:
+                {
+                alt6=1;
+                }
+                break;
+            case 39:
+                {
+                alt6=2;
+                }
+                break;
+            case 40:
+                {
+                alt6=3;
+                }
+                break;
+            case 43:
+                {
+                alt6=4;
+                }
+                break;
+            case 46:
+                {
+                alt6=5;
+                }
+                break;
+            default:
+                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/parser/antlr/internal/InternalStaAdaptationLanguage.g:364:5: this_Start_0= ruleStart
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getStartParserRuleCall_0()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleStart_in_ruleAbstractControlFlowElement670);
+                    this_Start_0=ruleStart();
+
+                    state._fsp--;
+
+                     
+                            current = this_Start_0; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 2 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:374:5: this_Stop_1= ruleStop
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getStopParserRuleCall_1()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleStop_in_ruleAbstractControlFlowElement697);
+                    this_Stop_1=ruleStop();
+
+                    state._fsp--;
+
+                     
+                            current = this_Stop_1; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 3 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:384:5: this_Loop_2= ruleLoop
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getLoopParserRuleCall_2()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleLoop_in_ruleAbstractControlFlowElement724);
+                    this_Loop_2=ruleLoop();
+
+                    state._fsp--;
+
+                     
+                            current = this_Loop_2; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 4 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:394:5: this_Branch_3= ruleBranch
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getBranchParserRuleCall_3()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleBranch_in_ruleAbstractControlFlowElement751);
+                    this_Branch_3=ruleBranch();
+
+                    state._fsp--;
+
+                     
+                            current = this_Branch_3; 
+                            afterParserOrEnumRuleCall();
+                        
+
+                    }
+                    break;
+                case 5 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:404:5: this_ActionReference_4= ruleActionReference
+                    {
+                     
+                            newCompositeNode(grammarAccess.getAbstractControlFlowElementAccess().getActionReferenceParserRuleCall_4()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleActionReference_in_ruleAbstractControlFlowElement778);
+                    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/parser/antlr/internal/InternalStaAdaptationLanguage.g:420: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:421:2: (iv_ruleVariationType= ruleVariationType EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:422:2: iv_ruleVariationType= ruleVariationType EOF
+            {
+             newCompositeNode(grammarAccess.getVariationTypeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleVariationType_in_entryRuleVariationType813);
+            iv_ruleVariationType=ruleVariationType();
+
+            state._fsp--;
+
+             current =iv_ruleVariationType; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleVariationType823); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:429: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:432:28: ( (this_PropertyRange_0= rulePropertyRange | this_SetOfConfigurations_1= ruleSetOfConfigurations ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:433:1: (this_PropertyRange_0= rulePropertyRange | this_SetOfConfigurations_1= ruleSetOfConfigurations )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:433:1: (this_PropertyRange_0= rulePropertyRange | this_SetOfConfigurations_1= ruleSetOfConfigurations )
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==59) ) {
+                alt7=1;
+            }
+            else if ( (LA7_0==62) ) {
+                alt7=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+            switch (alt7) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:434:5: this_PropertyRange_0= rulePropertyRange
+                    {
+                     
+                            newCompositeNode(grammarAccess.getVariationTypeAccess().getPropertyRangeParserRuleCall_0()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_rulePropertyRange_in_ruleVariationType870);
+                    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/parser/antlr/internal/InternalStaAdaptationLanguage.g:444:5: this_SetOfConfigurations_1= ruleSetOfConfigurations
+                    {
+                     
+                            newCompositeNode(grammarAccess.getVariationTypeAccess().getSetOfConfigurationsParserRuleCall_1()); 
+                        
+                    pushFollow(FollowSets000.FOLLOW_ruleSetOfConfigurations_in_ruleVariationType897);
+                    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/parser/antlr/internal/InternalStaAdaptationLanguage.g:460: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:461:2: (iv_ruleEString= ruleEString EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:462:2: iv_ruleEString= ruleEString EOF
+            {
+             newCompositeNode(grammarAccess.getEStringRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_entryRuleEString933);
+            iv_ruleEString=ruleEString();
+
+            state._fsp--;
+
+             current =iv_ruleEString.getText(); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEString944); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:469: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:472: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:473: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:473:1: (this_STRING_0= RULE_STRING | this_ID_1= RULE_ID )
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==RULE_STRING) ) {
+                alt8=1;
+            }
+            else if ( (LA8_0==RULE_ID) ) {
+                alt8=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:473:6: this_STRING_0= RULE_STRING
+                    {
+                    this_STRING_0=(Token)match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_ruleEString984); 
+
+                    		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/parser/antlr/internal/InternalStaAdaptationLanguage.g:481:10: this_ID_1= RULE_ID
+                    {
+                    this_ID_1=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_ruleEString1010); 
+
+                    		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/parser/antlr/internal/InternalStaAdaptationLanguage.g:496: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:497:2: (iv_ruleTactic= ruleTactic EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:498:2: iv_ruleTactic= ruleTactic EOF
+            {
+             newCompositeNode(grammarAccess.getTacticRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleTactic_in_entryRuleTactic1055);
+            iv_ruleTactic=ruleTactic();
+
+            state._fsp--;
+
+             current =iv_ruleTactic; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleTactic1065); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:505:1: ruleTactic returns [EObject current=null] : (otherlv_0= 'Tactic' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'inputParams' otherlv_6= '(' ( ( ruleEString ) ) (otherlv_8= ',' ( ( ruleEString ) ) )* otherlv_10= ')' )? (otherlv_11= 'outputParam' ( ( ruleEString ) ) )? otherlv_13= 'implementedPlan' ( (lv_implementedPlan_14_0= ruleAdaptationPlan ) ) otherlv_15= '}' ) ;
+    public final EObject ruleTactic() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        Token otherlv_15=null;
+        AntlrDatatypeRuleToken lv_id_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_4_0 = null;
+
+        EObject lv_implementedPlan_14_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:508:28: ( (otherlv_0= 'Tactic' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'inputParams' otherlv_6= '(' ( ( ruleEString ) ) (otherlv_8= ',' ( ( ruleEString ) ) )* otherlv_10= ')' )? (otherlv_11= 'outputParam' ( ( ruleEString ) ) )? otherlv_13= 'implementedPlan' ( (lv_implementedPlan_14_0= ruleAdaptationPlan ) ) otherlv_15= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:509:1: (otherlv_0= 'Tactic' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'inputParams' otherlv_6= '(' ( ( ruleEString ) ) (otherlv_8= ',' ( ( ruleEString ) ) )* otherlv_10= ')' )? (otherlv_11= 'outputParam' ( ( ruleEString ) ) )? otherlv_13= 'implementedPlan' ( (lv_implementedPlan_14_0= ruleAdaptationPlan ) ) otherlv_15= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:509:1: (otherlv_0= 'Tactic' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'inputParams' otherlv_6= '(' ( ( ruleEString ) ) (otherlv_8= ',' ( ( ruleEString ) ) )* otherlv_10= ')' )? (otherlv_11= 'outputParam' ( ( ruleEString ) ) )? otherlv_13= 'implementedPlan' ( (lv_implementedPlan_14_0= ruleAdaptationPlan ) ) otherlv_15= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:509:3: otherlv_0= 'Tactic' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'inputParams' otherlv_6= '(' ( ( ruleEString ) ) (otherlv_8= ',' ( ( ruleEString ) ) )* otherlv_10= ')' )? (otherlv_11= 'outputParam' ( ( ruleEString ) ) )? otherlv_13= 'implementedPlan' ( (lv_implementedPlan_14_0= ruleAdaptationPlan ) ) otherlv_15= '}'
+            {
+            otherlv_0=(Token)match(input,20,FollowSets000.FOLLOW_20_in_ruleTactic1102); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getTacticAccess().getTacticKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:513:1: ( (lv_id_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:514:1: (lv_id_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:514:1: (lv_id_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:515:3: lv_id_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getTacticAccess().getIdEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1123);
+            lv_id_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"id",
+                    		lv_id_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleTactic1135); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getTacticAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleTactic1147); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getTacticAccess().getNameKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:539:1: ( (lv_name_4_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:540:1: (lv_name_4_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:540:1: (lv_name_4_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:541:3: lv_name_4_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getTacticAccess().getNameEStringParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1168);
+            lv_name_4_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_4_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:557:2: (otherlv_5= 'inputParams' otherlv_6= '(' ( ( ruleEString ) ) (otherlv_8= ',' ( ( ruleEString ) ) )* otherlv_10= ')' )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==21) ) {
+                alt10=1;
+            }
+            switch (alt10) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:557:4: otherlv_5= 'inputParams' otherlv_6= '(' ( ( ruleEString ) ) (otherlv_8= ',' ( ( ruleEString ) ) )* otherlv_10= ')'
+                    {
+                    otherlv_5=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleTactic1181); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getTacticAccess().getInputParamsKeyword_5_0());
+                        
+                    otherlv_6=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleTactic1193); 
+
+                        	newLeafNode(otherlv_6, grammarAccess.getTacticAccess().getLeftParenthesisKeyword_5_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:565:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:566:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:566:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:567:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getTacticRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1216);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:580:2: (otherlv_8= ',' ( ( ruleEString ) ) )*
+                    loop9:
+                    do {
+                        int alt9=2;
+                        int LA9_0 = input.LA(1);
+
+                        if ( (LA9_0==15) ) {
+                            alt9=1;
+                        }
+
+
+                        switch (alt9) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:580:4: otherlv_8= ',' ( ( ruleEString ) )
+                    	    {
+                    	    otherlv_8=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleTactic1229); 
+
+                    	        	newLeafNode(otherlv_8, grammarAccess.getTacticAccess().getCommaKeyword_5_3_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:584:1: ( ( ruleEString ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:585:1: ( ruleEString )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:585:1: ( ruleEString )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:586:3: ruleEString
+                    	    {
+
+                    	    			if (current==null) {
+                    	    	            current = createModelElement(grammarAccess.getTacticRule());
+                    	    	        }
+                    	            
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getTacticAccess().getInputParamsParameterCrossReference_5_3_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1252);
+                    	    ruleEString();
+
+                    	    state._fsp--;
+
+                    	     
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop9;
+                        }
+                    } while (true);
+
+                    otherlv_10=(Token)match(input,23,FollowSets000.FOLLOW_23_in_ruleTactic1266); 
+
+                        	newLeafNode(otherlv_10, grammarAccess.getTacticAccess().getRightParenthesisKeyword_5_4());
+                        
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:603:3: (otherlv_11= 'outputParam' ( ( ruleEString ) ) )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==24) ) {
+                alt11=1;
+            }
+            switch (alt11) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:603:5: otherlv_11= 'outputParam' ( ( ruleEString ) )
+                    {
+                    otherlv_11=(Token)match(input,24,FollowSets000.FOLLOW_24_in_ruleTactic1281); 
+
+                        	newLeafNode(otherlv_11, grammarAccess.getTacticAccess().getOutputParamKeyword_6_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:607:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:608:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:608:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:609:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getTacticRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getTacticAccess().getOutputParamParameterCrossReference_6_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleTactic1304);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_13=(Token)match(input,25,FollowSets000.FOLLOW_25_in_ruleTactic1318); 
+
+                	newLeafNode(otherlv_13, grammarAccess.getTacticAccess().getImplementedPlanKeyword_7());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:626:1: ( (lv_implementedPlan_14_0= ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:627:1: (lv_implementedPlan_14_0= ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:627:1: (lv_implementedPlan_14_0= ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:628:3: lv_implementedPlan_14_0= ruleAdaptationPlan
+            {
+             
+            	        newCompositeNode(grammarAccess.getTacticAccess().getImplementedPlanAdaptationPlanParserRuleCall_8_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_ruleTactic1339);
+            lv_implementedPlan_14_0=ruleAdaptationPlan();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"implementedPlan",
+                    		lv_implementedPlan_14_0, 
+                    		"AdaptationPlan");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_15=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleTactic1351); 
+
+                	newLeafNode(otherlv_15, grammarAccess.getTacticAccess().getRightCurlyBracketKeyword_9());
+                
+
+            }
+
+
+            }
+
+             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/parser/antlr/internal/InternalStaAdaptationLanguage.g:656: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:657:2: (iv_ruleAction= ruleAction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:658:2: iv_ruleAction= ruleAction EOF
+            {
+             newCompositeNode(grammarAccess.getActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAction_in_entryRuleAction1387);
+            iv_ruleAction=ruleAction();
+
+            state._fsp--;
+
+             current =iv_ruleAction; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAction1397); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:665:1: ruleAction returns [EObject current=null] : (otherlv_0= 'Action' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'outputParam' ( ( ruleEString ) ) )? (otherlv_7= 'inputParams' otherlv_8= '(' ( ( ruleEString ) ) (otherlv_10= ',' ( ( ruleEString ) ) )* otherlv_12= ')' )? otherlv_13= 'referredAdaptationPoint' ( ( ruleEString ) ) otherlv_15= '}' ) ;
+    public final EObject ruleAction() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token otherlv_15=null;
+        AntlrDatatypeRuleToken lv_id_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_4_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:668:28: ( (otherlv_0= 'Action' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'outputParam' ( ( ruleEString ) ) )? (otherlv_7= 'inputParams' otherlv_8= '(' ( ( ruleEString ) ) (otherlv_10= ',' ( ( ruleEString ) ) )* otherlv_12= ')' )? otherlv_13= 'referredAdaptationPoint' ( ( ruleEString ) ) otherlv_15= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:669:1: (otherlv_0= 'Action' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'outputParam' ( ( ruleEString ) ) )? (otherlv_7= 'inputParams' otherlv_8= '(' ( ( ruleEString ) ) (otherlv_10= ',' ( ( ruleEString ) ) )* otherlv_12= ')' )? otherlv_13= 'referredAdaptationPoint' ( ( ruleEString ) ) otherlv_15= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:669:1: (otherlv_0= 'Action' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'outputParam' ( ( ruleEString ) ) )? (otherlv_7= 'inputParams' otherlv_8= '(' ( ( ruleEString ) ) (otherlv_10= ',' ( ( ruleEString ) ) )* otherlv_12= ')' )? otherlv_13= 'referredAdaptationPoint' ( ( ruleEString ) ) otherlv_15= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:669:3: otherlv_0= 'Action' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'outputParam' ( ( ruleEString ) ) )? (otherlv_7= 'inputParams' otherlv_8= '(' ( ( ruleEString ) ) (otherlv_10= ',' ( ( ruleEString ) ) )* otherlv_12= ')' )? otherlv_13= 'referredAdaptationPoint' ( ( ruleEString ) ) otherlv_15= '}'
+            {
+            otherlv_0=(Token)match(input,26,FollowSets000.FOLLOW_26_in_ruleAction1434); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getActionAccess().getActionKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:673:1: ( (lv_id_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:674:1: (lv_id_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:674:1: (lv_id_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:675:3: lv_id_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getActionAccess().getIdEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1455);
+            lv_id_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getActionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"id",
+                    		lv_id_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleAction1467); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getActionAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleAction1479); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getActionAccess().getNameKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:699:1: ( (lv_name_4_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:700:1: (lv_name_4_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:700:1: (lv_name_4_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:701:3: lv_name_4_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getActionAccess().getNameEStringParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1500);
+            lv_name_4_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getActionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_4_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:717:2: (otherlv_5= 'outputParam' ( ( ruleEString ) ) )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0==24) ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:717:4: otherlv_5= 'outputParam' ( ( ruleEString ) )
+                    {
+                    otherlv_5=(Token)match(input,24,FollowSets000.FOLLOW_24_in_ruleAction1513); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getActionAccess().getOutputParamKeyword_5_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:721:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:722:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:722:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:723:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getActionRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getActionAccess().getOutputParamParameterCrossReference_5_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1536);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:736:4: (otherlv_7= 'inputParams' otherlv_8= '(' ( ( ruleEString ) ) (otherlv_10= ',' ( ( ruleEString ) ) )* otherlv_12= ')' )?
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+
+            if ( (LA14_0==21) ) {
+                alt14=1;
+            }
+            switch (alt14) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:736:6: otherlv_7= 'inputParams' otherlv_8= '(' ( ( ruleEString ) ) (otherlv_10= ',' ( ( ruleEString ) ) )* otherlv_12= ')'
+                    {
+                    otherlv_7=(Token)match(input,21,FollowSets000.FOLLOW_21_in_ruleAction1551); 
+
+                        	newLeafNode(otherlv_7, grammarAccess.getActionAccess().getInputParamsKeyword_6_0());
+                        
+                    otherlv_8=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleAction1563); 
+
+                        	newLeafNode(otherlv_8, grammarAccess.getActionAccess().getLeftParenthesisKeyword_6_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:744:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:745:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:745:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:746:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getActionRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1586);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:759:2: (otherlv_10= ',' ( ( ruleEString ) ) )*
+                    loop13:
+                    do {
+                        int alt13=2;
+                        int LA13_0 = input.LA(1);
+
+                        if ( (LA13_0==15) ) {
+                            alt13=1;
+                        }
+
+
+                        switch (alt13) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:759:4: otherlv_10= ',' ( ( ruleEString ) )
+                    	    {
+                    	    otherlv_10=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleAction1599); 
+
+                    	        	newLeafNode(otherlv_10, grammarAccess.getActionAccess().getCommaKeyword_6_3_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:763:1: ( ( ruleEString ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:764:1: ( ruleEString )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:764:1: ( ruleEString )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:765:3: ruleEString
+                    	    {
+
+                    	    			if (current==null) {
+                    	    	            current = createModelElement(grammarAccess.getActionRule());
+                    	    	        }
+                    	            
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getActionAccess().getInputParamsParameterCrossReference_6_3_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1622);
+                    	    ruleEString();
+
+                    	    state._fsp--;
+
+                    	     
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop13;
+                        }
+                    } while (true);
+
+                    otherlv_12=(Token)match(input,23,FollowSets000.FOLLOW_23_in_ruleAction1636); 
+
+                        	newLeafNode(otherlv_12, grammarAccess.getActionAccess().getRightParenthesisKeyword_6_4());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_13=(Token)match(input,27,FollowSets000.FOLLOW_27_in_ruleAction1650); 
+
+                	newLeafNode(otherlv_13, grammarAccess.getActionAccess().getReferredAdaptationPointKeyword_7());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:786:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:787:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:787:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:788:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getActionRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getActionAccess().getReferredAdaptationPointAdaptationPointCrossReference_8_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAction1673);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_15=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleAction1685); 
+
+                	newLeafNode(otherlv_15, grammarAccess.getActionAccess().getRightCurlyBracketKeyword_9());
+                
+
+            }
+
+
+            }
+
+             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/parser/antlr/internal/InternalStaAdaptationLanguage.g:813: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:814:2: (iv_ruleStrategy= ruleStrategy EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:815:2: iv_ruleStrategy= ruleStrategy EOF
+            {
+             newCompositeNode(grammarAccess.getStrategyRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStrategy_in_entryRuleStrategy1721);
+            iv_ruleStrategy=ruleStrategy();
+
+            state._fsp--;
+
+             current =iv_ruleStrategy; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStrategy1731); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:822:1: ruleStrategy returns [EObject current=null] : (otherlv_0= 'Strategy' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'objective' ( ( ruleEString ) ) (otherlv_7= 'triggeringEvents' ( (lv_triggeringEvents_8_0= ruleEvent ) ) )? otherlv_9= 'tactics' otherlv_10= '{' ( (lv_tactics_11_0= ruleWeightedTactic ) ) (otherlv_12= ',' ( (lv_tactics_13_0= ruleWeightedTactic ) ) )* otherlv_14= '}' otherlv_15= 'weightingFunction' ( (lv_weightingFunction_16_0= ruleWeightingFunction ) ) otherlv_17= '}' ) ;
+    public final EObject ruleStrategy() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        Token otherlv_14=null;
+        Token otherlv_15=null;
+        Token otherlv_17=null;
+        AntlrDatatypeRuleToken lv_id_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_4_0 = null;
+
+        EObject lv_triggeringEvents_8_0 = null;
+
+        EObject lv_tactics_11_0 = null;
+
+        EObject lv_tactics_13_0 = null;
+
+        EObject lv_weightingFunction_16_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:825:28: ( (otherlv_0= 'Strategy' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'objective' ( ( ruleEString ) ) (otherlv_7= 'triggeringEvents' ( (lv_triggeringEvents_8_0= ruleEvent ) ) )? otherlv_9= 'tactics' otherlv_10= '{' ( (lv_tactics_11_0= ruleWeightedTactic ) ) (otherlv_12= ',' ( (lv_tactics_13_0= ruleWeightedTactic ) ) )* otherlv_14= '}' otherlv_15= 'weightingFunction' ( (lv_weightingFunction_16_0= ruleWeightingFunction ) ) otherlv_17= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:826:1: (otherlv_0= 'Strategy' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'objective' ( ( ruleEString ) ) (otherlv_7= 'triggeringEvents' ( (lv_triggeringEvents_8_0= ruleEvent ) ) )? otherlv_9= 'tactics' otherlv_10= '{' ( (lv_tactics_11_0= ruleWeightedTactic ) ) (otherlv_12= ',' ( (lv_tactics_13_0= ruleWeightedTactic ) ) )* otherlv_14= '}' otherlv_15= 'weightingFunction' ( (lv_weightingFunction_16_0= ruleWeightingFunction ) ) otherlv_17= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:826:1: (otherlv_0= 'Strategy' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'objective' ( ( ruleEString ) ) (otherlv_7= 'triggeringEvents' ( (lv_triggeringEvents_8_0= ruleEvent ) ) )? otherlv_9= 'tactics' otherlv_10= '{' ( (lv_tactics_11_0= ruleWeightedTactic ) ) (otherlv_12= ',' ( (lv_tactics_13_0= ruleWeightedTactic ) ) )* otherlv_14= '}' otherlv_15= 'weightingFunction' ( (lv_weightingFunction_16_0= ruleWeightingFunction ) ) otherlv_17= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:826:3: otherlv_0= 'Strategy' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) otherlv_5= 'objective' ( ( ruleEString ) ) (otherlv_7= 'triggeringEvents' ( (lv_triggeringEvents_8_0= ruleEvent ) ) )? otherlv_9= 'tactics' otherlv_10= '{' ( (lv_tactics_11_0= ruleWeightedTactic ) ) (otherlv_12= ',' ( (lv_tactics_13_0= ruleWeightedTactic ) ) )* otherlv_14= '}' otherlv_15= 'weightingFunction' ( (lv_weightingFunction_16_0= ruleWeightingFunction ) ) otherlv_17= '}'
+            {
+            otherlv_0=(Token)match(input,28,FollowSets000.FOLLOW_28_in_ruleStrategy1768); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getStrategyAccess().getStrategyKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:830:1: ( (lv_id_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:831:1: (lv_id_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:831:1: (lv_id_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:832:3: lv_id_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getIdEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStrategy1789);
+            lv_id_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"id",
+                    		lv_id_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStrategy1801); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleStrategy1813); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getStrategyAccess().getNameKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:856:1: ( (lv_name_4_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:857:1: (lv_name_4_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:857:1: (lv_name_4_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:858:3: lv_name_4_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getNameEStringParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStrategy1834);
+            lv_name_4_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_4_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,29,FollowSets000.FOLLOW_29_in_ruleStrategy1846); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getStrategyAccess().getObjectiveKeyword_5());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:878:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:879:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:879:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:880:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getStrategyRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getObjectiveObjectiveCrossReference_6_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStrategy1869);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:893:2: (otherlv_7= 'triggeringEvents' ( (lv_triggeringEvents_8_0= ruleEvent ) ) )?
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==30) ) {
+                alt15=1;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:893:4: otherlv_7= 'triggeringEvents' ( (lv_triggeringEvents_8_0= ruleEvent ) )
+                    {
+                    otherlv_7=(Token)match(input,30,FollowSets000.FOLLOW_30_in_ruleStrategy1882); 
+
+                        	newLeafNode(otherlv_7, grammarAccess.getStrategyAccess().getTriggeringEventsKeyword_7_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:897:1: ( (lv_triggeringEvents_8_0= ruleEvent ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:898:1: (lv_triggeringEvents_8_0= ruleEvent )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:898:1: (lv_triggeringEvents_8_0= ruleEvent )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:899:3: lv_triggeringEvents_8_0= ruleEvent
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getStrategyAccess().getTriggeringEventsEventParserRuleCall_7_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEvent_in_ruleStrategy1903);
+                    lv_triggeringEvents_8_0=ruleEvent();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"triggeringEvents",
+                            		lv_triggeringEvents_8_0, 
+                            		"Event");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_9=(Token)match(input,14,FollowSets000.FOLLOW_14_in_ruleStrategy1917); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getStrategyAccess().getTacticsKeyword_8());
+                
+            otherlv_10=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStrategy1929); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getStrategyAccess().getLeftCurlyBracketKeyword_9());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:923:1: ( (lv_tactics_11_0= ruleWeightedTactic ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:924:1: (lv_tactics_11_0= ruleWeightedTactic )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:924:1: (lv_tactics_11_0= ruleWeightedTactic )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:925:3: lv_tactics_11_0= ruleWeightedTactic
+            {
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_10_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_ruleStrategy1950);
+            lv_tactics_11_0=ruleWeightedTactic();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"tactics",
+                    		lv_tactics_11_0, 
+                    		"WeightedTactic");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:941:2: (otherlv_12= ',' ( (lv_tactics_13_0= ruleWeightedTactic ) ) )*
+            loop16:
+            do {
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+
+                if ( (LA16_0==15) ) {
+                    alt16=1;
+                }
+
+
+                switch (alt16) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:941:4: otherlv_12= ',' ( (lv_tactics_13_0= ruleWeightedTactic ) )
+            	    {
+            	    otherlv_12=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleStrategy1963); 
+
+            	        	newLeafNode(otherlv_12, grammarAccess.getStrategyAccess().getCommaKeyword_11_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:945:1: ( (lv_tactics_13_0= ruleWeightedTactic ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:946:1: (lv_tactics_13_0= ruleWeightedTactic )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:946:1: (lv_tactics_13_0= ruleWeightedTactic )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:947:3: lv_tactics_13_0= ruleWeightedTactic
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getStrategyAccess().getTacticsWeightedTacticParserRuleCall_11_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_ruleStrategy1984);
+            	    lv_tactics_13_0=ruleWeightedTactic();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"tactics",
+            	            		lv_tactics_13_0, 
+            	            		"WeightedTactic");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop16;
+                }
+            } while (true);
+
+            otherlv_14=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleStrategy1998); 
+
+                	newLeafNode(otherlv_14, grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_12());
+                
+            otherlv_15=(Token)match(input,31,FollowSets000.FOLLOW_31_in_ruleStrategy2010); 
+
+                	newLeafNode(otherlv_15, grammarAccess.getStrategyAccess().getWeightingFunctionKeyword_13());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:971:1: ( (lv_weightingFunction_16_0= ruleWeightingFunction ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:972:1: (lv_weightingFunction_16_0= ruleWeightingFunction )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:972:1: (lv_weightingFunction_16_0= ruleWeightingFunction )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:973:3: lv_weightingFunction_16_0= ruleWeightingFunction
+            {
+             
+            	        newCompositeNode(grammarAccess.getStrategyAccess().getWeightingFunctionWeightingFunctionParserRuleCall_14_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleWeightingFunction_in_ruleStrategy2031);
+            lv_weightingFunction_16_0=ruleWeightingFunction();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getStrategyRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"weightingFunction",
+                    		lv_weightingFunction_16_0, 
+                    		"WeightingFunction");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_17=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleStrategy2043); 
+
+                	newLeafNode(otherlv_17, grammarAccess.getStrategyAccess().getRightCurlyBracketKeyword_15());
+                
+
+            }
+
+
+            }
+
+             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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1001: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1002:2: (iv_ruleParameter= ruleParameter EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1003:2: iv_ruleParameter= ruleParameter EOF
+            {
+             newCompositeNode(grammarAccess.getParameterRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleParameter_in_entryRuleParameter2079);
+            iv_ruleParameter=ruleParameter();
+
+            state._fsp--;
+
+             current =iv_ruleParameter; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleParameter2089); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1010:1: ruleParameter returns [EObject current=null] : (otherlv_0= 'Parameter' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_type_4_0= ruleEString ) ) otherlv_5= '}' ) ;
+    public final EObject ruleParameter() 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_type_4_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1013:28: ( (otherlv_0= 'Parameter' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_type_4_0= ruleEString ) ) otherlv_5= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1014:1: (otherlv_0= 'Parameter' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_type_4_0= ruleEString ) ) otherlv_5= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1014:1: (otherlv_0= 'Parameter' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_type_4_0= ruleEString ) ) otherlv_5= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1014:3: otherlv_0= 'Parameter' ( (lv_name_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_type_4_0= ruleEString ) ) otherlv_5= '}'
+            {
+            otherlv_0=(Token)match(input,32,FollowSets000.FOLLOW_32_in_ruleParameter2126); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getParameterAccess().getParameterKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1018:1: ( (lv_name_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1019:1: (lv_name_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1019:1: (lv_name_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1020:3: lv_name_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getParameterAccess().getNameEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleParameter2147);
+            lv_name_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getParameterRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleParameter2159); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getParameterAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_3=(Token)match(input,33,FollowSets000.FOLLOW_33_in_ruleParameter2171); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getParameterAccess().getTypeKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1044:1: ( (lv_type_4_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1045:1: (lv_type_4_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1045:1: (lv_type_4_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1046:3: lv_type_4_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getParameterAccess().getTypeEStringParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleParameter2192);
+            lv_type_4_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getParameterRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"type",
+                    		lv_type_4_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleParameter2204); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getParameterAccess().getRightCurlyBracketKeyword_5());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleParameter"
+
+
+    // $ANTLR start "entryRuleAdaptationPlan"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1074: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1075:2: (iv_ruleAdaptationPlan= ruleAdaptationPlan EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1076:2: iv_ruleAdaptationPlan= ruleAdaptationPlan EOF
+            {
+             newCompositeNode(grammarAccess.getAdaptationPlanRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_entryRuleAdaptationPlan2240);
+            iv_ruleAdaptationPlan=ruleAdaptationPlan();
+
+            state._fsp--;
+
+             current =iv_ruleAdaptationPlan; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAdaptationPlan2250); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1083:1: ruleAdaptationPlan returns [EObject current=null] : (otherlv_0= 'AdaptationPlan' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'steps' otherlv_6= '{' ( (lv_steps_7_0= ruleAbstractControlFlowElement ) ) (otherlv_8= ',' ( (lv_steps_9_0= ruleAbstractControlFlowElement ) ) )* otherlv_10= '}' )? otherlv_11= '}' ) ;
+    public final EObject ruleAdaptationPlan() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        AntlrDatatypeRuleToken lv_id_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_4_0 = null;
+
+        EObject lv_steps_7_0 = null;
+
+        EObject lv_steps_9_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1086:28: ( (otherlv_0= 'AdaptationPlan' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'steps' otherlv_6= '{' ( (lv_steps_7_0= ruleAbstractControlFlowElement ) ) (otherlv_8= ',' ( (lv_steps_9_0= ruleAbstractControlFlowElement ) ) )* otherlv_10= '}' )? otherlv_11= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1087:1: (otherlv_0= 'AdaptationPlan' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'steps' otherlv_6= '{' ( (lv_steps_7_0= ruleAbstractControlFlowElement ) ) (otherlv_8= ',' ( (lv_steps_9_0= ruleAbstractControlFlowElement ) ) )* otherlv_10= '}' )? otherlv_11= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1087:1: (otherlv_0= 'AdaptationPlan' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'steps' otherlv_6= '{' ( (lv_steps_7_0= ruleAbstractControlFlowElement ) ) (otherlv_8= ',' ( (lv_steps_9_0= ruleAbstractControlFlowElement ) ) )* otherlv_10= '}' )? otherlv_11= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1087:3: otherlv_0= 'AdaptationPlan' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'name' ( (lv_name_4_0= ruleEString ) ) (otherlv_5= 'steps' otherlv_6= '{' ( (lv_steps_7_0= ruleAbstractControlFlowElement ) ) (otherlv_8= ',' ( (lv_steps_9_0= ruleAbstractControlFlowElement ) ) )* otherlv_10= '}' )? otherlv_11= '}'
+            {
+            otherlv_0=(Token)match(input,34,FollowSets000.FOLLOW_34_in_ruleAdaptationPlan2287); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getAdaptationPlanAccess().getAdaptationPlanKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1091:1: ( (lv_id_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1092:1: (lv_id_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1092:1: (lv_id_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1093:3: lv_id_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getIdEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAdaptationPlan2308);
+            lv_id_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"id",
+                    		lv_id_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleAdaptationPlan2320); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_3=(Token)match(input,13,FollowSets000.FOLLOW_13_in_ruleAdaptationPlan2332); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getAdaptationPlanAccess().getNameKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1117:1: ( (lv_name_4_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1118:1: (lv_name_4_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1118:1: (lv_name_4_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1119:3: lv_name_4_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getNameEStringParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleAdaptationPlan2353);
+            lv_name_4_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"name",
+                    		lv_name_4_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1135:2: (otherlv_5= 'steps' otherlv_6= '{' ( (lv_steps_7_0= ruleAbstractControlFlowElement ) ) (otherlv_8= ',' ( (lv_steps_9_0= ruleAbstractControlFlowElement ) ) )* otherlv_10= '}' )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0==35) ) {
+                alt18=1;
+            }
+            switch (alt18) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1135:4: otherlv_5= 'steps' otherlv_6= '{' ( (lv_steps_7_0= ruleAbstractControlFlowElement ) ) (otherlv_8= ',' ( (lv_steps_9_0= ruleAbstractControlFlowElement ) ) )* otherlv_10= '}'
+                    {
+                    otherlv_5=(Token)match(input,35,FollowSets000.FOLLOW_35_in_ruleAdaptationPlan2366); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getAdaptationPlanAccess().getStepsKeyword_5_0());
+                        
+                    otherlv_6=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleAdaptationPlan2378); 
+
+                        	newLeafNode(otherlv_6, grammarAccess.getAdaptationPlanAccess().getLeftCurlyBracketKeyword_5_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1143:1: ( (lv_steps_7_0= ruleAbstractControlFlowElement ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1144:1: (lv_steps_7_0= ruleAbstractControlFlowElement )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1144:1: (lv_steps_7_0= ruleAbstractControlFlowElement )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1145:3: lv_steps_7_0= ruleAbstractControlFlowElement
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleAbstractControlFlowElement_in_ruleAdaptationPlan2399);
+                    lv_steps_7_0=ruleAbstractControlFlowElement();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+                    	        }
+                           		add(
+                           			current, 
+                           			"steps",
+                            		lv_steps_7_0, 
+                            		"AbstractControlFlowElement");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1161:2: (otherlv_8= ',' ( (lv_steps_9_0= ruleAbstractControlFlowElement ) ) )*
+                    loop17:
+                    do {
+                        int alt17=2;
+                        int LA17_0 = input.LA(1);
+
+                        if ( (LA17_0==15) ) {
+                            alt17=1;
+                        }
+
+
+                        switch (alt17) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1161:4: otherlv_8= ',' ( (lv_steps_9_0= ruleAbstractControlFlowElement ) )
+                    	    {
+                    	    otherlv_8=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleAdaptationPlan2412); 
+
+                    	        	newLeafNode(otherlv_8, grammarAccess.getAdaptationPlanAccess().getCommaKeyword_5_3_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1165:1: ( (lv_steps_9_0= ruleAbstractControlFlowElement ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1166:1: (lv_steps_9_0= ruleAbstractControlFlowElement )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1166:1: (lv_steps_9_0= ruleAbstractControlFlowElement )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1167:3: lv_steps_9_0= ruleAbstractControlFlowElement
+                    	    {
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getAdaptationPlanAccess().getStepsAbstractControlFlowElementParserRuleCall_5_3_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleAbstractControlFlowElement_in_ruleAdaptationPlan2433);
+                    	    lv_steps_9_0=ruleAbstractControlFlowElement();
+
+                    	    state._fsp--;
+
+
+                    	    	        if (current==null) {
+                    	    	            current = createModelElementForParent(grammarAccess.getAdaptationPlanRule());
+                    	    	        }
+                    	           		add(
+                    	           			current, 
+                    	           			"steps",
+                    	            		lv_steps_9_0, 
+                    	            		"AbstractControlFlowElement");
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop17;
+                        }
+                    } while (true);
+
+                    otherlv_10=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleAdaptationPlan2447); 
+
+                        	newLeafNode(otherlv_10, grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_5_4());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_11=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleAdaptationPlan2461); 
+
+                	newLeafNode(otherlv_11, grammarAccess.getAdaptationPlanAccess().getRightCurlyBracketKeyword_6());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAdaptationPlan"
+
+
+    // $ANTLR start "entryRuleStart"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1199:1: entryRuleStart returns [EObject current=null] : iv_ruleStart= ruleStart EOF ;
+    public final EObject entryRuleStart() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStart = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1200:2: (iv_ruleStart= ruleStart EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1201:2: iv_ruleStart= ruleStart EOF
+            {
+             newCompositeNode(grammarAccess.getStartRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStart_in_entryRuleStart2497);
+            iv_ruleStart=ruleStart();
+
+            state._fsp--;
+
+             current =iv_ruleStart; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStart2507); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStart"
+
+
+    // $ANTLR start "ruleStart"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1208:1: ruleStart returns [EObject current=null] : ( () otherlv_1= 'Start' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}' ) ;
+    public final EObject ruleStart() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1211:28: ( ( () otherlv_1= 'Start' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1212:1: ( () otherlv_1= 'Start' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1212:1: ( () otherlv_1= 'Start' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1212:2: () otherlv_1= 'Start' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1212:2: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1213:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getStartAccess().getStartAction_0(),
+                        current);
+                
+
+            }
+
+            otherlv_1=(Token)match(input,36,FollowSets000.FOLLOW_36_in_ruleStart2553); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getStartAccess().getStartKeyword_1());
+                
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStart2565); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getStartAccess().getLeftCurlyBracketKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1226:1: (otherlv_3= 'predecessor' ( ( ruleEString ) ) )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==37) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1226:3: otherlv_3= 'predecessor' ( ( ruleEString ) )
+                    {
+                    otherlv_3=(Token)match(input,37,FollowSets000.FOLLOW_37_in_ruleStart2578); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getStartAccess().getPredecessorKeyword_3_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1230:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1231:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1231:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1232:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getStartRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getStartAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStart2601);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1245:4: (otherlv_5= 'successor' ( ( ruleEString ) ) )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==38) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1245:6: otherlv_5= 'successor' ( ( ruleEString ) )
+                    {
+                    otherlv_5=(Token)match(input,38,FollowSets000.FOLLOW_38_in_ruleStart2616); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getStartAccess().getSuccessorKeyword_4_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1249:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1250:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1250:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1251:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getStartRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getStartAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStart2639);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_7=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleStart2653); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getStartAccess().getRightCurlyBracketKeyword_5());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStart"
+
+
+    // $ANTLR start "entryRuleStop"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1276:1: entryRuleStop returns [EObject current=null] : iv_ruleStop= ruleStop EOF ;
+    public final EObject entryRuleStop() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStop = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1277:2: (iv_ruleStop= ruleStop EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1278:2: iv_ruleStop= ruleStop EOF
+            {
+             newCompositeNode(grammarAccess.getStopRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStop_in_entryRuleStop2689);
+            iv_ruleStop=ruleStop();
+
+            state._fsp--;
+
+             current =iv_ruleStop; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStop2699); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStop"
+
+
+    // $ANTLR start "ruleStop"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1285:1: ruleStop returns [EObject current=null] : ( () otherlv_1= 'Stop' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}' ) ;
+    public final EObject ruleStop() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1288:28: ( ( () otherlv_1= 'Stop' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1289:1: ( () otherlv_1= 'Stop' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1289:1: ( () otherlv_1= 'Stop' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1289:2: () otherlv_1= 'Stop' otherlv_2= '{' (otherlv_3= 'predecessor' ( ( ruleEString ) ) )? (otherlv_5= 'successor' ( ( ruleEString ) ) )? otherlv_7= '}'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1289:2: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1290:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getStopAccess().getStopAction_0(),
+                        current);
+                
+
+            }
+
+            otherlv_1=(Token)match(input,39,FollowSets000.FOLLOW_39_in_ruleStop2745); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getStopAccess().getStopKeyword_1());
+                
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleStop2757); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getStopAccess().getLeftCurlyBracketKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1303:1: (otherlv_3= 'predecessor' ( ( ruleEString ) ) )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==37) ) {
+                alt21=1;
+            }
+            switch (alt21) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1303:3: otherlv_3= 'predecessor' ( ( ruleEString ) )
+                    {
+                    otherlv_3=(Token)match(input,37,FollowSets000.FOLLOW_37_in_ruleStop2770); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getStopAccess().getPredecessorKeyword_3_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1307:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1308:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1308:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1309:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getStopRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getStopAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStop2793);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1322:4: (otherlv_5= 'successor' ( ( ruleEString ) ) )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0==38) ) {
+                alt22=1;
+            }
+            switch (alt22) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1322:6: otherlv_5= 'successor' ( ( ruleEString ) )
+                    {
+                    otherlv_5=(Token)match(input,38,FollowSets000.FOLLOW_38_in_ruleStop2808); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getStopAccess().getSuccessorKeyword_4_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1326:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1327:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1327:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1328:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getStopRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getStopAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleStop2831);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_7=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleStop2845); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getStopAccess().getRightCurlyBracketKeyword_5());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStop"
+
+
+    // $ANTLR start "entryRuleLoop"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1353:1: entryRuleLoop returns [EObject current=null] : iv_ruleLoop= ruleLoop EOF ;
+    public final EObject entryRuleLoop() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleLoop = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1354:2: (iv_ruleLoop= ruleLoop EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1355:2: iv_ruleLoop= ruleLoop EOF
+            {
+             newCompositeNode(grammarAccess.getLoopRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleLoop_in_entryRuleLoop2881);
+            iv_ruleLoop=ruleLoop();
+
+            state._fsp--;
+
+             current =iv_ruleLoop; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleLoop2891); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleLoop"
+
+
+    // $ANTLR start "ruleLoop"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1362:1: ruleLoop returns [EObject current=null] : (otherlv_0= 'Loop' otherlv_1= '{' otherlv_2= 'counter' ( (lv_counter_3_0= ruleEInt ) ) (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'body' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= '}' ) ;
+    public final EObject ruleLoop() 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;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        AntlrDatatypeRuleToken lv_counter_3_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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1365:28: ( (otherlv_0= 'Loop' otherlv_1= '{' otherlv_2= 'counter' ( (lv_counter_3_0= ruleEInt ) ) (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'body' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1366:1: (otherlv_0= 'Loop' otherlv_1= '{' otherlv_2= 'counter' ( (lv_counter_3_0= ruleEInt ) ) (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'body' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1366:1: (otherlv_0= 'Loop' otherlv_1= '{' otherlv_2= 'counter' ( (lv_counter_3_0= ruleEInt ) ) (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'body' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1366:3: otherlv_0= 'Loop' otherlv_1= '{' otherlv_2= 'counter' ( (lv_counter_3_0= ruleEInt ) ) (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'body' ( (lv_body_9_0= ruleAdaptationPlan ) ) otherlv_10= '}'
+            {
+            otherlv_0=(Token)match(input,40,FollowSets000.FOLLOW_40_in_ruleLoop2928); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getLoopAccess().getLoopKeyword_0());
+                
+            otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleLoop2940); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getLoopAccess().getLeftCurlyBracketKeyword_1());
+                
+            otherlv_2=(Token)match(input,41,FollowSets000.FOLLOW_41_in_ruleLoop2952); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getLoopAccess().getCounterKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1378:1: ( (lv_counter_3_0= ruleEInt ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1379:1: (lv_counter_3_0= ruleEInt )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1379:1: (lv_counter_3_0= ruleEInt )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1380:3: lv_counter_3_0= ruleEInt
+            {
+             
+            	        newCompositeNode(grammarAccess.getLoopAccess().getCounterEIntParserRuleCall_3_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEInt_in_ruleLoop2973);
+            lv_counter_3_0=ruleEInt();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getLoopRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"counter",
+                    		lv_counter_3_0, 
+                    		"EInt");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1396:2: (otherlv_4= 'predecessor' ( ( ruleEString ) ) )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==37) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1396:4: otherlv_4= 'predecessor' ( ( ruleEString ) )
+                    {
+                    otherlv_4=(Token)match(input,37,FollowSets000.FOLLOW_37_in_ruleLoop2986); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getLoopAccess().getPredecessorKeyword_4_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1400:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1401:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1401:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1402:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getLoopRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getLoopAccess().getPredecessorAbstractControlFlowElementCrossReference_4_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleLoop3009);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1415:4: (otherlv_6= 'successor' ( ( ruleEString ) ) )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==38) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1415:6: otherlv_6= 'successor' ( ( ruleEString ) )
+                    {
+                    otherlv_6=(Token)match(input,38,FollowSets000.FOLLOW_38_in_ruleLoop3024); 
+
+                        	newLeafNode(otherlv_6, grammarAccess.getLoopAccess().getSuccessorKeyword_5_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1419:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1420:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1420:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1421:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getLoopRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getLoopAccess().getSuccessorAbstractControlFlowElementCrossReference_5_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleLoop3047);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_8=(Token)match(input,42,FollowSets000.FOLLOW_42_in_ruleLoop3061); 
+
+                	newLeafNode(otherlv_8, grammarAccess.getLoopAccess().getBodyKeyword_6());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1438:1: ( (lv_body_9_0= ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1439:1: (lv_body_9_0= ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1439:1: (lv_body_9_0= ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1440:3: lv_body_9_0= ruleAdaptationPlan
+            {
+             
+            	        newCompositeNode(grammarAccess.getLoopAccess().getBodyAdaptationPlanParserRuleCall_7_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_ruleLoop3082);
+            lv_body_9_0=ruleAdaptationPlan();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getLoopRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"body",
+                    		lv_body_9_0, 
+                    		"AdaptationPlan");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_10=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleLoop3094); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getLoopAccess().getRightCurlyBracketKeyword_8());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleLoop"
+
+
+    // $ANTLR start "entryRuleBranch"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1468:1: entryRuleBranch returns [EObject current=null] : iv_ruleBranch= ruleBranch EOF ;
+    public final EObject entryRuleBranch() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBranch = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1469:2: (iv_ruleBranch= ruleBranch EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1470:2: iv_ruleBranch= ruleBranch EOF
+            {
+             newCompositeNode(grammarAccess.getBranchRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleBranch_in_entryRuleBranch3130);
+            iv_ruleBranch=ruleBranch();
+
+            state._fsp--;
+
+             current =iv_ruleBranch; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleBranch3140); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBranch"
+
+
+    // $ANTLR start "ruleBranch"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1477:1: ruleBranch returns [EObject current=null] : (otherlv_0= 'Branch' otherlv_1= '{' (otherlv_2= 'condition' ( (lv_condition_3_0= ruleEString ) ) )? (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'branches' otherlv_9= '{' ( (lv_branches_10_0= ruleAdaptationPlan ) ) (otherlv_11= ',' ( (lv_branches_12_0= ruleAdaptationPlan ) ) )* otherlv_13= '}' otherlv_14= '}' ) ;
+    public final EObject ruleBranch() 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;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        Token otherlv_14=null;
+        AntlrDatatypeRuleToken lv_condition_3_0 = null;
+
+        EObject lv_branches_10_0 = null;
+
+        EObject lv_branches_12_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1480:28: ( (otherlv_0= 'Branch' otherlv_1= '{' (otherlv_2= 'condition' ( (lv_condition_3_0= ruleEString ) ) )? (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'branches' otherlv_9= '{' ( (lv_branches_10_0= ruleAdaptationPlan ) ) (otherlv_11= ',' ( (lv_branches_12_0= ruleAdaptationPlan ) ) )* otherlv_13= '}' otherlv_14= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1481:1: (otherlv_0= 'Branch' otherlv_1= '{' (otherlv_2= 'condition' ( (lv_condition_3_0= ruleEString ) ) )? (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'branches' otherlv_9= '{' ( (lv_branches_10_0= ruleAdaptationPlan ) ) (otherlv_11= ',' ( (lv_branches_12_0= ruleAdaptationPlan ) ) )* otherlv_13= '}' otherlv_14= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1481:1: (otherlv_0= 'Branch' otherlv_1= '{' (otherlv_2= 'condition' ( (lv_condition_3_0= ruleEString ) ) )? (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'branches' otherlv_9= '{' ( (lv_branches_10_0= ruleAdaptationPlan ) ) (otherlv_11= ',' ( (lv_branches_12_0= ruleAdaptationPlan ) ) )* otherlv_13= '}' otherlv_14= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1481:3: otherlv_0= 'Branch' otherlv_1= '{' (otherlv_2= 'condition' ( (lv_condition_3_0= ruleEString ) ) )? (otherlv_4= 'predecessor' ( ( ruleEString ) ) )? (otherlv_6= 'successor' ( ( ruleEString ) ) )? otherlv_8= 'branches' otherlv_9= '{' ( (lv_branches_10_0= ruleAdaptationPlan ) ) (otherlv_11= ',' ( (lv_branches_12_0= ruleAdaptationPlan ) ) )* otherlv_13= '}' otherlv_14= '}'
+            {
+            otherlv_0=(Token)match(input,43,FollowSets000.FOLLOW_43_in_ruleBranch3177); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getBranchAccess().getBranchKeyword_0());
+                
+            otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleBranch3189); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_1());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1489:1: (otherlv_2= 'condition' ( (lv_condition_3_0= ruleEString ) ) )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==44) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1489:3: otherlv_2= 'condition' ( (lv_condition_3_0= ruleEString ) )
+                    {
+                    otherlv_2=(Token)match(input,44,FollowSets000.FOLLOW_44_in_ruleBranch3202); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getBranchAccess().getConditionKeyword_2_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1493:1: ( (lv_condition_3_0= ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1494:1: (lv_condition_3_0= ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1494:1: (lv_condition_3_0= ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1495:3: lv_condition_3_0= ruleEString
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getBranchAccess().getConditionEStringParserRuleCall_2_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleBranch3223);
+                    lv_condition_3_0=ruleEString();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getBranchRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"condition",
+                            		lv_condition_3_0, 
+                            		"EString");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1511:4: (otherlv_4= 'predecessor' ( ( ruleEString ) ) )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
+
+            if ( (LA26_0==37) ) {
+                alt26=1;
+            }
+            switch (alt26) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1511:6: otherlv_4= 'predecessor' ( ( ruleEString ) )
+                    {
+                    otherlv_4=(Token)match(input,37,FollowSets000.FOLLOW_37_in_ruleBranch3238); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getBranchAccess().getPredecessorKeyword_3_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1515:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1516:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1516:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1517:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getBranchRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getBranchAccess().getPredecessorAbstractControlFlowElementCrossReference_3_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleBranch3261);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1530:4: (otherlv_6= 'successor' ( ( ruleEString ) ) )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( (LA27_0==38) ) {
+                alt27=1;
+            }
+            switch (alt27) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1530:6: otherlv_6= 'successor' ( ( ruleEString ) )
+                    {
+                    otherlv_6=(Token)match(input,38,FollowSets000.FOLLOW_38_in_ruleBranch3276); 
+
+                        	newLeafNode(otherlv_6, grammarAccess.getBranchAccess().getSuccessorKeyword_4_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1534:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1535:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1535:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1536:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getBranchRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getBranchAccess().getSuccessorAbstractControlFlowElementCrossReference_4_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleBranch3299);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_8=(Token)match(input,45,FollowSets000.FOLLOW_45_in_ruleBranch3313); 
+
+                	newLeafNode(otherlv_8, grammarAccess.getBranchAccess().getBranchesKeyword_5());
+                
+            otherlv_9=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleBranch3325); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getBranchAccess().getLeftCurlyBracketKeyword_6());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1557:1: ( (lv_branches_10_0= ruleAdaptationPlan ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1558:1: (lv_branches_10_0= ruleAdaptationPlan )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1558:1: (lv_branches_10_0= ruleAdaptationPlan )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1559:3: lv_branches_10_0= ruleAdaptationPlan
+            {
+             
+            	        newCompositeNode(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_7_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_ruleBranch3346);
+            lv_branches_10_0=ruleAdaptationPlan();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getBranchRule());
+            	        }
+                   		add(
+                   			current, 
+                   			"branches",
+                    		lv_branches_10_0, 
+                    		"AdaptationPlan");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1575:2: (otherlv_11= ',' ( (lv_branches_12_0= ruleAdaptationPlan ) ) )*
+            loop28:
+            do {
+                int alt28=2;
+                int LA28_0 = input.LA(1);
+
+                if ( (LA28_0==15) ) {
+                    alt28=1;
+                }
+
+
+                switch (alt28) {
+            	case 1 :
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1575:4: otherlv_11= ',' ( (lv_branches_12_0= ruleAdaptationPlan ) )
+            	    {
+            	    otherlv_11=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleBranch3359); 
+
+            	        	newLeafNode(otherlv_11, grammarAccess.getBranchAccess().getCommaKeyword_8_0());
+            	        
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1579:1: ( (lv_branches_12_0= ruleAdaptationPlan ) )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1580:1: (lv_branches_12_0= ruleAdaptationPlan )
+            	    {
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1580:1: (lv_branches_12_0= ruleAdaptationPlan )
+            	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1581:3: lv_branches_12_0= ruleAdaptationPlan
+            	    {
+            	     
+            	    	        newCompositeNode(grammarAccess.getBranchAccess().getBranchesAdaptationPlanParserRuleCall_8_1_0()); 
+            	    	    
+            	    pushFollow(FollowSets000.FOLLOW_ruleAdaptationPlan_in_ruleBranch3380);
+            	    lv_branches_12_0=ruleAdaptationPlan();
+
+            	    state._fsp--;
+
+
+            	    	        if (current==null) {
+            	    	            current = createModelElementForParent(grammarAccess.getBranchRule());
+            	    	        }
+            	           		add(
+            	           			current, 
+            	           			"branches",
+            	            		lv_branches_12_0, 
+            	            		"AdaptationPlan");
+            	    	        afterParserOrEnumRuleCall();
+            	    	    
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop28;
+                }
+            } while (true);
+
+            otherlv_13=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleBranch3394); 
+
+                	newLeafNode(otherlv_13, grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_9());
+                
+            otherlv_14=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleBranch3406); 
+
+                	newLeafNode(otherlv_14, grammarAccess.getBranchAccess().getRightCurlyBracketKeyword_10());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBranch"
+
+
+    // $ANTLR start "entryRuleActionReference"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1613: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1614:2: (iv_ruleActionReference= ruleActionReference EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1615:2: iv_ruleActionReference= ruleActionReference EOF
+            {
+             newCompositeNode(grammarAccess.getActionReferenceRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleActionReference_in_entryRuleActionReference3442);
+            iv_ruleActionReference=ruleActionReference();
+
+            state._fsp--;
+
+             current =iv_ruleActionReference; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleActionReference3452); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1622:1: ruleActionReference returns [EObject current=null] : (otherlv_0= 'ActionReference' otherlv_1= '{' (otherlv_2= 'predecessor' ( ( ruleEString ) ) )? (otherlv_4= 'successor' ( ( ruleEString ) ) )? otherlv_6= 'refersTo' ( ( ruleEString ) ) otherlv_8= '}' ) ;
+    public final EObject ruleActionReference() 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;
+        Token otherlv_8=null;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1625:28: ( (otherlv_0= 'ActionReference' otherlv_1= '{' (otherlv_2= 'predecessor' ( ( ruleEString ) ) )? (otherlv_4= 'successor' ( ( ruleEString ) ) )? otherlv_6= 'refersTo' ( ( ruleEString ) ) otherlv_8= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1626:1: (otherlv_0= 'ActionReference' otherlv_1= '{' (otherlv_2= 'predecessor' ( ( ruleEString ) ) )? (otherlv_4= 'successor' ( ( ruleEString ) ) )? otherlv_6= 'refersTo' ( ( ruleEString ) ) otherlv_8= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1626:1: (otherlv_0= 'ActionReference' otherlv_1= '{' (otherlv_2= 'predecessor' ( ( ruleEString ) ) )? (otherlv_4= 'successor' ( ( ruleEString ) ) )? otherlv_6= 'refersTo' ( ( ruleEString ) ) otherlv_8= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1626:3: otherlv_0= 'ActionReference' otherlv_1= '{' (otherlv_2= 'predecessor' ( ( ruleEString ) ) )? (otherlv_4= 'successor' ( ( ruleEString ) ) )? otherlv_6= 'refersTo' ( ( ruleEString ) ) otherlv_8= '}'
+            {
+            otherlv_0=(Token)match(input,46,FollowSets000.FOLLOW_46_in_ruleActionReference3489); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getActionReferenceAccess().getActionReferenceKeyword_0());
+                
+            otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleActionReference3501); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getActionReferenceAccess().getLeftCurlyBracketKeyword_1());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1634:1: (otherlv_2= 'predecessor' ( ( ruleEString ) ) )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+
+            if ( (LA29_0==37) ) {
+                alt29=1;
+            }
+            switch (alt29) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1634:3: otherlv_2= 'predecessor' ( ( ruleEString ) )
+                    {
+                    otherlv_2=(Token)match(input,37,FollowSets000.FOLLOW_37_in_ruleActionReference3514); 
+
+                        	newLeafNode(otherlv_2, grammarAccess.getActionReferenceAccess().getPredecessorKeyword_2_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1638:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1639:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1639:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1640:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getActionReferenceRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getActionReferenceAccess().getPredecessorAbstractControlFlowElementCrossReference_2_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleActionReference3537);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1653:4: (otherlv_4= 'successor' ( ( ruleEString ) ) )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
+
+            if ( (LA30_0==38) ) {
+                alt30=1;
+            }
+            switch (alt30) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1653:6: otherlv_4= 'successor' ( ( ruleEString ) )
+                    {
+                    otherlv_4=(Token)match(input,38,FollowSets000.FOLLOW_38_in_ruleActionReference3552); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getActionReferenceAccess().getSuccessorKeyword_3_0());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1657:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1658:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1658:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1659:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getActionReferenceRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getActionReferenceAccess().getSuccessorAbstractControlFlowElementCrossReference_3_1_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleActionReference3575);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_6=(Token)match(input,47,FollowSets000.FOLLOW_47_in_ruleActionReference3589); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getActionReferenceAccess().getRefersToKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1676:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1677:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1677:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1678:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getActionReferenceRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getActionReferenceAccess().getRefersToActionCrossReference_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleActionReference3612);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleActionReference3624); 
+
+                	newLeafNode(otherlv_8, grammarAccess.getActionReferenceAccess().getRightCurlyBracketKeyword_6());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionReference"
+
+
+    // $ANTLR start "entryRuleEInt"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1703:1: entryRuleEInt returns [String current=null] : iv_ruleEInt= ruleEInt EOF ;
+    public final String entryRuleEInt() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleEInt = null;
+
+
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1704:2: (iv_ruleEInt= ruleEInt EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1705:2: iv_ruleEInt= ruleEInt EOF
+            {
+             newCompositeNode(grammarAccess.getEIntRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEInt_in_entryRuleEInt3661);
+            iv_ruleEInt=ruleEInt();
+
+            state._fsp--;
+
+             current =iv_ruleEInt.getText(); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEInt3672); 
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleEInt"
+
+
+    // $ANTLR start "ruleEInt"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1712:1: ruleEInt returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ;
+    public final AntlrDatatypeRuleToken ruleEInt() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        Token this_INT_1=null;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1715:28: ( ( (kw= '-' )? this_INT_1= RULE_INT ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1716:1: ( (kw= '-' )? this_INT_1= RULE_INT )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1716:1: ( (kw= '-' )? this_INT_1= RULE_INT )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1716:2: (kw= '-' )? this_INT_1= RULE_INT
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1716:2: (kw= '-' )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==48) ) {
+                alt31=1;
+            }
+            switch (alt31) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1717:2: kw= '-'
+                    {
+                    kw=(Token)match(input,48,FollowSets000.FOLLOW_48_in_ruleEInt3711); 
+
+                            current.merge(kw);
+                            newLeafNode(kw, grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+            this_INT_1=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_ruleEInt3728); 
+
+            		current.merge(this_INT_1);
+                
+             
+                newLeafNode(this_INT_1, grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); 
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleEInt"
+
+
+    // $ANTLR start "entryRuleModelVariableConfigurationRange"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1737: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1738:2: (iv_ruleModelVariableConfigurationRange= ruleModelVariableConfigurationRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1739:2: iv_ruleModelVariableConfigurationRange= ruleModelVariableConfigurationRange EOF
+            {
+             newCompositeNode(grammarAccess.getModelVariableConfigurationRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleModelVariableConfigurationRange_in_entryRuleModelVariableConfigurationRange3773);
+            iv_ruleModelVariableConfigurationRange=ruleModelVariableConfigurationRange();
+
+            state._fsp--;
+
+             current =iv_ruleModelVariableConfigurationRange; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleModelVariableConfigurationRange3783); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1746:1: ruleModelVariableConfigurationRange returns [EObject current=null] : (otherlv_0= 'ModelVariableConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'minValue' ( (lv_minValue_4_0= ruleEDouble ) ) otherlv_5= 'maxValue' ( (lv_maxValue_6_0= ruleEDouble ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= '}' ) ;
+    public final EObject ruleModelVariableConfigurationRange() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        AntlrDatatypeRuleToken lv_id_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_minValue_4_0 = null;
+
+        AntlrDatatypeRuleToken lv_maxValue_6_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1749:28: ( (otherlv_0= 'ModelVariableConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'minValue' ( (lv_minValue_4_0= ruleEDouble ) ) otherlv_5= 'maxValue' ( (lv_maxValue_6_0= ruleEDouble ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1750:1: (otherlv_0= 'ModelVariableConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'minValue' ( (lv_minValue_4_0= ruleEDouble ) ) otherlv_5= 'maxValue' ( (lv_maxValue_6_0= ruleEDouble ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1750:1: (otherlv_0= 'ModelVariableConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'minValue' ( (lv_minValue_4_0= ruleEDouble ) ) otherlv_5= 'maxValue' ( (lv_maxValue_6_0= ruleEDouble ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1750:3: otherlv_0= 'ModelVariableConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' otherlv_3= 'minValue' ( (lv_minValue_4_0= ruleEDouble ) ) otherlv_5= 'maxValue' ( (lv_maxValue_6_0= ruleEDouble ) ) otherlv_7= 'adaptableEntity' ( ( ruleEString ) ) otherlv_9= '}'
+            {
+            otherlv_0=(Token)match(input,49,FollowSets000.FOLLOW_49_in_ruleModelVariableConfigurationRange3820); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getModelVariableConfigurationRangeAccess().getModelVariableConfigurationRangeKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1754:1: ( (lv_id_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1755:1: (lv_id_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1755:1: (lv_id_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1756:3: lv_id_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange3841);
+            lv_id_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"id",
+                    		lv_id_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleModelVariableConfigurationRange3853); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getModelVariableConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+                
+            otherlv_3=(Token)match(input,50,FollowSets000.FOLLOW_50_in_ruleModelVariableConfigurationRange3865); 
+
+                	newLeafNode(otherlv_3, grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueKeyword_3());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1780:1: ( (lv_minValue_4_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1781:1: (lv_minValue_4_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1781:1: (lv_minValue_4_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1782:3: lv_minValue_4_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMinValueEDoubleParserRuleCall_4_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleModelVariableConfigurationRange3886);
+            lv_minValue_4_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"minValue",
+                    		lv_minValue_4_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,51,FollowSets000.FOLLOW_51_in_ruleModelVariableConfigurationRange3898); 
+
+                	newLeafNode(otherlv_5, grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueKeyword_5());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1802:1: ( (lv_maxValue_6_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1803:1: (lv_maxValue_6_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1803:1: (lv_maxValue_6_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1804:3: lv_maxValue_6_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getMaxValueEDoubleParserRuleCall_6_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleModelVariableConfigurationRange3919);
+            lv_maxValue_6_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getModelVariableConfigurationRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"maxValue",
+                    		lv_maxValue_6_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_7=(Token)match(input,52,FollowSets000.FOLLOW_52_in_ruleModelVariableConfigurationRange3931); 
+
+                	newLeafNode(otherlv_7, grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityKeyword_7());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1824:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1825:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1825:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1826:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getModelVariableConfigurationRangeRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getModelVariableConfigurationRangeAccess().getAdaptableEntityAdaptableEntityCrossReference_8_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange3954);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_9=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleModelVariableConfigurationRange3966); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getModelVariableConfigurationRangeAccess().getRightCurlyBracketKeyword_9());
+                
+
+            }
+
+
+            }
+
+             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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1851: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1852:2: (iv_ruleModelEntityConfigurationRange= ruleModelEntityConfigurationRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1853:2: iv_ruleModelEntityConfigurationRange= ruleModelEntityConfigurationRange EOF
+            {
+             newCompositeNode(grammarAccess.getModelEntityConfigurationRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleModelEntityConfigurationRange_in_entryRuleModelEntityConfigurationRange4002);
+            iv_ruleModelEntityConfigurationRange=ruleModelEntityConfigurationRange();
+
+            state._fsp--;
+
+             current =iv_ruleModelEntityConfigurationRange; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleModelEntityConfigurationRange4012); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1860:1: ruleModelEntityConfigurationRange returns [EObject current=null] : (otherlv_0= 'ModelEntityConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'entity' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? 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_2=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_11=null;
+        AntlrDatatypeRuleToken lv_id_1_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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1863:28: ( (otherlv_0= 'ModelEntityConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'entity' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? 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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1864:1: (otherlv_0= 'ModelEntityConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'entity' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? 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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1864:1: (otherlv_0= 'ModelEntityConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'entity' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? 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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1864:3: otherlv_0= 'ModelEntityConfigurationRange' ( (lv_id_1_0= ruleEString ) ) otherlv_2= '{' (otherlv_3= 'entity' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )? otherlv_9= 'variationPossibility' ( (lv_variationPossibility_10_0= ruleVariationType ) ) otherlv_11= '}'
+            {
+            otherlv_0=(Token)match(input,53,FollowSets000.FOLLOW_53_in_ruleModelEntityConfigurationRange4049); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getModelEntityConfigurationRangeAccess().getModelEntityConfigurationRangeKeyword_0());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1868:1: ( (lv_id_1_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1869:1: (lv_id_1_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1869:1: (lv_id_1_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1870:3: lv_id_1_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getIdEStringParserRuleCall_1_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4070);
+            lv_id_1_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getModelEntityConfigurationRangeRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"id",
+                    		lv_id_1_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleModelEntityConfigurationRange4082); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getModelEntityConfigurationRangeAccess().getLeftCurlyBracketKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1890:1: (otherlv_3= 'entity' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')' )?
+            int alt33=2;
+            int LA33_0 = input.LA(1);
+
+            if ( (LA33_0==54) ) {
+                alt33=1;
+            }
+            switch (alt33) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1890:3: otherlv_3= 'entity' otherlv_4= '(' ( ( ruleEString ) ) (otherlv_6= ',' ( ( ruleEString ) ) )* otherlv_8= ')'
+                    {
+                    otherlv_3=(Token)match(input,54,FollowSets000.FOLLOW_54_in_ruleModelEntityConfigurationRange4095); 
+
+                        	newLeafNode(otherlv_3, grammarAccess.getModelEntityConfigurationRangeAccess().getEntityKeyword_3_0());
+                        
+                    otherlv_4=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleModelEntityConfigurationRange4107); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getModelEntityConfigurationRangeAccess().getLeftParenthesisKeyword_3_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1898:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1899:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1899:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1900:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getModelEntityConfigurationRangeRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4130);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1913:2: (otherlv_6= ',' ( ( ruleEString ) ) )*
+                    loop32:
+                    do {
+                        int alt32=2;
+                        int LA32_0 = input.LA(1);
+
+                        if ( (LA32_0==15) ) {
+                            alt32=1;
+                        }
+
+
+                        switch (alt32) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1913:4: otherlv_6= ',' ( ( ruleEString ) )
+                    	    {
+                    	    otherlv_6=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleModelEntityConfigurationRange4143); 
+
+                    	        	newLeafNode(otherlv_6, grammarAccess.getModelEntityConfigurationRangeAccess().getCommaKeyword_3_3_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1917:1: ( ( ruleEString ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1918:1: ( ruleEString )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1918:1: ( ruleEString )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1919:3: ruleEString
+                    	    {
+
+                    	    			if (current==null) {
+                    	    	            current = createModelElement(grammarAccess.getModelEntityConfigurationRangeRule());
+                    	    	        }
+                    	            
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getEntityEObjectCrossReference_3_3_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4166);
+                    	    ruleEString();
+
+                    	    state._fsp--;
+
+                    	     
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop32;
+                        }
+                    } while (true);
+
+                    otherlv_8=(Token)match(input,23,FollowSets000.FOLLOW_23_in_ruleModelEntityConfigurationRange4180); 
+
+                        	newLeafNode(otherlv_8, grammarAccess.getModelEntityConfigurationRangeAccess().getRightParenthesisKeyword_3_4());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_9=(Token)match(input,55,FollowSets000.FOLLOW_55_in_ruleModelEntityConfigurationRange4194); 
+
+                	newLeafNode(otherlv_9, grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1940:1: ( (lv_variationPossibility_10_0= ruleVariationType ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1941:1: (lv_variationPossibility_10_0= ruleVariationType )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1941:1: (lv_variationPossibility_10_0= ruleVariationType )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1942:3: lv_variationPossibility_10_0= ruleVariationType
+            {
+             
+            	        newCompositeNode(grammarAccess.getModelEntityConfigurationRangeAccess().getVariationPossibilityVariationTypeParserRuleCall_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleVariationType_in_ruleModelEntityConfigurationRange4215);
+            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,16,FollowSets000.FOLLOW_16_in_ruleModelEntityConfigurationRange4227); 
+
+                	newLeafNode(otherlv_11, grammarAccess.getModelEntityConfigurationRangeAccess().getRightCurlyBracketKeyword_6());
+                
+
+            }
+
+
+            }
+
+             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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1970: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1971:2: (iv_ruleEDouble= ruleEDouble EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1972:2: iv_ruleEDouble= ruleEDouble EOF
+            {
+             newCompositeNode(grammarAccess.getEDoubleRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_entryRuleEDouble4264);
+            iv_ruleEDouble=ruleEDouble();
+
+            state._fsp--;
+
+             current =iv_ruleEDouble.getText(); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEDouble4275); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1979: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1982: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1983: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1983: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1983: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1983:2: (kw= '-' )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
+
+            if ( (LA34_0==48) ) {
+                alt34=1;
+            }
+            switch (alt34) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1984:2: kw= '-'
+                    {
+                    kw=(Token)match(input,48,FollowSets000.FOLLOW_48_in_ruleEDouble4314); 
+
+                            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:1989:3: (this_INT_1= RULE_INT )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
+
+            if ( (LA35_0==RULE_INT) ) {
+                alt35=1;
+            }
+            switch (alt35) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:1989:8: this_INT_1= RULE_INT
+                    {
+                    this_INT_1=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_ruleEDouble4332); 
+
+                    		current.merge(this_INT_1);
+                        
+                     
+                        newLeafNode(this_INT_1, grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); 
+                        
+
+                    }
+                    break;
+
+            }
+
+            kw=(Token)match(input,56,FollowSets000.FOLLOW_56_in_ruleEDouble4352); 
+
+                    current.merge(kw);
+                    newLeafNode(kw, grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); 
+                
+            this_INT_3=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_ruleEDouble4367); 
+
+            		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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2009:1: ( (kw= 'E' | kw= 'e' ) (kw= '-' )? this_INT_7= RULE_INT )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( ((LA38_0>=57 && LA38_0<=58)) ) {
+                alt38=1;
+            }
+            switch (alt38) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2009: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2009:2: (kw= 'E' | kw= 'e' )
+                    int alt36=2;
+                    int LA36_0 = input.LA(1);
+
+                    if ( (LA36_0==57) ) {
+                        alt36=1;
+                    }
+                    else if ( (LA36_0==58) ) {
+                        alt36=2;
+                    }
+                    else {
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 36, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt36) {
+                        case 1 :
+                            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2010:2: kw= 'E'
+                            {
+                            kw=(Token)match(input,57,FollowSets000.FOLLOW_57_in_ruleEDouble4387); 
+
+                                    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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2017:2: kw= 'e'
+                            {
+                            kw=(Token)match(input,58,FollowSets000.FOLLOW_58_in_ruleEDouble4406); 
+
+                                    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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2022:2: (kw= '-' )?
+                    int alt37=2;
+                    int LA37_0 = input.LA(1);
+
+                    if ( (LA37_0==48) ) {
+                        alt37=1;
+                    }
+                    switch (alt37) {
+                        case 1 :
+                            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2023:2: kw= '-'
+                            {
+                            kw=(Token)match(input,48,FollowSets000.FOLLOW_48_in_ruleEDouble4421); 
+
+                                    current.merge(kw);
+                                    newLeafNode(kw, grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); 
+                                
+
+                            }
+                            break;
+
+                    }
+
+                    this_INT_7=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_ruleEDouble4438); 
+
+                    		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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2045: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2046:2: (iv_rulePropertyRange= rulePropertyRange EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2047:2: iv_rulePropertyRange= rulePropertyRange EOF
+            {
+             newCompositeNode(grammarAccess.getPropertyRangeRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePropertyRange_in_entryRulePropertyRange4487);
+            iv_rulePropertyRange=rulePropertyRange();
+
+            state._fsp--;
+
+             current =iv_rulePropertyRange; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePropertyRange4497); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2054:1: rulePropertyRange returns [EObject current=null] : (otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( ( ruleEString ) ) otherlv_4= 'maxValueConstraint' ( ( ruleEString ) ) 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;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2057:28: ( (otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( ( ruleEString ) ) otherlv_4= 'maxValueConstraint' ( ( ruleEString ) ) otherlv_6= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2058:1: (otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( ( ruleEString ) ) otherlv_4= 'maxValueConstraint' ( ( ruleEString ) ) otherlv_6= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2058:1: (otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( ( ruleEString ) ) otherlv_4= 'maxValueConstraint' ( ( ruleEString ) ) otherlv_6= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2058:3: otherlv_0= 'PropertyRange' otherlv_1= '{' otherlv_2= 'minValueConstraint' ( ( ruleEString ) ) otherlv_4= 'maxValueConstraint' ( ( ruleEString ) ) otherlv_6= '}'
+            {
+            otherlv_0=(Token)match(input,59,FollowSets000.FOLLOW_59_in_rulePropertyRange4534); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getPropertyRangeAccess().getPropertyRangeKeyword_0());
+                
+            otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_rulePropertyRange4546); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getPropertyRangeAccess().getLeftCurlyBracketKeyword_1());
+                
+            otherlv_2=(Token)match(input,60,FollowSets000.FOLLOW_60_in_rulePropertyRange4558); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getPropertyRangeAccess().getMinValueConstraintKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2070:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2071:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2071:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2072:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getPropertyRangeRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMinValueConstraintOclConstraintCrossReference_3_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rulePropertyRange4581);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,61,FollowSets000.FOLLOW_61_in_rulePropertyRange4593); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getPropertyRangeAccess().getMaxValueConstraintKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2089:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2090:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2090:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2091:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getPropertyRangeRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getPropertyRangeAccess().getMaxValueConstraintOclConstraintCrossReference_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_rulePropertyRange4616);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_6=(Token)match(input,16,FollowSets000.FOLLOW_16_in_rulePropertyRange4628); 
+
+                	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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2116: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2117:2: (iv_ruleSetOfConfigurations= ruleSetOfConfigurations EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2118:2: iv_ruleSetOfConfigurations= ruleSetOfConfigurations EOF
+            {
+             newCompositeNode(grammarAccess.getSetOfConfigurationsRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSetOfConfigurations_in_entryRuleSetOfConfigurations4664);
+            iv_ruleSetOfConfigurations=ruleSetOfConfigurations();
+
+            state._fsp--;
+
+             current =iv_ruleSetOfConfigurations; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSetOfConfigurations4674); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2125:1: ruleSetOfConfigurations returns [EObject current=null] : (otherlv_0= 'SetOfConfigurations' otherlv_1= '{' otherlv_2= 'valueConstraint' ( ( ruleEString ) ) (otherlv_4= 'variants' otherlv_5= '(' ( ( ruleEString ) ) (otherlv_7= ',' ( ( ruleEString ) ) )* otherlv_9= ')' )? 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_4=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2128:28: ( (otherlv_0= 'SetOfConfigurations' otherlv_1= '{' otherlv_2= 'valueConstraint' ( ( ruleEString ) ) (otherlv_4= 'variants' otherlv_5= '(' ( ( ruleEString ) ) (otherlv_7= ',' ( ( ruleEString ) ) )* otherlv_9= ')' )? otherlv_10= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2129:1: (otherlv_0= 'SetOfConfigurations' otherlv_1= '{' otherlv_2= 'valueConstraint' ( ( ruleEString ) ) (otherlv_4= 'variants' otherlv_5= '(' ( ( ruleEString ) ) (otherlv_7= ',' ( ( ruleEString ) ) )* otherlv_9= ')' )? otherlv_10= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2129:1: (otherlv_0= 'SetOfConfigurations' otherlv_1= '{' otherlv_2= 'valueConstraint' ( ( ruleEString ) ) (otherlv_4= 'variants' otherlv_5= '(' ( ( ruleEString ) ) (otherlv_7= ',' ( ( ruleEString ) ) )* otherlv_9= ')' )? otherlv_10= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2129:3: otherlv_0= 'SetOfConfigurations' otherlv_1= '{' otherlv_2= 'valueConstraint' ( ( ruleEString ) ) (otherlv_4= 'variants' otherlv_5= '(' ( ( ruleEString ) ) (otherlv_7= ',' ( ( ruleEString ) ) )* otherlv_9= ')' )? otherlv_10= '}'
+            {
+            otherlv_0=(Token)match(input,62,FollowSets000.FOLLOW_62_in_ruleSetOfConfigurations4711); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getSetOfConfigurationsAccess().getSetOfConfigurationsKeyword_0());
+                
+            otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleSetOfConfigurations4723); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getSetOfConfigurationsAccess().getLeftCurlyBracketKeyword_1());
+                
+            otherlv_2=(Token)match(input,63,FollowSets000.FOLLOW_63_in_ruleSetOfConfigurations4735); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getSetOfConfigurationsAccess().getValueConstraintKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2141:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2142:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2142:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2143:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getValueConstraintOclConstraintCrossReference_3_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSetOfConfigurations4758);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2156:2: (otherlv_4= 'variants' otherlv_5= '(' ( ( ruleEString ) ) (otherlv_7= ',' ( ( ruleEString ) ) )* otherlv_9= ')' )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( (LA40_0==64) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2156:4: otherlv_4= 'variants' otherlv_5= '(' ( ( ruleEString ) ) (otherlv_7= ',' ( ( ruleEString ) ) )* otherlv_9= ')'
+                    {
+                    otherlv_4=(Token)match(input,64,FollowSets000.FOLLOW_64_in_ruleSetOfConfigurations4771); 
+
+                        	newLeafNode(otherlv_4, grammarAccess.getSetOfConfigurationsAccess().getVariantsKeyword_4_0());
+                        
+                    otherlv_5=(Token)match(input,22,FollowSets000.FOLLOW_22_in_ruleSetOfConfigurations4783); 
+
+                        	newLeafNode(otherlv_5, grammarAccess.getSetOfConfigurationsAccess().getLeftParenthesisKeyword_4_1());
+                        
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2164:1: ( ( ruleEString ) )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2165:1: ( ruleEString )
+                    {
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2165:1: ( ruleEString )
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2166:3: ruleEString
+                    {
+
+                    			if (current==null) {
+                    	            current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+                    	        }
+                            
+                     
+                    	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_2_0()); 
+                    	    
+                    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSetOfConfigurations4806);
+                    ruleEString();
+
+                    state._fsp--;
+
+                     
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+
+                    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2179:2: (otherlv_7= ',' ( ( ruleEString ) ) )*
+                    loop39:
+                    do {
+                        int alt39=2;
+                        int LA39_0 = input.LA(1);
+
+                        if ( (LA39_0==15) ) {
+                            alt39=1;
+                        }
+
+
+                        switch (alt39) {
+                    	case 1 :
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2179:4: otherlv_7= ',' ( ( ruleEString ) )
+                    	    {
+                    	    otherlv_7=(Token)match(input,15,FollowSets000.FOLLOW_15_in_ruleSetOfConfigurations4819); 
+
+                    	        	newLeafNode(otherlv_7, grammarAccess.getSetOfConfigurationsAccess().getCommaKeyword_4_3_0());
+                    	        
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2183:1: ( ( ruleEString ) )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2184:1: ( ruleEString )
+                    	    {
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2184:1: ( ruleEString )
+                    	    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2185:3: ruleEString
+                    	    {
+
+                    	    			if (current==null) {
+                    	    	            current = createModelElement(grammarAccess.getSetOfConfigurationsRule());
+                    	    	        }
+                    	            
+                    	     
+                    	    	        newCompositeNode(grammarAccess.getSetOfConfigurationsAccess().getVariantsEObjectCrossReference_4_3_1_0()); 
+                    	    	    
+                    	    pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleSetOfConfigurations4842);
+                    	    ruleEString();
+
+                    	    state._fsp--;
+
+                    	     
+                    	    	        afterParserOrEnumRuleCall();
+                    	    	    
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop39;
+                        }
+                    } while (true);
+
+                    otherlv_9=(Token)match(input,23,FollowSets000.FOLLOW_23_in_ruleSetOfConfigurations4856); 
+
+                        	newLeafNode(otherlv_9, grammarAccess.getSetOfConfigurationsAccess().getRightParenthesisKeyword_4_4());
+                        
+
+                    }
+                    break;
+
+            }
+
+            otherlv_10=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleSetOfConfigurations4870); 
+
+                	newLeafNode(otherlv_10, grammarAccess.getSetOfConfigurationsAccess().getRightCurlyBracketKeyword_5());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSetOfConfigurations"
+
+
+    // $ANTLR start "entryRuleEvent"
+    // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2218: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2219:2: (iv_ruleEvent= ruleEvent EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2220:2: iv_ruleEvent= ruleEvent EOF
+            {
+             newCompositeNode(grammarAccess.getEventRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEvent_in_entryRuleEvent4910);
+            iv_ruleEvent=ruleEvent();
+
+            state._fsp--;
+
+             current =iv_ruleEvent; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEvent4920); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2227:1: ruleEvent returns [EObject current=null] : ( () otherlv_1= 'Event' ) ;
+    public final EObject ruleEvent() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2230:28: ( ( () otherlv_1= 'Event' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2231:1: ( () otherlv_1= 'Event' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2231:1: ( () otherlv_1= 'Event' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2231:2: () otherlv_1= 'Event'
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2231:2: ()
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2232:5: 
+            {
+
+                    current = forceCreateModelElement(
+                        grammarAccess.getEventAccess().getEventAction_0(),
+                        current);
+                
+
+            }
+
+            otherlv_1=(Token)match(input,65,FollowSets000.FOLLOW_65_in_ruleEvent4966); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getEventAccess().getEventKeyword_1());
+                
+
+            }
+
+
+            }
+
+             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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2249: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2250:2: (iv_ruleWeightedTactic= ruleWeightedTactic EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2251:2: iv_ruleWeightedTactic= ruleWeightedTactic EOF
+            {
+             newCompositeNode(grammarAccess.getWeightedTacticRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightedTactic_in_entryRuleWeightedTactic5002);
+            iv_ruleWeightedTactic=ruleWeightedTactic();
+
+            state._fsp--;
+
+             current =iv_ruleWeightedTactic; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightedTactic5012); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2258:1: ruleWeightedTactic returns [EObject current=null] : (otherlv_0= 'WeightedTactic' otherlv_1= '{' otherlv_2= 'currentWeight' ( (lv_currentWeight_3_0= ruleEDouble ) ) otherlv_4= 'defaultWeight' ( (lv_defaultWeight_5_0= ruleEDouble ) ) otherlv_6= 'uses' ( ( ruleEString ) ) otherlv_8= '}' ) ;
+    public final EObject ruleWeightedTactic() 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;
+        Token otherlv_8=null;
+        AntlrDatatypeRuleToken lv_currentWeight_3_0 = null;
+
+        AntlrDatatypeRuleToken lv_defaultWeight_5_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2261:28: ( (otherlv_0= 'WeightedTactic' otherlv_1= '{' otherlv_2= 'currentWeight' ( (lv_currentWeight_3_0= ruleEDouble ) ) otherlv_4= 'defaultWeight' ( (lv_defaultWeight_5_0= ruleEDouble ) ) otherlv_6= 'uses' ( ( ruleEString ) ) otherlv_8= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2262:1: (otherlv_0= 'WeightedTactic' otherlv_1= '{' otherlv_2= 'currentWeight' ( (lv_currentWeight_3_0= ruleEDouble ) ) otherlv_4= 'defaultWeight' ( (lv_defaultWeight_5_0= ruleEDouble ) ) otherlv_6= 'uses' ( ( ruleEString ) ) otherlv_8= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2262:1: (otherlv_0= 'WeightedTactic' otherlv_1= '{' otherlv_2= 'currentWeight' ( (lv_currentWeight_3_0= ruleEDouble ) ) otherlv_4= 'defaultWeight' ( (lv_defaultWeight_5_0= ruleEDouble ) ) otherlv_6= 'uses' ( ( ruleEString ) ) otherlv_8= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2262:3: otherlv_0= 'WeightedTactic' otherlv_1= '{' otherlv_2= 'currentWeight' ( (lv_currentWeight_3_0= ruleEDouble ) ) otherlv_4= 'defaultWeight' ( (lv_defaultWeight_5_0= ruleEDouble ) ) otherlv_6= 'uses' ( ( ruleEString ) ) otherlv_8= '}'
+            {
+            otherlv_0=(Token)match(input,66,FollowSets000.FOLLOW_66_in_ruleWeightedTactic5049); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getWeightedTacticAccess().getWeightedTacticKeyword_0());
+                
+            otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleWeightedTactic5061); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getWeightedTacticAccess().getLeftCurlyBracketKeyword_1());
+                
+            otherlv_2=(Token)match(input,67,FollowSets000.FOLLOW_67_in_ruleWeightedTactic5073); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getWeightedTacticAccess().getCurrentWeightKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2274:1: ( (lv_currentWeight_3_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2275:1: (lv_currentWeight_3_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2275:1: (lv_currentWeight_3_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2276:3: lv_currentWeight_3_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getCurrentWeightEDoubleParserRuleCall_3_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleWeightedTactic5094);
+            lv_currentWeight_3_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"currentWeight",
+                    		lv_currentWeight_3_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,68,FollowSets000.FOLLOW_68_in_ruleWeightedTactic5106); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getWeightedTacticAccess().getDefaultWeightKeyword_4());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2296:1: ( (lv_defaultWeight_5_0= ruleEDouble ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2297:1: (lv_defaultWeight_5_0= ruleEDouble )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2297:1: (lv_defaultWeight_5_0= ruleEDouble )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2298:3: lv_defaultWeight_5_0= ruleEDouble
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getDefaultWeightEDoubleParserRuleCall_5_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_ruleWeightedTactic5127);
+            lv_defaultWeight_5_0=ruleEDouble();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightedTacticRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"defaultWeight",
+                    		lv_defaultWeight_5_0, 
+                    		"EDouble");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_6=(Token)match(input,69,FollowSets000.FOLLOW_69_in_ruleWeightedTactic5139); 
+
+                	newLeafNode(otherlv_6, grammarAccess.getWeightedTacticAccess().getUsesKeyword_6());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2318:1: ( ( ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2319:1: ( ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2319:1: ( ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2320:3: ruleEString
+            {
+
+            			if (current==null) {
+            	            current = createModelElement(grammarAccess.getWeightedTacticRule());
+            	        }
+                    
+             
+            	        newCompositeNode(grammarAccess.getWeightedTacticAccess().getUsesTacticCrossReference_7_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightedTactic5162);
+            ruleEString();
+
+            state._fsp--;
+
+             
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleWeightedTactic5174); 
+
+                	newLeafNode(otherlv_8, grammarAccess.getWeightedTacticAccess().getRightCurlyBracketKeyword_8());
+                
+
+            }
+
+
+            }
+
+             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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2345: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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2346:2: (iv_ruleWeightingFunction= ruleWeightingFunction EOF )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2347:2: iv_ruleWeightingFunction= ruleWeightingFunction EOF
+            {
+             newCompositeNode(grammarAccess.getWeightingFunctionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWeightingFunction_in_entryRuleWeightingFunction5210);
+            iv_ruleWeightingFunction=ruleWeightingFunction();
+
+            state._fsp--;
+
+             current =iv_ruleWeightingFunction; 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWeightingFunction5220); 
+
+            }
+
+        }
+         
+            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/parser/antlr/internal/InternalStaAdaptationLanguage.g:2354:1: ruleWeightingFunction returns [EObject current=null] : (otherlv_0= 'WeightingFunction' otherlv_1= '{' otherlv_2= 'function' ( (lv_function_3_0= ruleEString ) ) otherlv_4= '}' ) ;
+    public final EObject ruleWeightingFunction() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        AntlrDatatypeRuleToken lv_function_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2357:28: ( (otherlv_0= 'WeightingFunction' otherlv_1= '{' otherlv_2= 'function' ( (lv_function_3_0= ruleEString ) ) otherlv_4= '}' ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2358:1: (otherlv_0= 'WeightingFunction' otherlv_1= '{' otherlv_2= 'function' ( (lv_function_3_0= ruleEString ) ) otherlv_4= '}' )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2358:1: (otherlv_0= 'WeightingFunction' otherlv_1= '{' otherlv_2= 'function' ( (lv_function_3_0= ruleEString ) ) otherlv_4= '}' )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2358:3: otherlv_0= 'WeightingFunction' otherlv_1= '{' otherlv_2= 'function' ( (lv_function_3_0= ruleEString ) ) otherlv_4= '}'
+            {
+            otherlv_0=(Token)match(input,70,FollowSets000.FOLLOW_70_in_ruleWeightingFunction5257); 
+
+                	newLeafNode(otherlv_0, grammarAccess.getWeightingFunctionAccess().getWeightingFunctionKeyword_0());
+                
+            otherlv_1=(Token)match(input,12,FollowSets000.FOLLOW_12_in_ruleWeightingFunction5269); 
+
+                	newLeafNode(otherlv_1, grammarAccess.getWeightingFunctionAccess().getLeftCurlyBracketKeyword_1());
+                
+            otherlv_2=(Token)match(input,71,FollowSets000.FOLLOW_71_in_ruleWeightingFunction5281); 
+
+                	newLeafNode(otherlv_2, grammarAccess.getWeightingFunctionAccess().getFunctionKeyword_2());
+                
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2370:1: ( (lv_function_3_0= ruleEString ) )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2371:1: (lv_function_3_0= ruleEString )
+            {
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2371:1: (lv_function_3_0= ruleEString )
+            // ../edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/parser/antlr/internal/InternalStaAdaptationLanguage.g:2372:3: lv_function_3_0= ruleEString
+            {
+             
+            	        newCompositeNode(grammarAccess.getWeightingFunctionAccess().getFunctionEStringParserRuleCall_3_0()); 
+            	    
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_ruleWeightingFunction5302);
+            lv_function_3_0=ruleEString();
+
+            state._fsp--;
+
+
+            	        if (current==null) {
+            	            current = createModelElementForParent(grammarAccess.getWeightingFunctionRule());
+            	        }
+                   		set(
+                   			current, 
+                   			"function",
+                    		lv_function_3_0, 
+                    		"EString");
+            	        afterParserOrEnumRuleCall();
+            	    
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,16,FollowSets000.FOLLOW_16_in_ruleWeightingFunction5314); 
+
+                	newLeafNode(otherlv_4, grammarAccess.getWeightingFunctionAccess().getRightCurlyBracketKeyword_4());
+                
+
+            }
+
+
+            }
+
+             leaveRule(); 
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleWeightingFunction"
+
+    // Delegated rules
+
+
+ 
+
+    
+    private static class FollowSets000 {
+        public static final BitSet FOLLOW_ruleStaRepository_in_entryRuleStaRepository75 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStaRepository85 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_11_in_ruleStaRepository122 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStaRepository143 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleStaRepository155 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleStaRepository167 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStaRepository188 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleStaRepository200 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleStaRepository212 = new BitSet(new long[]{0x0000000000100000L});
+        public static final BitSet FOLLOW_ruleTactic_in_ruleStaRepository233 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_15_in_ruleStaRepository246 = new BitSet(new long[]{0x0000000000100000L});
+        public static final BitSet FOLLOW_ruleTactic_in_ruleStaRepository267 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_16_in_ruleStaRepository281 = new BitSet(new long[]{0x0000000000020000L});
+        public static final BitSet FOLLOW_17_in_ruleStaRepository293 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleStaRepository305 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_ruleAction_in_ruleStaRepository326 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_15_in_ruleStaRepository339 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_ruleAction_in_ruleStaRepository360 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_16_in_ruleStaRepository374 = new BitSet(new long[]{0x0000000000040000L});
+        public static final BitSet FOLLOW_18_in_ruleStaRepository386 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleStaRepository398 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_ruleStrategy_in_ruleStaRepository419 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_15_in_ruleStaRepository432 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_ruleStrategy_in_ruleStaRepository453 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_16_in_ruleStaRepository467 = new BitSet(new long[]{0x0000000000090000L});
+        public static final BitSet FOLLOW_19_in_ruleStaRepository480 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleStaRepository492 = new BitSet(new long[]{0x0000000100000000L});
+        public static final BitSet FOLLOW_ruleParameter_in_ruleStaRepository513 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_15_in_ruleStaRepository526 = new BitSet(new long[]{0x0000000100000000L});
+        public static final BitSet FOLLOW_ruleParameter_in_ruleStaRepository547 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_16_in_ruleStaRepository561 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleStaRepository575 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_entryRuleAbstractControlFlowElement613 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAbstractControlFlowElement623 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStart_in_ruleAbstractControlFlowElement670 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStop_in_ruleAbstractControlFlowElement697 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoop_in_ruleAbstractControlFlowElement724 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranch_in_ruleAbstractControlFlowElement751 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleActionReference_in_ruleAbstractControlFlowElement778 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVariationType_in_entryRuleVariationType813 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleVariationType823 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePropertyRange_in_ruleVariationType870 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSetOfConfigurations_in_ruleVariationType897 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_entryRuleEString933 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEString944 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_STRING_in_ruleEString984 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_ruleEString1010 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTactic_in_entryRuleTactic1055 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleTactic1065 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_ruleTactic1102 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1123 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleTactic1135 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleTactic1147 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1168 = new BitSet(new long[]{0x0000000003200000L});
+        public static final BitSet FOLLOW_21_in_ruleTactic1181 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleTactic1193 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1216 = new BitSet(new long[]{0x0000000000808000L});
+        public static final BitSet FOLLOW_15_in_ruleTactic1229 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1252 = new BitSet(new long[]{0x0000000000808000L});
+        public static final BitSet FOLLOW_23_in_ruleTactic1266 = new BitSet(new long[]{0x0000000003000000L});
+        public static final BitSet FOLLOW_24_in_ruleTactic1281 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleTactic1304 = new BitSet(new long[]{0x0000000002000000L});
+        public static final BitSet FOLLOW_25_in_ruleTactic1318 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_ruleTactic1339 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleTactic1351 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAction_in_entryRuleAction1387 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAction1397 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_26_in_ruleAction1434 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1455 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleAction1467 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleAction1479 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1500 = new BitSet(new long[]{0x0000000009200000L});
+        public static final BitSet FOLLOW_24_in_ruleAction1513 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1536 = new BitSet(new long[]{0x0000000008200000L});
+        public static final BitSet FOLLOW_21_in_ruleAction1551 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleAction1563 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1586 = new BitSet(new long[]{0x0000000000808000L});
+        public static final BitSet FOLLOW_15_in_ruleAction1599 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1622 = new BitSet(new long[]{0x0000000000808000L});
+        public static final BitSet FOLLOW_23_in_ruleAction1636 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_27_in_ruleAction1650 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAction1673 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleAction1685 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStrategy_in_entryRuleStrategy1721 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStrategy1731 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_28_in_ruleStrategy1768 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStrategy1789 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleStrategy1801 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleStrategy1813 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStrategy1834 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_29_in_ruleStrategy1846 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStrategy1869 = new BitSet(new long[]{0x0000000040004000L});
+        public static final BitSet FOLLOW_30_in_ruleStrategy1882 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEvent_in_ruleStrategy1903 = new BitSet(new long[]{0x0000000000004000L});
+        public static final BitSet FOLLOW_14_in_ruleStrategy1917 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleStrategy1929 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_ruleStrategy1950 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_15_in_ruleStrategy1963 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_ruleStrategy1984 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_16_in_ruleStrategy1998 = new BitSet(new long[]{0x0000000080000000L});
+        public static final BitSet FOLLOW_31_in_ruleStrategy2010 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+        public static final BitSet FOLLOW_ruleWeightingFunction_in_ruleStrategy2031 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleStrategy2043 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleParameter_in_entryRuleParameter2079 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleParameter2089 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_32_in_ruleParameter2126 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleParameter2147 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleParameter2159 = new BitSet(new long[]{0x0000000200000000L});
+        public static final BitSet FOLLOW_33_in_ruleParameter2171 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleParameter2192 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleParameter2204 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_entryRuleAdaptationPlan2240 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAdaptationPlan2250 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_34_in_ruleAdaptationPlan2287 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAdaptationPlan2308 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleAdaptationPlan2320 = new BitSet(new long[]{0x0000000000002000L});
+        public static final BitSet FOLLOW_13_in_ruleAdaptationPlan2332 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleAdaptationPlan2353 = new BitSet(new long[]{0x0000000800010000L});
+        public static final BitSet FOLLOW_35_in_ruleAdaptationPlan2366 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleAdaptationPlan2378 = new BitSet(new long[]{0x0000499000000000L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_ruleAdaptationPlan2399 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_15_in_ruleAdaptationPlan2412 = new BitSet(new long[]{0x0000499000000000L});
+        public static final BitSet FOLLOW_ruleAbstractControlFlowElement_in_ruleAdaptationPlan2433 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_16_in_ruleAdaptationPlan2447 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleAdaptationPlan2461 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStart_in_entryRuleStart2497 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStart2507 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_ruleStart2553 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleStart2565 = new BitSet(new long[]{0x0000006000010000L});
+        public static final BitSet FOLLOW_37_in_ruleStart2578 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStart2601 = new BitSet(new long[]{0x0000004000010000L});
+        public static final BitSet FOLLOW_38_in_ruleStart2616 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStart2639 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleStart2653 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStop_in_entryRuleStop2689 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStop2699 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_39_in_ruleStop2745 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleStop2757 = new BitSet(new long[]{0x0000006000010000L});
+        public static final BitSet FOLLOW_37_in_ruleStop2770 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStop2793 = new BitSet(new long[]{0x0000004000010000L});
+        public static final BitSet FOLLOW_38_in_ruleStop2808 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleStop2831 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleStop2845 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoop_in_entryRuleLoop2881 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleLoop2891 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_ruleLoop2928 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleLoop2940 = new BitSet(new long[]{0x0000020000000000L});
+        public static final BitSet FOLLOW_41_in_ruleLoop2952 = new BitSet(new long[]{0x0001000000000040L});
+        public static final BitSet FOLLOW_ruleEInt_in_ruleLoop2973 = new BitSet(new long[]{0x0000046000000000L});
+        public static final BitSet FOLLOW_37_in_ruleLoop2986 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleLoop3009 = new BitSet(new long[]{0x0000044000000000L});
+        public static final BitSet FOLLOW_38_in_ruleLoop3024 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleLoop3047 = new BitSet(new long[]{0x0000040000000000L});
+        public static final BitSet FOLLOW_42_in_ruleLoop3061 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_ruleLoop3082 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleLoop3094 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranch_in_entryRuleBranch3130 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleBranch3140 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_ruleBranch3177 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleBranch3189 = new BitSet(new long[]{0x0000306000000000L});
+        public static final BitSet FOLLOW_44_in_ruleBranch3202 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleBranch3223 = new BitSet(new long[]{0x0000206000000000L});
+        public static final BitSet FOLLOW_37_in_ruleBranch3238 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleBranch3261 = new BitSet(new long[]{0x0000204000000000L});
+        public static final BitSet FOLLOW_38_in_ruleBranch3276 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleBranch3299 = new BitSet(new long[]{0x0000200000000000L});
+        public static final BitSet FOLLOW_45_in_ruleBranch3313 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleBranch3325 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_ruleBranch3346 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_15_in_ruleBranch3359 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_ruleAdaptationPlan_in_ruleBranch3380 = new BitSet(new long[]{0x0000000000018000L});
+        public static final BitSet FOLLOW_16_in_ruleBranch3394 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleBranch3406 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleActionReference_in_entryRuleActionReference3442 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleActionReference3452 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_ruleActionReference3489 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleActionReference3501 = new BitSet(new long[]{0x0000806000000000L});
+        public static final BitSet FOLLOW_37_in_ruleActionReference3514 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleActionReference3537 = new BitSet(new long[]{0x0000804000000000L});
+        public static final BitSet FOLLOW_38_in_ruleActionReference3552 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleActionReference3575 = new BitSet(new long[]{0x0000800000000000L});
+        public static final BitSet FOLLOW_47_in_ruleActionReference3589 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleActionReference3612 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleActionReference3624 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_entryRuleEInt3661 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEInt3672 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_48_in_ruleEInt3711 = new BitSet(new long[]{0x0000000000000040L});
+        public static final BitSet FOLLOW_RULE_INT_in_ruleEInt3728 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleModelVariableConfigurationRange_in_entryRuleModelVariableConfigurationRange3773 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleModelVariableConfigurationRange3783 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_49_in_ruleModelVariableConfigurationRange3820 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange3841 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleModelVariableConfigurationRange3853 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_50_in_ruleModelVariableConfigurationRange3865 = new BitSet(new long[]{0x0101000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleModelVariableConfigurationRange3886 = new BitSet(new long[]{0x0008000000000000L});
+        public static final BitSet FOLLOW_51_in_ruleModelVariableConfigurationRange3898 = new BitSet(new long[]{0x0101000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleModelVariableConfigurationRange3919 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_52_in_ruleModelVariableConfigurationRange3931 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelVariableConfigurationRange3954 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleModelVariableConfigurationRange3966 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleModelEntityConfigurationRange_in_entryRuleModelEntityConfigurationRange4002 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleModelEntityConfigurationRange4012 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_53_in_ruleModelEntityConfigurationRange4049 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4070 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleModelEntityConfigurationRange4082 = new BitSet(new long[]{0x00C0000000000000L});
+        public static final BitSet FOLLOW_54_in_ruleModelEntityConfigurationRange4095 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleModelEntityConfigurationRange4107 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4130 = new BitSet(new long[]{0x0000000000808000L});
+        public static final BitSet FOLLOW_15_in_ruleModelEntityConfigurationRange4143 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleModelEntityConfigurationRange4166 = new BitSet(new long[]{0x0000000000808000L});
+        public static final BitSet FOLLOW_23_in_ruleModelEntityConfigurationRange4180 = new BitSet(new long[]{0x0080000000000000L});
+        public static final BitSet FOLLOW_55_in_ruleModelEntityConfigurationRange4194 = new BitSet(new long[]{0x4800000000000000L});
+        public static final BitSet FOLLOW_ruleVariationType_in_ruleModelEntityConfigurationRange4215 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleModelEntityConfigurationRange4227 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_entryRuleEDouble4264 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEDouble4275 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_48_in_ruleEDouble4314 = new BitSet(new long[]{0x0100000000000040L});
+        public static final BitSet FOLLOW_RULE_INT_in_ruleEDouble4332 = new BitSet(new long[]{0x0100000000000000L});
+        public static final BitSet FOLLOW_56_in_ruleEDouble4352 = new BitSet(new long[]{0x0000000000000040L});
+        public static final BitSet FOLLOW_RULE_INT_in_ruleEDouble4367 = new BitSet(new long[]{0x0600000000000002L});
+        public static final BitSet FOLLOW_57_in_ruleEDouble4387 = new BitSet(new long[]{0x0001000000000040L});
+        public static final BitSet FOLLOW_58_in_ruleEDouble4406 = new BitSet(new long[]{0x0001000000000040L});
+        public static final BitSet FOLLOW_48_in_ruleEDouble4421 = new BitSet(new long[]{0x0000000000000040L});
+        public static final BitSet FOLLOW_RULE_INT_in_ruleEDouble4438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePropertyRange_in_entryRulePropertyRange4487 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePropertyRange4497 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_59_in_rulePropertyRange4534 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_rulePropertyRange4546 = new BitSet(new long[]{0x1000000000000000L});
+        public static final BitSet FOLLOW_60_in_rulePropertyRange4558 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_rulePropertyRange4581 = new BitSet(new long[]{0x2000000000000000L});
+        public static final BitSet FOLLOW_61_in_rulePropertyRange4593 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_rulePropertyRange4616 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_rulePropertyRange4628 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSetOfConfigurations_in_entryRuleSetOfConfigurations4664 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleSetOfConfigurations4674 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_62_in_ruleSetOfConfigurations4711 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleSetOfConfigurations4723 = new BitSet(new long[]{0x8000000000000000L});
+        public static final BitSet FOLLOW_63_in_ruleSetOfConfigurations4735 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleSetOfConfigurations4758 = new BitSet(new long[]{0x0000000000010000L,0x0000000000000001L});
+        public static final BitSet FOLLOW_64_in_ruleSetOfConfigurations4771 = new BitSet(new long[]{0x0000000000400000L});
+        public static final BitSet FOLLOW_22_in_ruleSetOfConfigurations4783 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleSetOfConfigurations4806 = new BitSet(new long[]{0x0000000000808000L});
+        public static final BitSet FOLLOW_15_in_ruleSetOfConfigurations4819 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleSetOfConfigurations4842 = new BitSet(new long[]{0x0000000000808000L});
+        public static final BitSet FOLLOW_23_in_ruleSetOfConfigurations4856 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleSetOfConfigurations4870 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent4910 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEvent4920 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_ruleEvent4966 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightedTactic_in_entryRuleWeightedTactic5002 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightedTactic5012 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_66_in_ruleWeightedTactic5049 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleWeightedTactic5061 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+        public static final BitSet FOLLOW_67_in_ruleWeightedTactic5073 = new BitSet(new long[]{0x0101000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleWeightedTactic5094 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+        public static final BitSet FOLLOW_68_in_ruleWeightedTactic5106 = new BitSet(new long[]{0x0101000000000040L});
+        public static final BitSet FOLLOW_ruleEDouble_in_ruleWeightedTactic5127 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_69_in_ruleWeightedTactic5139 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightedTactic5162 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleWeightedTactic5174 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWeightingFunction_in_entryRuleWeightingFunction5210 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWeightingFunction5220 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_70_in_ruleWeightingFunction5257 = new BitSet(new long[]{0x0000000000001000L});
+        public static final BitSet FOLLOW_12_in_ruleWeightingFunction5269 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+        public static final BitSet FOLLOW_71_in_ruleWeightingFunction5281 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_ruleEString_in_ruleWeightingFunction5302 = new BitSet(new long[]{0x0000000000010000L});
+        public static final BitSet FOLLOW_16_in_ruleWeightingFunction5314 = 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/services/StaAdaptationLanguageGrammarAccess.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/services/StaAdaptationLanguageGrammarAccess.java
new file mode 100644
index 0000000000000000000000000000000000000000..b49b770fe7f232cff22f3b3155a60f5136e99969
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/services/StaAdaptationLanguageGrammarAccess.java
@@ -0,0 +1,2261 @@
+/*
+* generated by Xtext
+*/
+
+package edu.kit.ipd.descartes.mm.adaptation.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 StaAdaptationLanguageGrammarAccess extends AbstractGrammarElementFinder {
+	
+	
+	public class StaRepositoryElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StaRepository");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cStaRepositoryKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
+		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 cTacticsKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cTacticsAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cTacticsTacticParserRuleCall_7_0 = (RuleCall)cTacticsAssignment_7.eContents().get(0);
+		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+		private final Keyword cCommaKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
+		private final Assignment cTacticsAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
+		private final RuleCall cTacticsTacticParserRuleCall_8_1_0 = (RuleCall)cTacticsAssignment_8_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Keyword cActionsKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		private final Keyword cLeftCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
+		private final Assignment cActionsAssignment_12 = (Assignment)cGroup.eContents().get(12);
+		private final RuleCall cActionsActionParserRuleCall_12_0 = (RuleCall)cActionsAssignment_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 cActionsAssignment_13_1 = (Assignment)cGroup_13.eContents().get(1);
+		private final RuleCall cActionsActionParserRuleCall_13_1_0 = (RuleCall)cActionsAssignment_13_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_14 = (Keyword)cGroup.eContents().get(14);
+		private final Keyword cStrategiesKeyword_15 = (Keyword)cGroup.eContents().get(15);
+		private final Keyword cLeftCurlyBracketKeyword_16 = (Keyword)cGroup.eContents().get(16);
+		private final Assignment cStrategiesAssignment_17 = (Assignment)cGroup.eContents().get(17);
+		private final RuleCall cStrategiesStrategyParserRuleCall_17_0 = (RuleCall)cStrategiesAssignment_17.eContents().get(0);
+		private final Group cGroup_18 = (Group)cGroup.eContents().get(18);
+		private final Keyword cCommaKeyword_18_0 = (Keyword)cGroup_18.eContents().get(0);
+		private final Assignment cStrategiesAssignment_18_1 = (Assignment)cGroup_18.eContents().get(1);
+		private final RuleCall cStrategiesStrategyParserRuleCall_18_1_0 = (RuleCall)cStrategiesAssignment_18_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_19 = (Keyword)cGroup.eContents().get(19);
+		private final Group cGroup_20 = (Group)cGroup.eContents().get(20);
+		private final Keyword cParametersKeyword_20_0 = (Keyword)cGroup_20.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_20_1 = (Keyword)cGroup_20.eContents().get(1);
+		private final Assignment cParametersAssignment_20_2 = (Assignment)cGroup_20.eContents().get(2);
+		private final RuleCall cParametersParameterParserRuleCall_20_2_0 = (RuleCall)cParametersAssignment_20_2.eContents().get(0);
+		private final Group cGroup_20_3 = (Group)cGroup_20.eContents().get(3);
+		private final Keyword cCommaKeyword_20_3_0 = (Keyword)cGroup_20_3.eContents().get(0);
+		private final Assignment cParametersAssignment_20_3_1 = (Assignment)cGroup_20_3.eContents().get(1);
+		private final RuleCall cParametersParameterParserRuleCall_20_3_1_0 = (RuleCall)cParametersAssignment_20_3_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_20_4 = (Keyword)cGroup_20.eContents().get(4);
+		private final Keyword cRightCurlyBracketKeyword_21 = (Keyword)cGroup.eContents().get(21);
+		
+		//StaRepository:
+		//	"StaRepository" id=EString "{" "name" name=EString "tactics" "{" tactics+=Tactic ("," tactics+=Tactic)* "}" "actions"
+		//	"{" actions+=Action ("," actions+=Action)* "}" "strategies" "{" strategies+=Strategy ("," strategies+=Strategy)* "}"
+		//	("parameters" "{" parameters+=Parameter ("," parameters+=Parameter)* "}")? "}";
+		public ParserRule getRule() { return rule; }
+
+		//"StaRepository" id=EString "{" "name" name=EString "tactics" "{" tactics+=Tactic ("," tactics+=Tactic)* "}" "actions"
+		//"{" actions+=Action ("," actions+=Action)* "}" "strategies" "{" strategies+=Strategy ("," strategies+=Strategy)* "}"
+		//("parameters" "{" parameters+=Parameter ("," parameters+=Parameter)* "}")? "}"
+		public Group getGroup() { return cGroup; }
+
+		//"StaRepository"
+		public Keyword getStaRepositoryKeyword_0() { return cStaRepositoryKeyword_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1() { return cIdAssignment_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_0() { return cIdEStringParserRuleCall_1_0; }
+
+		//"{"
+		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; }
+
+		//"tactics"
+		public Keyword getTacticsKeyword_5() { return cTacticsKeyword_5; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; }
+
+		//tactics+=Tactic
+		public Assignment getTacticsAssignment_7() { return cTacticsAssignment_7; }
+
+		//Tactic
+		public RuleCall getTacticsTacticParserRuleCall_7_0() { return cTacticsTacticParserRuleCall_7_0; }
+
+		//("," tactics+=Tactic)*
+		public Group getGroup_8() { return cGroup_8; }
+
+		//","
+		public Keyword getCommaKeyword_8_0() { return cCommaKeyword_8_0; }
+
+		//tactics+=Tactic
+		public Assignment getTacticsAssignment_8_1() { return cTacticsAssignment_8_1; }
+
+		//Tactic
+		public RuleCall getTacticsTacticParserRuleCall_8_1_0() { return cTacticsTacticParserRuleCall_8_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+
+		//"actions"
+		public Keyword getActionsKeyword_10() { return cActionsKeyword_10; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_11() { return cLeftCurlyBracketKeyword_11; }
+
+		//actions+=Action
+		public Assignment getActionsAssignment_12() { return cActionsAssignment_12; }
+
+		//Action
+		public RuleCall getActionsActionParserRuleCall_12_0() { return cActionsActionParserRuleCall_12_0; }
+
+		//("," actions+=Action)*
+		public Group getGroup_13() { return cGroup_13; }
+
+		//","
+		public Keyword getCommaKeyword_13_0() { return cCommaKeyword_13_0; }
+
+		//actions+=Action
+		public Assignment getActionsAssignment_13_1() { return cActionsAssignment_13_1; }
+
+		//Action
+		public RuleCall getActionsActionParserRuleCall_13_1_0() { return cActionsActionParserRuleCall_13_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_14() { return cRightCurlyBracketKeyword_14; }
+
+		//"strategies"
+		public Keyword getStrategiesKeyword_15() { return cStrategiesKeyword_15; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_16() { return cLeftCurlyBracketKeyword_16; }
+
+		//strategies+=Strategy
+		public Assignment getStrategiesAssignment_17() { return cStrategiesAssignment_17; }
+
+		//Strategy
+		public RuleCall getStrategiesStrategyParserRuleCall_17_0() { return cStrategiesStrategyParserRuleCall_17_0; }
+
+		//("," strategies+=Strategy)*
+		public Group getGroup_18() { return cGroup_18; }
+
+		//","
+		public Keyword getCommaKeyword_18_0() { return cCommaKeyword_18_0; }
+
+		//strategies+=Strategy
+		public Assignment getStrategiesAssignment_18_1() { return cStrategiesAssignment_18_1; }
+
+		//Strategy
+		public RuleCall getStrategiesStrategyParserRuleCall_18_1_0() { return cStrategiesStrategyParserRuleCall_18_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_19() { return cRightCurlyBracketKeyword_19; }
+
+		//("parameters" "{" parameters+=Parameter ("," parameters+=Parameter)* "}")?
+		public Group getGroup_20() { return cGroup_20; }
+
+		//"parameters"
+		public Keyword getParametersKeyword_20_0() { return cParametersKeyword_20_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_20_1() { return cLeftCurlyBracketKeyword_20_1; }
+
+		//parameters+=Parameter
+		public Assignment getParametersAssignment_20_2() { return cParametersAssignment_20_2; }
+
+		//Parameter
+		public RuleCall getParametersParameterParserRuleCall_20_2_0() { return cParametersParameterParserRuleCall_20_2_0; }
+
+		//("," parameters+=Parameter)*
+		public Group getGroup_20_3() { return cGroup_20_3; }
+
+		//","
+		public Keyword getCommaKeyword_20_3_0() { return cCommaKeyword_20_3_0; }
+
+		//parameters+=Parameter
+		public Assignment getParametersAssignment_20_3_1() { return cParametersAssignment_20_3_1; }
+
+		//Parameter
+		public RuleCall getParametersParameterParserRuleCall_20_3_1_0() { return cParametersParameterParserRuleCall_20_3_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_20_4() { return cRightCurlyBracketKeyword_20_4; }
+
+		//"}"
+		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 cStartParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cStopParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cLoopParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cBranchParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cActionReferenceParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+		
+		//AbstractControlFlowElement:
+		//	Start | Stop | Loop | Branch | ActionReference;
+		public ParserRule getRule() { return rule; }
+
+		//Start | Stop | Loop | Branch | ActionReference
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//Start
+		public RuleCall getStartParserRuleCall_0() { return cStartParserRuleCall_0; }
+
+		//Stop
+		public RuleCall getStopParserRuleCall_1() { return cStopParserRuleCall_1; }
+
+		//Loop
+		public RuleCall getLoopParserRuleCall_2() { return cLoopParserRuleCall_2; }
+
+		//Branch
+		public RuleCall getBranchParserRuleCall_3() { return cBranchParserRuleCall_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 cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
+		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 Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cInputParamsKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Keyword cLeftParenthesisKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
+		private final Assignment cInputParamsAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2);
+		private final CrossReference cInputParamsParameterCrossReference_5_2_0 = (CrossReference)cInputParamsAssignment_5_2.eContents().get(0);
+		private final RuleCall cInputParamsParameterEStringParserRuleCall_5_2_0_1 = (RuleCall)cInputParamsParameterCrossReference_5_2_0.eContents().get(1);
+		private final Group cGroup_5_3 = (Group)cGroup_5.eContents().get(3);
+		private final Keyword cCommaKeyword_5_3_0 = (Keyword)cGroup_5_3.eContents().get(0);
+		private final Assignment cInputParamsAssignment_5_3_1 = (Assignment)cGroup_5_3.eContents().get(1);
+		private final CrossReference cInputParamsParameterCrossReference_5_3_1_0 = (CrossReference)cInputParamsAssignment_5_3_1.eContents().get(0);
+		private final RuleCall cInputParamsParameterEStringParserRuleCall_5_3_1_0_1 = (RuleCall)cInputParamsParameterCrossReference_5_3_1_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_5_4 = (Keyword)cGroup_5.eContents().get(4);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Keyword cOutputParamKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
+		private final Assignment cOutputParamAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
+		private final CrossReference cOutputParamParameterCrossReference_6_1_0 = (CrossReference)cOutputParamAssignment_6_1.eContents().get(0);
+		private final RuleCall cOutputParamParameterEStringParserRuleCall_6_1_0_1 = (RuleCall)cOutputParamParameterCrossReference_6_1_0.eContents().get(1);
+		private final Keyword cImplementedPlanKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cImplementedPlanAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cImplementedPlanAdaptationPlanParserRuleCall_8_0 = (RuleCall)cImplementedPlanAssignment_8.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		
+		//Tactic:
+		//	"Tactic" id=EString "{" "name" name=EString ("inputParams" "(" inputParams+=[Parameter|EString] (","
+		//	inputParams+=[Parameter|EString])* ")")? ("outputParam" outputParam=[Parameter|EString])? "implementedPlan"
+		//	implementedPlan=AdaptationPlan "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Tactic" id=EString "{" "name" name=EString ("inputParams" "(" inputParams+=[Parameter|EString] (","
+		//inputParams+=[Parameter|EString])* ")")? ("outputParam" outputParam=[Parameter|EString])? "implementedPlan"
+		//implementedPlan=AdaptationPlan "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Tactic"
+		public Keyword getTacticKeyword_0() { return cTacticKeyword_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1() { return cIdAssignment_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_0() { return cIdEStringParserRuleCall_1_0; }
+
+		//"{"
+		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; }
+
+		//("inputParams" "(" inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"inputParams"
+		public Keyword getInputParamsKeyword_5_0() { return cInputParamsKeyword_5_0; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_5_1() { return cLeftParenthesisKeyword_5_1; }
+
+		//inputParams+=[Parameter|EString]
+		public Assignment getInputParamsAssignment_5_2() { return cInputParamsAssignment_5_2; }
+
+		//[Parameter|EString]
+		public CrossReference getInputParamsParameterCrossReference_5_2_0() { return cInputParamsParameterCrossReference_5_2_0; }
+
+		//EString
+		public RuleCall getInputParamsParameterEStringParserRuleCall_5_2_0_1() { return cInputParamsParameterEStringParserRuleCall_5_2_0_1; }
+
+		//("," inputParams+=[Parameter|EString])*
+		public Group getGroup_5_3() { return cGroup_5_3; }
+
+		//","
+		public Keyword getCommaKeyword_5_3_0() { return cCommaKeyword_5_3_0; }
+
+		//inputParams+=[Parameter|EString]
+		public Assignment getInputParamsAssignment_5_3_1() { return cInputParamsAssignment_5_3_1; }
+
+		//[Parameter|EString]
+		public CrossReference getInputParamsParameterCrossReference_5_3_1_0() { return cInputParamsParameterCrossReference_5_3_1_0; }
+
+		//EString
+		public RuleCall getInputParamsParameterEStringParserRuleCall_5_3_1_0_1() { return cInputParamsParameterEStringParserRuleCall_5_3_1_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_5_4() { return cRightParenthesisKeyword_5_4; }
+
+		//("outputParam" outputParam=[Parameter|EString])?
+		public Group getGroup_6() { return cGroup_6; }
+
+		//"outputParam"
+		public Keyword getOutputParamKeyword_6_0() { return cOutputParamKeyword_6_0; }
+
+		//outputParam=[Parameter|EString]
+		public Assignment getOutputParamAssignment_6_1() { return cOutputParamAssignment_6_1; }
+
+		//[Parameter|EString]
+		public CrossReference getOutputParamParameterCrossReference_6_1_0() { return cOutputParamParameterCrossReference_6_1_0; }
+
+		//EString
+		public RuleCall getOutputParamParameterEStringParserRuleCall_6_1_0_1() { return cOutputParamParameterEStringParserRuleCall_6_1_0_1; }
+
+		//"implementedPlan"
+		public Keyword getImplementedPlanKeyword_7() { return cImplementedPlanKeyword_7; }
+
+		//implementedPlan=AdaptationPlan
+		public Assignment getImplementedPlanAssignment_8() { return cImplementedPlanAssignment_8; }
+
+		//AdaptationPlan
+		public RuleCall getImplementedPlanAdaptationPlanParserRuleCall_8_0() { return cImplementedPlanAdaptationPlanParserRuleCall_8_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+	}
+
+	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 cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
+		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 Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cOutputParamKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Assignment cOutputParamAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final CrossReference cOutputParamParameterCrossReference_5_1_0 = (CrossReference)cOutputParamAssignment_5_1.eContents().get(0);
+		private final RuleCall cOutputParamParameterEStringParserRuleCall_5_1_0_1 = (RuleCall)cOutputParamParameterCrossReference_5_1_0.eContents().get(1);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Keyword cInputParamsKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
+		private final Keyword cLeftParenthesisKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
+		private final Assignment cInputParamsAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2);
+		private final CrossReference cInputParamsParameterCrossReference_6_2_0 = (CrossReference)cInputParamsAssignment_6_2.eContents().get(0);
+		private final RuleCall cInputParamsParameterEStringParserRuleCall_6_2_0_1 = (RuleCall)cInputParamsParameterCrossReference_6_2_0.eContents().get(1);
+		private final Group cGroup_6_3 = (Group)cGroup_6.eContents().get(3);
+		private final Keyword cCommaKeyword_6_3_0 = (Keyword)cGroup_6_3.eContents().get(0);
+		private final Assignment cInputParamsAssignment_6_3_1 = (Assignment)cGroup_6_3.eContents().get(1);
+		private final CrossReference cInputParamsParameterCrossReference_6_3_1_0 = (CrossReference)cInputParamsAssignment_6_3_1.eContents().get(0);
+		private final RuleCall cInputParamsParameterEStringParserRuleCall_6_3_1_0_1 = (RuleCall)cInputParamsParameterCrossReference_6_3_1_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_6_4 = (Keyword)cGroup_6.eContents().get(4);
+		private final Keyword cReferredAdaptationPointKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cReferredAdaptationPointAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final CrossReference cReferredAdaptationPointAdaptationPointCrossReference_8_0 = (CrossReference)cReferredAdaptationPointAssignment_8.eContents().get(0);
+		private final RuleCall cReferredAdaptationPointAdaptationPointEStringParserRuleCall_8_0_1 = (RuleCall)cReferredAdaptationPointAdaptationPointCrossReference_8_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		
+		//Action:
+		//	"Action" id=EString "{" "name" name=EString ("outputParam" outputParam=[Parameter|EString])? ("inputParams" "("
+		//	inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")? "referredAdaptationPoint"
+		//	referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString] "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Action" id=EString "{" "name" name=EString ("outputParam" outputParam=[Parameter|EString])? ("inputParams" "("
+		//inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")? "referredAdaptationPoint"
+		//referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString] "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Action"
+		public Keyword getActionKeyword_0() { return cActionKeyword_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1() { return cIdAssignment_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_0() { return cIdEStringParserRuleCall_1_0; }
+
+		//"{"
+		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; }
+
+		//("outputParam" outputParam=[Parameter|EString])?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"outputParam"
+		public Keyword getOutputParamKeyword_5_0() { return cOutputParamKeyword_5_0; }
+
+		//outputParam=[Parameter|EString]
+		public Assignment getOutputParamAssignment_5_1() { return cOutputParamAssignment_5_1; }
+
+		//[Parameter|EString]
+		public CrossReference getOutputParamParameterCrossReference_5_1_0() { return cOutputParamParameterCrossReference_5_1_0; }
+
+		//EString
+		public RuleCall getOutputParamParameterEStringParserRuleCall_5_1_0_1() { return cOutputParamParameterEStringParserRuleCall_5_1_0_1; }
+
+		//("inputParams" "(" inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")?
+		public Group getGroup_6() { return cGroup_6; }
+
+		//"inputParams"
+		public Keyword getInputParamsKeyword_6_0() { return cInputParamsKeyword_6_0; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_6_1() { return cLeftParenthesisKeyword_6_1; }
+
+		//inputParams+=[Parameter|EString]
+		public Assignment getInputParamsAssignment_6_2() { return cInputParamsAssignment_6_2; }
+
+		//[Parameter|EString]
+		public CrossReference getInputParamsParameterCrossReference_6_2_0() { return cInputParamsParameterCrossReference_6_2_0; }
+
+		//EString
+		public RuleCall getInputParamsParameterEStringParserRuleCall_6_2_0_1() { return cInputParamsParameterEStringParserRuleCall_6_2_0_1; }
+
+		//("," inputParams+=[Parameter|EString])*
+		public Group getGroup_6_3() { return cGroup_6_3; }
+
+		//","
+		public Keyword getCommaKeyword_6_3_0() { return cCommaKeyword_6_3_0; }
+
+		//inputParams+=[Parameter|EString]
+		public Assignment getInputParamsAssignment_6_3_1() { return cInputParamsAssignment_6_3_1; }
+
+		//[Parameter|EString]
+		public CrossReference getInputParamsParameterCrossReference_6_3_1_0() { return cInputParamsParameterCrossReference_6_3_1_0; }
+
+		//EString
+		public RuleCall getInputParamsParameterEStringParserRuleCall_6_3_1_0_1() { return cInputParamsParameterEStringParserRuleCall_6_3_1_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_6_4() { return cRightParenthesisKeyword_6_4; }
+
+		//"referredAdaptationPoint"
+		public Keyword getReferredAdaptationPointKeyword_7() { return cReferredAdaptationPointKeyword_7; }
+
+		//referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString]
+		public Assignment getReferredAdaptationPointAssignment_8() { return cReferredAdaptationPointAssignment_8; }
+
+		//[adaptationpoints::AdaptationPoint|EString]
+		public CrossReference getReferredAdaptationPointAdaptationPointCrossReference_8_0() { return cReferredAdaptationPointAdaptationPointCrossReference_8_0; }
+
+		//EString
+		public RuleCall getReferredAdaptationPointAdaptationPointEStringParserRuleCall_8_0_1() { return cReferredAdaptationPointAdaptationPointEStringParserRuleCall_8_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+	}
+
+	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 Keyword cStrategyKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
+		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 cObjectiveKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cObjectiveAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final CrossReference cObjectiveObjectiveCrossReference_6_0 = (CrossReference)cObjectiveAssignment_6.eContents().get(0);
+		private final RuleCall cObjectiveObjectiveEStringParserRuleCall_6_0_1 = (RuleCall)cObjectiveObjectiveCrossReference_6_0.eContents().get(1);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Keyword cTriggeringEventsKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+		private final Assignment cTriggeringEventsAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
+		private final RuleCall cTriggeringEventsEventParserRuleCall_7_1_0 = (RuleCall)cTriggeringEventsAssignment_7_1.eContents().get(0);
+		private final Keyword cTacticsKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Keyword cLeftCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Assignment cTacticsAssignment_10 = (Assignment)cGroup.eContents().get(10);
+		private final RuleCall cTacticsWeightedTacticParserRuleCall_10_0 = (RuleCall)cTacticsAssignment_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 cTacticsAssignment_11_1 = (Assignment)cGroup_11.eContents().get(1);
+		private final RuleCall cTacticsWeightedTacticParserRuleCall_11_1_0 = (RuleCall)cTacticsAssignment_11_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12);
+		private final Keyword cWeightingFunctionKeyword_13 = (Keyword)cGroup.eContents().get(13);
+		private final Assignment cWeightingFunctionAssignment_14 = (Assignment)cGroup.eContents().get(14);
+		private final RuleCall cWeightingFunctionWeightingFunctionParserRuleCall_14_0 = (RuleCall)cWeightingFunctionAssignment_14.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_15 = (Keyword)cGroup.eContents().get(15);
+		
+		//Strategy:
+		//	"Strategy" id=EString "{" "name" name=EString "objective" objective=[Objective|EString] ("triggeringEvents"
+		//	triggeringEvents=Event)? "tactics" "{" tactics+=WeightedTactic ("," tactics+=WeightedTactic)* "}" "weightingFunction"
+		//	weightingFunction=WeightingFunction "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Strategy" id=EString "{" "name" name=EString "objective" objective=[Objective|EString] ("triggeringEvents"
+		//triggeringEvents=Event)? "tactics" "{" tactics+=WeightedTactic ("," tactics+=WeightedTactic)* "}" "weightingFunction"
+		//weightingFunction=WeightingFunction "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Strategy"
+		public Keyword getStrategyKeyword_0() { return cStrategyKeyword_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1() { return cIdAssignment_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_0() { return cIdEStringParserRuleCall_1_0; }
+
+		//"{"
+		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; }
+
+		//"objective"
+		public Keyword getObjectiveKeyword_5() { return cObjectiveKeyword_5; }
+
+		//objective=[Objective|EString]
+		public Assignment getObjectiveAssignment_6() { return cObjectiveAssignment_6; }
+
+		//[Objective|EString]
+		public CrossReference getObjectiveObjectiveCrossReference_6_0() { return cObjectiveObjectiveCrossReference_6_0; }
+
+		//EString
+		public RuleCall getObjectiveObjectiveEStringParserRuleCall_6_0_1() { return cObjectiveObjectiveEStringParserRuleCall_6_0_1; }
+
+		//("triggeringEvents" triggeringEvents=Event)?
+		public Group getGroup_7() { return cGroup_7; }
+
+		//"triggeringEvents"
+		public Keyword getTriggeringEventsKeyword_7_0() { return cTriggeringEventsKeyword_7_0; }
+
+		//triggeringEvents=Event
+		public Assignment getTriggeringEventsAssignment_7_1() { return cTriggeringEventsAssignment_7_1; }
+
+		//Event
+		public RuleCall getTriggeringEventsEventParserRuleCall_7_1_0() { return cTriggeringEventsEventParserRuleCall_7_1_0; }
+
+		//"tactics"
+		public Keyword getTacticsKeyword_8() { return cTacticsKeyword_8; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_9() { return cLeftCurlyBracketKeyword_9; }
+
+		//tactics+=WeightedTactic
+		public Assignment getTacticsAssignment_10() { return cTacticsAssignment_10; }
+
+		//WeightedTactic
+		public RuleCall getTacticsWeightedTacticParserRuleCall_10_0() { return cTacticsWeightedTacticParserRuleCall_10_0; }
+
+		//("," tactics+=WeightedTactic)*
+		public Group getGroup_11() { return cGroup_11; }
+
+		//","
+		public Keyword getCommaKeyword_11_0() { return cCommaKeyword_11_0; }
+
+		//tactics+=WeightedTactic
+		public Assignment getTacticsAssignment_11_1() { return cTacticsAssignment_11_1; }
+
+		//WeightedTactic
+		public RuleCall getTacticsWeightedTacticParserRuleCall_11_1_0() { return cTacticsWeightedTacticParserRuleCall_11_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; }
+
+		//"weightingFunction"
+		public Keyword getWeightingFunctionKeyword_13() { return cWeightingFunctionKeyword_13; }
+
+		//weightingFunction=WeightingFunction
+		public Assignment getWeightingFunctionAssignment_14() { return cWeightingFunctionAssignment_14; }
+
+		//WeightingFunction
+		public RuleCall getWeightingFunctionWeightingFunctionParserRuleCall_14_0() { return cWeightingFunctionWeightingFunctionParserRuleCall_14_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_15() { return cRightCurlyBracketKeyword_15; }
+	}
+
+	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 Keyword cParameterKeyword_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 cTypeKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cTypeEStringParserRuleCall_4_0 = (RuleCall)cTypeAssignment_4.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//Parameter:
+		//	"Parameter" name=EString "{" "type" type=EString "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Parameter" name=EString "{" "type" type=EString "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Parameter"
+		public Keyword getParameterKeyword_0() { return cParameterKeyword_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; }
+
+		//"type"
+		public Keyword getTypeKeyword_3() { return cTypeKeyword_3; }
+
+		//type=EString
+		public Assignment getTypeAssignment_4() { return cTypeAssignment_4; }
+
+		//EString
+		public RuleCall getTypeEStringParserRuleCall_4_0() { return cTypeEStringParserRuleCall_4_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	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 Keyword cAdaptationPlanKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
+		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 Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cStepsKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
+		private final Assignment cStepsAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2);
+		private final RuleCall cStepsAbstractControlFlowElementParserRuleCall_5_2_0 = (RuleCall)cStepsAssignment_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 cStepsAssignment_5_3_1 = (Assignment)cGroup_5_3.eContents().get(1);
+		private final RuleCall cStepsAbstractControlFlowElementParserRuleCall_5_3_1_0 = (RuleCall)cStepsAssignment_5_3_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5_4 = (Keyword)cGroup_5.eContents().get(4);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//AdaptationPlan:
+		//	"AdaptationPlan" id=EString "{" "name" name=EString ("steps" "{" steps+=AbstractControlFlowElement (","
+		//	steps+=AbstractControlFlowElement)* "}")? "}";
+		public ParserRule getRule() { return rule; }
+
+		//"AdaptationPlan" id=EString "{" "name" name=EString ("steps" "{" steps+=AbstractControlFlowElement (","
+		//steps+=AbstractControlFlowElement)* "}")? "}"
+		public Group getGroup() { return cGroup; }
+
+		//"AdaptationPlan"
+		public Keyword getAdaptationPlanKeyword_0() { return cAdaptationPlanKeyword_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1() { return cIdAssignment_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_0() { return cIdEStringParserRuleCall_1_0; }
+
+		//"{"
+		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; }
+
+		//("steps" "{" steps+=AbstractControlFlowElement ("," steps+=AbstractControlFlowElement)* "}")?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"steps"
+		public Keyword getStepsKeyword_5_0() { return cStepsKeyword_5_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_5_1() { return cLeftCurlyBracketKeyword_5_1; }
+
+		//steps+=AbstractControlFlowElement
+		public Assignment getStepsAssignment_5_2() { return cStepsAssignment_5_2; }
+
+		//AbstractControlFlowElement
+		public RuleCall getStepsAbstractControlFlowElementParserRuleCall_5_2_0() { return cStepsAbstractControlFlowElementParserRuleCall_5_2_0; }
+
+		//("," steps+=AbstractControlFlowElement)*
+		public Group getGroup_5_3() { return cGroup_5_3; }
+
+		//","
+		public Keyword getCommaKeyword_5_3_0() { return cCommaKeyword_5_3_0; }
+
+		//steps+=AbstractControlFlowElement
+		public Assignment getStepsAssignment_5_3_1() { return cStepsAssignment_5_3_1; }
+
+		//AbstractControlFlowElement
+		public RuleCall getStepsAbstractControlFlowElementParserRuleCall_5_3_1_0() { return cStepsAbstractControlFlowElementParserRuleCall_5_3_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5_4() { return cRightCurlyBracketKeyword_5_4; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+	}
+
+	public class StartElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Start");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cStartAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cStartKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cPredecessorKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cPredecessorAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cPredecessorAbstractControlFlowElementCrossReference_3_1_0 = (CrossReference)cPredecessorAssignment_3_1.eContents().get(0);
+		private final RuleCall cPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1 = (RuleCall)cPredecessorAbstractControlFlowElementCrossReference_3_1_0.eContents().get(1);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cSuccessorKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Assignment cSuccessorAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+		private final CrossReference cSuccessorAbstractControlFlowElementCrossReference_4_1_0 = (CrossReference)cSuccessorAssignment_4_1.eContents().get(0);
+		private final RuleCall cSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1 = (RuleCall)cSuccessorAbstractControlFlowElementCrossReference_4_1_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//Start:
+		//	{Start} "Start" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+		//	successor=[AbstractControlFlowElement|EString])? "}";
+		public ParserRule getRule() { return rule; }
+
+		//{Start} "Start" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+		//successor=[AbstractControlFlowElement|EString])? "}"
+		public Group getGroup() { return cGroup; }
+
+		//{Start}
+		public Action getStartAction_0() { return cStartAction_0; }
+
+		//"Start"
+		public Keyword getStartKeyword_1() { return cStartKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"predecessor"
+		public Keyword getPredecessorKeyword_3_0() { return cPredecessorKeyword_3_0; }
+
+		//predecessor=[AbstractControlFlowElement|EString]
+		public Assignment getPredecessorAssignment_3_1() { return cPredecessorAssignment_3_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getPredecessorAbstractControlFlowElementCrossReference_3_1_0() { return cPredecessorAbstractControlFlowElementCrossReference_3_1_0; }
+
+		//EString
+		public RuleCall getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1() { return cPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1; }
+
+		//("successor" successor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//"successor"
+		public Keyword getSuccessorKeyword_4_0() { return cSuccessorKeyword_4_0; }
+
+		//successor=[AbstractControlFlowElement|EString]
+		public Assignment getSuccessorAssignment_4_1() { return cSuccessorAssignment_4_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getSuccessorAbstractControlFlowElementCrossReference_4_1_0() { return cSuccessorAbstractControlFlowElementCrossReference_4_1_0; }
+
+		//EString
+		public RuleCall getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1() { return cSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	public class StopElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Stop");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cStopAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cPredecessorKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cPredecessorAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cPredecessorAbstractControlFlowElementCrossReference_3_1_0 = (CrossReference)cPredecessorAssignment_3_1.eContents().get(0);
+		private final RuleCall cPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1 = (RuleCall)cPredecessorAbstractControlFlowElementCrossReference_3_1_0.eContents().get(1);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cSuccessorKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Assignment cSuccessorAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+		private final CrossReference cSuccessorAbstractControlFlowElementCrossReference_4_1_0 = (CrossReference)cSuccessorAssignment_4_1.eContents().get(0);
+		private final RuleCall cSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1 = (RuleCall)cSuccessorAbstractControlFlowElementCrossReference_4_1_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//Stop:
+		//	{Stop} "Stop" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+		//	successor=[AbstractControlFlowElement|EString])? "}";
+		public ParserRule getRule() { return rule; }
+
+		//{Stop} "Stop" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+		//successor=[AbstractControlFlowElement|EString])? "}"
+		public Group getGroup() { return cGroup; }
+
+		//{Stop}
+		public Action getStopAction_0() { return cStopAction_0; }
+
+		//"Stop"
+		public Keyword getStopKeyword_1() { return cStopKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"predecessor"
+		public Keyword getPredecessorKeyword_3_0() { return cPredecessorKeyword_3_0; }
+
+		//predecessor=[AbstractControlFlowElement|EString]
+		public Assignment getPredecessorAssignment_3_1() { return cPredecessorAssignment_3_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getPredecessorAbstractControlFlowElementCrossReference_3_1_0() { return cPredecessorAbstractControlFlowElementCrossReference_3_1_0; }
+
+		//EString
+		public RuleCall getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1() { return cPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1; }
+
+		//("successor" successor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//"successor"
+		public Keyword getSuccessorKeyword_4_0() { return cSuccessorKeyword_4_0; }
+
+		//successor=[AbstractControlFlowElement|EString]
+		public Assignment getSuccessorAssignment_4_1() { return cSuccessorAssignment_4_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getSuccessorAbstractControlFlowElementCrossReference_4_1_0() { return cSuccessorAbstractControlFlowElementCrossReference_4_1_0; }
+
+		//EString
+		public RuleCall getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1() { return cSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	public class LoopElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Loop");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cLoopKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cCounterKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cCounterAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cCounterEIntParserRuleCall_3_0 = (RuleCall)cCounterAssignment_3.eContents().get(0);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cPredecessorKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Assignment cPredecessorAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+		private final CrossReference cPredecessorAbstractControlFlowElementCrossReference_4_1_0 = (CrossReference)cPredecessorAssignment_4_1.eContents().get(0);
+		private final RuleCall cPredecessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1 = (RuleCall)cPredecessorAbstractControlFlowElementCrossReference_4_1_0.eContents().get(1);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cSuccessorKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Assignment cSuccessorAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final CrossReference cSuccessorAbstractControlFlowElementCrossReference_5_1_0 = (CrossReference)cSuccessorAssignment_5_1.eContents().get(0);
+		private final RuleCall cSuccessorAbstractControlFlowElementEStringParserRuleCall_5_1_0_1 = (RuleCall)cSuccessorAbstractControlFlowElementCrossReference_5_1_0.eContents().get(1);
+		private final Keyword cBodyKeyword_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 cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		
+		//Loop:
+		//	"Loop" "{" "counter" counter=EInt ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+		//	successor=[AbstractControlFlowElement|EString])? "body" body=AdaptationPlan "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Loop" "{" "counter" counter=EInt ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+		//successor=[AbstractControlFlowElement|EString])? "body" body=AdaptationPlan "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Loop"
+		public Keyword getLoopKeyword_0() { return cLoopKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//"counter"
+		public Keyword getCounterKeyword_2() { return cCounterKeyword_2; }
+
+		//counter=EInt
+		public Assignment getCounterAssignment_3() { return cCounterAssignment_3; }
+
+		//EInt
+		public RuleCall getCounterEIntParserRuleCall_3_0() { return cCounterEIntParserRuleCall_3_0; }
+
+		//("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//"predecessor"
+		public Keyword getPredecessorKeyword_4_0() { return cPredecessorKeyword_4_0; }
+
+		//predecessor=[AbstractControlFlowElement|EString]
+		public Assignment getPredecessorAssignment_4_1() { return cPredecessorAssignment_4_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getPredecessorAbstractControlFlowElementCrossReference_4_1_0() { return cPredecessorAbstractControlFlowElementCrossReference_4_1_0; }
+
+		//EString
+		public RuleCall getPredecessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1() { return cPredecessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1; }
+
+		//("successor" successor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"successor"
+		public Keyword getSuccessorKeyword_5_0() { return cSuccessorKeyword_5_0; }
+
+		//successor=[AbstractControlFlowElement|EString]
+		public Assignment getSuccessorAssignment_5_1() { return cSuccessorAssignment_5_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getSuccessorAbstractControlFlowElementCrossReference_5_1_0() { return cSuccessorAbstractControlFlowElementCrossReference_5_1_0; }
+
+		//EString
+		public RuleCall getSuccessorAbstractControlFlowElementEStringParserRuleCall_5_1_0_1() { return cSuccessorAbstractControlFlowElementEStringParserRuleCall_5_1_0_1; }
+
+		//"body"
+		public Keyword getBodyKeyword_6() { return cBodyKeyword_6; }
+
+		//body=AdaptationPlan
+		public Assignment getBodyAssignment_7() { return cBodyAssignment_7; }
+
+		//AdaptationPlan
+		public RuleCall getBodyAdaptationPlanParserRuleCall_7_0() { return cBodyAdaptationPlanParserRuleCall_7_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
+	}
+
+	public class BranchElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Branch");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cBranchKeyword_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 cConditionKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cConditionAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cConditionEStringParserRuleCall_2_1_0 = (RuleCall)cConditionAssignment_2_1.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cPredecessorKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cPredecessorAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cPredecessorAbstractControlFlowElementCrossReference_3_1_0 = (CrossReference)cPredecessorAssignment_3_1.eContents().get(0);
+		private final RuleCall cPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1 = (RuleCall)cPredecessorAbstractControlFlowElementCrossReference_3_1_0.eContents().get(1);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cSuccessorKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Assignment cSuccessorAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+		private final CrossReference cSuccessorAbstractControlFlowElementCrossReference_4_1_0 = (CrossReference)cSuccessorAssignment_4_1.eContents().get(0);
+		private final RuleCall cSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1 = (RuleCall)cSuccessorAbstractControlFlowElementCrossReference_4_1_0.eContents().get(1);
+		private final Keyword cBranchesKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Keyword cLeftCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cBranchesAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cBranchesAdaptationPlanParserRuleCall_7_0 = (RuleCall)cBranchesAssignment_7.eContents().get(0);
+		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+		private final Keyword cCommaKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
+		private final Assignment cBranchesAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
+		private final RuleCall cBranchesAdaptationPlanParserRuleCall_8_1_0 = (RuleCall)cBranchesAssignment_8_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		
+		//Branch:
+		//	"Branch" "{" ("condition" condition=EString)? ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+		//	("successor" successor=[AbstractControlFlowElement|EString])? "branches" "{" branches+=AdaptationPlan (","
+		//	branches+=AdaptationPlan)* "}" "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Branch" "{" ("condition" condition=EString)? ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+		//("successor" successor=[AbstractControlFlowElement|EString])? "branches" "{" branches+=AdaptationPlan (","
+		//branches+=AdaptationPlan)* "}" "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Branch"
+		public Keyword getBranchKeyword_0() { return cBranchKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//("condition" condition=EString)?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"condition"
+		public Keyword getConditionKeyword_2_0() { return cConditionKeyword_2_0; }
+
+		//condition=EString
+		public Assignment getConditionAssignment_2_1() { return cConditionAssignment_2_1; }
+
+		//EString
+		public RuleCall getConditionEStringParserRuleCall_2_1_0() { return cConditionEStringParserRuleCall_2_1_0; }
+
+		//("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"predecessor"
+		public Keyword getPredecessorKeyword_3_0() { return cPredecessorKeyword_3_0; }
+
+		//predecessor=[AbstractControlFlowElement|EString]
+		public Assignment getPredecessorAssignment_3_1() { return cPredecessorAssignment_3_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getPredecessorAbstractControlFlowElementCrossReference_3_1_0() { return cPredecessorAbstractControlFlowElementCrossReference_3_1_0; }
+
+		//EString
+		public RuleCall getPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1() { return cPredecessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1; }
+
+		//("successor" successor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//"successor"
+		public Keyword getSuccessorKeyword_4_0() { return cSuccessorKeyword_4_0; }
+
+		//successor=[AbstractControlFlowElement|EString]
+		public Assignment getSuccessorAssignment_4_1() { return cSuccessorAssignment_4_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getSuccessorAbstractControlFlowElementCrossReference_4_1_0() { return cSuccessorAbstractControlFlowElementCrossReference_4_1_0; }
+
+		//EString
+		public RuleCall getSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1() { return cSuccessorAbstractControlFlowElementEStringParserRuleCall_4_1_0_1; }
+
+		//"branches"
+		public Keyword getBranchesKeyword_5() { return cBranchesKeyword_5; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_6() { return cLeftCurlyBracketKeyword_6; }
+
+		//branches+=AdaptationPlan
+		public Assignment getBranchesAssignment_7() { return cBranchesAssignment_7; }
+
+		//AdaptationPlan
+		public RuleCall getBranchesAdaptationPlanParserRuleCall_7_0() { return cBranchesAdaptationPlanParserRuleCall_7_0; }
+
+		//("," branches+=AdaptationPlan)*
+		public Group getGroup_8() { return cGroup_8; }
+
+		//","
+		public Keyword getCommaKeyword_8_0() { return cCommaKeyword_8_0; }
+
+		//branches+=AdaptationPlan
+		public Assignment getBranchesAssignment_8_1() { return cBranchesAssignment_8_1; }
+
+		//AdaptationPlan
+		public RuleCall getBranchesAdaptationPlanParserRuleCall_8_1_0() { return cBranchesAdaptationPlanParserRuleCall_8_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }
+	}
+
+	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 Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cPredecessorKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cPredecessorAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final CrossReference cPredecessorAbstractControlFlowElementCrossReference_2_1_0 = (CrossReference)cPredecessorAssignment_2_1.eContents().get(0);
+		private final RuleCall cPredecessorAbstractControlFlowElementEStringParserRuleCall_2_1_0_1 = (RuleCall)cPredecessorAbstractControlFlowElementCrossReference_2_1_0.eContents().get(1);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cSuccessorKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cSuccessorAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cSuccessorAbstractControlFlowElementCrossReference_3_1_0 = (CrossReference)cSuccessorAssignment_3_1.eContents().get(0);
+		private final RuleCall cSuccessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1 = (RuleCall)cSuccessorAbstractControlFlowElementCrossReference_3_1_0.eContents().get(1);
+		private final Keyword cRefersToKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cRefersToAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final CrossReference cRefersToActionCrossReference_5_0 = (CrossReference)cRefersToAssignment_5.eContents().get(0);
+		private final RuleCall cRefersToActionEStringParserRuleCall_5_0_1 = (RuleCall)cRefersToActionCrossReference_5_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//ActionReference:
+		//	"ActionReference" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+		//	successor=[AbstractControlFlowElement|EString])? "refersTo" refersTo=[Action|EString] "}";
+		public ParserRule getRule() { return rule; }
+
+		//"ActionReference" "{" ("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; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"predecessor"
+		public Keyword getPredecessorKeyword_2_0() { return cPredecessorKeyword_2_0; }
+
+		//predecessor=[AbstractControlFlowElement|EString]
+		public Assignment getPredecessorAssignment_2_1() { return cPredecessorAssignment_2_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getPredecessorAbstractControlFlowElementCrossReference_2_1_0() { return cPredecessorAbstractControlFlowElementCrossReference_2_1_0; }
+
+		//EString
+		public RuleCall getPredecessorAbstractControlFlowElementEStringParserRuleCall_2_1_0_1() { return cPredecessorAbstractControlFlowElementEStringParserRuleCall_2_1_0_1; }
+
+		//("successor" successor=[AbstractControlFlowElement|EString])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"successor"
+		public Keyword getSuccessorKeyword_3_0() { return cSuccessorKeyword_3_0; }
+
+		//successor=[AbstractControlFlowElement|EString]
+		public Assignment getSuccessorAssignment_3_1() { return cSuccessorAssignment_3_1; }
+
+		//[AbstractControlFlowElement|EString]
+		public CrossReference getSuccessorAbstractControlFlowElementCrossReference_3_1_0() { return cSuccessorAbstractControlFlowElementCrossReference_3_1_0; }
+
+		//EString
+		public RuleCall getSuccessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1() { return cSuccessorAbstractControlFlowElementEStringParserRuleCall_3_1_0_1; }
+
+		//"refersTo"
+		public Keyword getRefersToKeyword_4() { return cRefersToKeyword_4; }
+
+		//refersTo=[Action|EString]
+		public Assignment getRefersToAssignment_5() { return cRefersToAssignment_5; }
+
+		//[Action|EString]
+		public CrossReference getRefersToActionCrossReference_5_0() { return cRefersToActionCrossReference_5_0; }
+
+		//EString
+		public RuleCall getRefersToActionEStringParserRuleCall_5_0_1() { return cRefersToActionEStringParserRuleCall_5_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+	}
+
+	public class EIntElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EInt");
+		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);
+		
+		//EInt returns ecore::EInt:
+		//	"-"? INT;
+		public ParserRule getRule() { return rule; }
+
+		//"-"? INT
+		public Group getGroup() { return cGroup; }
+
+		//"-"?
+		public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
+
+		//INT
+		public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; }
+	}
+
+	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 Assignment cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cMinValueKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cMinValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cMinValueEDoubleParserRuleCall_4_0 = (RuleCall)cMinValueAssignment_4.eContents().get(0);
+		private final Keyword cMaxValueKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cMaxValueAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cMaxValueEDoubleParserRuleCall_6_0 = (RuleCall)cMaxValueAssignment_6.eContents().get(0);
+		private final Keyword cAdaptableEntityKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cAdaptableEntityAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final CrossReference cAdaptableEntityAdaptableEntityCrossReference_8_0 = (CrossReference)cAdaptableEntityAssignment_8.eContents().get(0);
+		private final RuleCall cAdaptableEntityAdaptableEntityEStringParserRuleCall_8_0_1 = (RuleCall)cAdaptableEntityAdaptableEntityCrossReference_8_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		
+		//ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange:
+		//	"ModelVariableConfigurationRange" id=EString "{" "minValue" minValue=EDouble "maxValue" maxValue=EDouble
+		//	"adaptableEntity" adaptableEntity=[core::AdaptableEntity|EString] "}";
+		public ParserRule getRule() { return rule; }
+
+		//"ModelVariableConfigurationRange" id=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=EString
+		public Assignment getIdAssignment_1() { return cIdAssignment_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_0() { return cIdEStringParserRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"minValue"
+		public Keyword getMinValueKeyword_3() { return cMinValueKeyword_3; }
+
+		//minValue=EDouble
+		public Assignment getMinValueAssignment_4() { return cMinValueAssignment_4; }
+
+		//EDouble
+		public RuleCall getMinValueEDoubleParserRuleCall_4_0() { return cMinValueEDoubleParserRuleCall_4_0; }
+
+		//"maxValue"
+		public Keyword getMaxValueKeyword_5() { return cMaxValueKeyword_5; }
+
+		//maxValue=EDouble
+		public Assignment getMaxValueAssignment_6() { return cMaxValueAssignment_6; }
+
+		//EDouble
+		public RuleCall getMaxValueEDoubleParserRuleCall_6_0() { return cMaxValueEDoubleParserRuleCall_6_0; }
+
+		//"adaptableEntity"
+		public Keyword getAdaptableEntityKeyword_7() { return cAdaptableEntityKeyword_7; }
+
+		//adaptableEntity=[core::AdaptableEntity|EString]
+		public Assignment getAdaptableEntityAssignment_8() { return cAdaptableEntityAssignment_8; }
+
+		//[core::AdaptableEntity|EString]
+		public CrossReference getAdaptableEntityAdaptableEntityCrossReference_8_0() { return cAdaptableEntityAdaptableEntityCrossReference_8_0; }
+
+		//EString
+		public RuleCall getAdaptableEntityAdaptableEntityEStringParserRuleCall_8_0_1() { return cAdaptableEntityAdaptableEntityEStringParserRuleCall_8_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+	}
+
+	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 Assignment cIdAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cIdEStringParserRuleCall_1_0 = (RuleCall)cIdAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cEntityKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Keyword cLeftParenthesisKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
+		private final Assignment cEntityAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
+		private final CrossReference cEntityEObjectCrossReference_3_2_0 = (CrossReference)cEntityAssignment_3_2.eContents().get(0);
+		private final RuleCall cEntityEObjectEStringParserRuleCall_3_2_0_1 = (RuleCall)cEntityEObjectCrossReference_3_2_0.eContents().get(1);
+		private final Group cGroup_3_3 = (Group)cGroup_3.eContents().get(3);
+		private final Keyword cCommaKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0);
+		private final Assignment cEntityAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1);
+		private final CrossReference cEntityEObjectCrossReference_3_3_1_0 = (CrossReference)cEntityAssignment_3_3_1.eContents().get(0);
+		private final RuleCall cEntityEObjectEStringParserRuleCall_3_3_1_0_1 = (RuleCall)cEntityEObjectCrossReference_3_3_1_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_3_4 = (Keyword)cGroup_3.eContents().get(4);
+		private final Keyword cVariationPossibilityKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cVariationPossibilityAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cVariationPossibilityVariationTypeParserRuleCall_5_0 = (RuleCall)cVariationPossibilityAssignment_5.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//ModelEntityConfigurationRange returns adaptationpoints::ModelEntityConfigurationRange:
+		//	"ModelEntityConfigurationRange" id=EString "{" ("entity" "(" entity+=[ecore::EObject|EString] (","
+		//	entity+=[ecore::EObject|EString])* ")")? "variationPossibility" variationPossibility=VariationType "}";
+		public ParserRule getRule() { return rule; }
+
+		//"ModelEntityConfigurationRange" id=EString "{" ("entity" "(" entity+=[ecore::EObject|EString] (","
+		//entity+=[ecore::EObject|EString])* ")")? "variationPossibility" variationPossibility=VariationType "}"
+		public Group getGroup() { return cGroup; }
+
+		//"ModelEntityConfigurationRange"
+		public Keyword getModelEntityConfigurationRangeKeyword_0() { return cModelEntityConfigurationRangeKeyword_0; }
+
+		//id=EString
+		public Assignment getIdAssignment_1() { return cIdAssignment_1; }
+
+		//EString
+		public RuleCall getIdEStringParserRuleCall_1_0() { return cIdEStringParserRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//("entity" "(" entity+=[ecore::EObject|EString] ("," entity+=[ecore::EObject|EString])* ")")?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"entity"
+		public Keyword getEntityKeyword_3_0() { return cEntityKeyword_3_0; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_3_1() { return cLeftParenthesisKeyword_3_1; }
+
+		//entity+=[ecore::EObject|EString]
+		public Assignment getEntityAssignment_3_2() { return cEntityAssignment_3_2; }
+
+		//[ecore::EObject|EString]
+		public CrossReference getEntityEObjectCrossReference_3_2_0() { return cEntityEObjectCrossReference_3_2_0; }
+
+		//EString
+		public RuleCall getEntityEObjectEStringParserRuleCall_3_2_0_1() { return cEntityEObjectEStringParserRuleCall_3_2_0_1; }
+
+		//("," entity+=[ecore::EObject|EString])*
+		public Group getGroup_3_3() { return cGroup_3_3; }
+
+		//","
+		public Keyword getCommaKeyword_3_3_0() { return cCommaKeyword_3_3_0; }
+
+		//entity+=[ecore::EObject|EString]
+		public Assignment getEntityAssignment_3_3_1() { return cEntityAssignment_3_3_1; }
+
+		//[ecore::EObject|EString]
+		public CrossReference getEntityEObjectCrossReference_3_3_1_0() { return cEntityEObjectCrossReference_3_3_1_0; }
+
+		//EString
+		public RuleCall getEntityEObjectEStringParserRuleCall_3_3_1_0_1() { return cEntityEObjectEStringParserRuleCall_3_3_1_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_3_4() { return cRightParenthesisKeyword_3_4; }
+
+		//"variationPossibility"
+		public Keyword getVariationPossibilityKeyword_4() { return cVariationPossibilityKeyword_4; }
+
+		//variationPossibility=VariationType
+		public Assignment getVariationPossibilityAssignment_5() { return cVariationPossibilityAssignment_5; }
+
+		//VariationType
+		public RuleCall getVariationPossibilityVariationTypeParserRuleCall_5_0() { return cVariationPossibilityVariationTypeParserRuleCall_5_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+	}
+
+	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 EObjectElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EObject");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cEObjectAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cEObjectKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		
+		//EObject returns ecore::EObject:
+		//	{ecore::EObject} "EObject";
+		public ParserRule getRule() { return rule; }
+
+		//{ecore::EObject} "EObject"
+		public Group getGroup() { return cGroup; }
+
+		//{ecore::EObject}
+		public Action getEObjectAction_0() { return cEObjectAction_0; }
+
+		//"EObject"
+		public Keyword getEObjectKeyword_1() { return cEObjectKeyword_1; }
+	}
+
+	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 CrossReference cMinValueConstraintOclConstraintCrossReference_3_0 = (CrossReference)cMinValueConstraintAssignment_3.eContents().get(0);
+		private final RuleCall cMinValueConstraintOclConstraintEStringParserRuleCall_3_0_1 = (RuleCall)cMinValueConstraintOclConstraintCrossReference_3_0.eContents().get(1);
+		private final Keyword cMaxValueConstraintKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cMaxValueConstraintAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final CrossReference cMaxValueConstraintOclConstraintCrossReference_5_0 = (CrossReference)cMaxValueConstraintAssignment_5.eContents().get(0);
+		private final RuleCall cMaxValueConstraintOclConstraintEStringParserRuleCall_5_0_1 = (RuleCall)cMaxValueConstraintOclConstraintCrossReference_5_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//PropertyRange returns adaptationpoints::PropertyRange:
+		//	"PropertyRange" "{" "minValueConstraint" minValueConstraint=[adaptationpoints::OclConstraint|EString]
+		//	"maxValueConstraint" maxValueConstraint=[adaptationpoints::OclConstraint|EString] "}";
+		public ParserRule getRule() { return rule; }
+
+		//"PropertyRange" "{" "minValueConstraint" minValueConstraint=[adaptationpoints::OclConstraint|EString]
+		//"maxValueConstraint" maxValueConstraint=[adaptationpoints::OclConstraint|EString] "}"
+		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=[adaptationpoints::OclConstraint|EString]
+		public Assignment getMinValueConstraintAssignment_3() { return cMinValueConstraintAssignment_3; }
+
+		//[adaptationpoints::OclConstraint|EString]
+		public CrossReference getMinValueConstraintOclConstraintCrossReference_3_0() { return cMinValueConstraintOclConstraintCrossReference_3_0; }
+
+		//EString
+		public RuleCall getMinValueConstraintOclConstraintEStringParserRuleCall_3_0_1() { return cMinValueConstraintOclConstraintEStringParserRuleCall_3_0_1; }
+
+		//"maxValueConstraint"
+		public Keyword getMaxValueConstraintKeyword_4() { return cMaxValueConstraintKeyword_4; }
+
+		//maxValueConstraint=[adaptationpoints::OclConstraint|EString]
+		public Assignment getMaxValueConstraintAssignment_5() { return cMaxValueConstraintAssignment_5; }
+
+		//[adaptationpoints::OclConstraint|EString]
+		public CrossReference getMaxValueConstraintOclConstraintCrossReference_5_0() { return cMaxValueConstraintOclConstraintCrossReference_5_0; }
+
+		//EString
+		public RuleCall getMaxValueConstraintOclConstraintEStringParserRuleCall_5_0_1() { return cMaxValueConstraintOclConstraintEStringParserRuleCall_5_0_1; }
+
+		//"}"
+		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 Keyword cValueConstraintKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cValueConstraintAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final CrossReference cValueConstraintOclConstraintCrossReference_3_0 = (CrossReference)cValueConstraintAssignment_3.eContents().get(0);
+		private final RuleCall cValueConstraintOclConstraintEStringParserRuleCall_3_0_1 = (RuleCall)cValueConstraintOclConstraintCrossReference_3_0.eContents().get(1);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cVariantsKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Keyword cLeftParenthesisKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
+		private final Assignment cVariantsAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
+		private final CrossReference cVariantsEObjectCrossReference_4_2_0 = (CrossReference)cVariantsAssignment_4_2.eContents().get(0);
+		private final RuleCall cVariantsEObjectEStringParserRuleCall_4_2_0_1 = (RuleCall)cVariantsEObjectCrossReference_4_2_0.eContents().get(1);
+		private final Group cGroup_4_3 = (Group)cGroup_4.eContents().get(3);
+		private final Keyword cCommaKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0);
+		private final Assignment cVariantsAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1);
+		private final CrossReference cVariantsEObjectCrossReference_4_3_1_0 = (CrossReference)cVariantsAssignment_4_3_1.eContents().get(0);
+		private final RuleCall cVariantsEObjectEStringParserRuleCall_4_3_1_0_1 = (RuleCall)cVariantsEObjectCrossReference_4_3_1_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_4_4 = (Keyword)cGroup_4.eContents().get(4);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//SetOfConfigurations returns adaptationpoints::SetOfConfigurations:
+		//	"SetOfConfigurations" "{" "valueConstraint" valueConstraint=[adaptationpoints::OclConstraint|EString] ("variants" "("
+		//	variants+=[ecore::EObject|EString] ("," variants+=[ecore::EObject|EString])* ")")? "}";
+		public ParserRule getRule() { return rule; }
+
+		//"SetOfConfigurations" "{" "valueConstraint" valueConstraint=[adaptationpoints::OclConstraint|EString] ("variants" "("
+		//variants+=[ecore::EObject|EString] ("," variants+=[ecore::EObject|EString])* ")")? "}"
+		public Group getGroup() { return cGroup; }
+
+		//"SetOfConfigurations"
+		public Keyword getSetOfConfigurationsKeyword_0() { return cSetOfConfigurationsKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//"valueConstraint"
+		public Keyword getValueConstraintKeyword_2() { return cValueConstraintKeyword_2; }
+
+		//valueConstraint=[adaptationpoints::OclConstraint|EString]
+		public Assignment getValueConstraintAssignment_3() { return cValueConstraintAssignment_3; }
+
+		//[adaptationpoints::OclConstraint|EString]
+		public CrossReference getValueConstraintOclConstraintCrossReference_3_0() { return cValueConstraintOclConstraintCrossReference_3_0; }
+
+		//EString
+		public RuleCall getValueConstraintOclConstraintEStringParserRuleCall_3_0_1() { return cValueConstraintOclConstraintEStringParserRuleCall_3_0_1; }
+
+		//("variants" "(" variants+=[ecore::EObject|EString] ("," variants+=[ecore::EObject|EString])* ")")?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//"variants"
+		public Keyword getVariantsKeyword_4_0() { return cVariantsKeyword_4_0; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_4_1() { return cLeftParenthesisKeyword_4_1; }
+
+		//variants+=[ecore::EObject|EString]
+		public Assignment getVariantsAssignment_4_2() { return cVariantsAssignment_4_2; }
+
+		//[ecore::EObject|EString]
+		public CrossReference getVariantsEObjectCrossReference_4_2_0() { return cVariantsEObjectCrossReference_4_2_0; }
+
+		//EString
+		public RuleCall getVariantsEObjectEStringParserRuleCall_4_2_0_1() { return cVariantsEObjectEStringParserRuleCall_4_2_0_1; }
+
+		//("," variants+=[ecore::EObject|EString])*
+		public Group getGroup_4_3() { return cGroup_4_3; }
+
+		//","
+		public Keyword getCommaKeyword_4_3_0() { return cCommaKeyword_4_3_0; }
+
+		//variants+=[ecore::EObject|EString]
+		public Assignment getVariantsAssignment_4_3_1() { return cVariantsAssignment_4_3_1; }
+
+		//[ecore::EObject|EString]
+		public CrossReference getVariantsEObjectCrossReference_4_3_1_0() { return cVariantsEObjectCrossReference_4_3_1_0; }
+
+		//EString
+		public RuleCall getVariantsEObjectEStringParserRuleCall_4_3_1_0_1() { return cVariantsEObjectEStringParserRuleCall_4_3_1_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_4_4() { return cRightParenthesisKeyword_4_4; }
+
+		//"}"
+		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 Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cOclStringKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cOclStringAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cOclStringEStringParserRuleCall_3_0 = (RuleCall)cOclStringAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//OclConstraint returns adaptationpoints::OclConstraint:
+		//	"OclConstraint" "{" "oclString" oclString=EString "}";
+		public ParserRule getRule() { return rule; }
+
+		//"OclConstraint" "{" "oclString" oclString=EString "}"
+		public Group getGroup() { return cGroup; }
+
+		//"OclConstraint"
+		public Keyword getOclConstraintKeyword_0() { return cOclConstraintKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//"oclString"
+		public Keyword getOclStringKeyword_2() { return cOclStringKeyword_2; }
+
+		//oclString=EString
+		public Assignment getOclStringAssignment_3() { return cOclStringAssignment_3; }
+
+		//EString
+		public RuleCall getOclStringEStringParserRuleCall_3_0() { return cOclStringEStringParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	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 Keyword cObjectiveKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cSpecificationKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cSpecificationAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cSpecificationEStringParserRuleCall_3_0 = (RuleCall)cSpecificationAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//Objective:
+		//	"Objective" "{" "specification" specification=EString "}";
+		public ParserRule getRule() { return rule; }
+
+		//"Objective" "{" "specification" specification=EString "}"
+		public Group getGroup() { return cGroup; }
+
+		//"Objective"
+		public Keyword getObjectiveKeyword_0() { return cObjectiveKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//"specification"
+		public Keyword getSpecificationKeyword_2() { return cSpecificationKeyword_2; }
+
+		//specification=EString
+		public Assignment getSpecificationAssignment_3() { return cSpecificationAssignment_3; }
+
+		//EString
+		public RuleCall getSpecificationEStringParserRuleCall_3_0() { return cSpecificationEStringParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	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 Action cEventAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cEventKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		
+		//Event:
+		//	{Event} "Event";
+		public ParserRule getRule() { return rule; }
+
+		//{Event} "Event"
+		public Group getGroup() { return cGroup; }
+
+		//{Event}
+		public Action getEventAction_0() { return cEventAction_0; }
+
+		//"Event"
+		public Keyword getEventKeyword_1() { return cEventKeyword_1; }
+	}
+
+	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 Keyword cWeightedTacticKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cCurrentWeightKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cCurrentWeightAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cCurrentWeightEDoubleParserRuleCall_3_0 = (RuleCall)cCurrentWeightAssignment_3.eContents().get(0);
+		private final Keyword cDefaultWeightKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cDefaultWeightAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cDefaultWeightEDoubleParserRuleCall_5_0 = (RuleCall)cDefaultWeightAssignment_5.eContents().get(0);
+		private final Keyword cUsesKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cUsesAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final CrossReference cUsesTacticCrossReference_7_0 = (CrossReference)cUsesAssignment_7.eContents().get(0);
+		private final RuleCall cUsesTacticEStringParserRuleCall_7_0_1 = (RuleCall)cUsesTacticCrossReference_7_0.eContents().get(1);
+		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		
+		//WeightedTactic:
+		//	"WeightedTactic" "{" "currentWeight" currentWeight=EDouble "defaultWeight" defaultWeight=EDouble "uses"
+		//	uses=[Tactic|EString] "}";
+		public ParserRule getRule() { return rule; }
+
+		//"WeightedTactic" "{" "currentWeight" currentWeight=EDouble "defaultWeight" defaultWeight=EDouble "uses"
+		//uses=[Tactic|EString] "}"
+		public Group getGroup() { return cGroup; }
+
+		//"WeightedTactic"
+		public Keyword getWeightedTacticKeyword_0() { return cWeightedTacticKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//"currentWeight"
+		public Keyword getCurrentWeightKeyword_2() { return cCurrentWeightKeyword_2; }
+
+		//currentWeight=EDouble
+		public Assignment getCurrentWeightAssignment_3() { return cCurrentWeightAssignment_3; }
+
+		//EDouble
+		public RuleCall getCurrentWeightEDoubleParserRuleCall_3_0() { return cCurrentWeightEDoubleParserRuleCall_3_0; }
+
+		//"defaultWeight"
+		public Keyword getDefaultWeightKeyword_4() { return cDefaultWeightKeyword_4; }
+
+		//defaultWeight=EDouble
+		public Assignment getDefaultWeightAssignment_5() { return cDefaultWeightAssignment_5; }
+
+		//EDouble
+		public RuleCall getDefaultWeightEDoubleParserRuleCall_5_0() { return cDefaultWeightEDoubleParserRuleCall_5_0; }
+
+		//"uses"
+		public Keyword getUsesKeyword_6() { return cUsesKeyword_6; }
+
+		//uses=[Tactic|EString]
+		public Assignment getUsesAssignment_7() { return cUsesAssignment_7; }
+
+		//[Tactic|EString]
+		public CrossReference getUsesTacticCrossReference_7_0() { return cUsesTacticCrossReference_7_0; }
+
+		//EString
+		public RuleCall getUsesTacticEStringParserRuleCall_7_0_1() { return cUsesTacticEStringParserRuleCall_7_0_1; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
+	}
+
+	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 Keyword cWeightingFunctionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cFunctionKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cFunctionAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cFunctionEStringParserRuleCall_3_0 = (RuleCall)cFunctionAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//WeightingFunction:
+		//	"WeightingFunction" "{" "function" function=EString "}";
+		public ParserRule getRule() { return rule; }
+
+		//"WeightingFunction" "{" "function" function=EString "}"
+		public Group getGroup() { return cGroup; }
+
+		//"WeightingFunction"
+		public Keyword getWeightingFunctionKeyword_0() { return cWeightingFunctionKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//"function"
+		public Keyword getFunctionKeyword_2() { return cFunctionKeyword_2; }
+
+		//function=EString
+		public Assignment getFunctionAssignment_3() { return cFunctionAssignment_3; }
+
+		//EString
+		public RuleCall getFunctionEStringParserRuleCall_3_0() { return cFunctionEStringParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+	
+	
+	private StaRepositoryElements pStaRepository;
+	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 AdaptationPlanElements pAdaptationPlan;
+	private StartElements pStart;
+	private StopElements pStop;
+	private LoopElements pLoop;
+	private BranchElements pBranch;
+	private ActionReferenceElements pActionReference;
+	private EIntElements pEInt;
+	private ModelVariableConfigurationRangeElements pModelVariableConfigurationRange;
+	private ModelEntityConfigurationRangeElements pModelEntityConfigurationRange;
+	private EDoubleElements pEDouble;
+	private EObjectElements pEObject;
+	private PropertyRangeElements pPropertyRange;
+	private SetOfConfigurationsElements pSetOfConfigurations;
+	private OclConstraintElements pOclConstraint;
+	private ObjectiveElements pObjective;
+	private EventElements pEvent;
+	private WeightedTacticElements pWeightedTactic;
+	private WeightingFunctionElements pWeightingFunction;
+	
+	private final Grammar grammar;
+
+	private TerminalsGrammarAccess gaTerminals;
+
+	@Inject
+	public StaAdaptationLanguageGrammarAccess(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.StaAdaptationLanguage".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;
+	}
+
+	
+	//StaRepository:
+	//	"StaRepository" id=EString "{" "name" name=EString "tactics" "{" tactics+=Tactic ("," tactics+=Tactic)* "}" "actions"
+	//	"{" actions+=Action ("," actions+=Action)* "}" "strategies" "{" strategies+=Strategy ("," strategies+=Strategy)* "}"
+	//	("parameters" "{" parameters+=Parameter ("," parameters+=Parameter)* "}")? "}";
+	public StaRepositoryElements getStaRepositoryAccess() {
+		return (pStaRepository != null) ? pStaRepository : (pStaRepository = new StaRepositoryElements());
+	}
+	
+	public ParserRule getStaRepositoryRule() {
+		return getStaRepositoryAccess().getRule();
+	}
+
+	//AdaptationPoint returns adaptationpoints::AdaptationPoint:
+	//	ModelVariableConfigurationRange | ModelEntityConfigurationRange;
+	public AdaptationPointElements getAdaptationPointAccess() {
+		return (pAdaptationPoint != null) ? pAdaptationPoint : (pAdaptationPoint = new AdaptationPointElements());
+	}
+	
+	public ParserRule getAdaptationPointRule() {
+		return getAdaptationPointAccess().getRule();
+	}
+
+	//AbstractControlFlowElement:
+	//	Start | Stop | Loop | Branch | 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" id=EString "{" "name" name=EString ("inputParams" "(" inputParams+=[Parameter|EString] (","
+	//	inputParams+=[Parameter|EString])* ")")? ("outputParam" outputParam=[Parameter|EString])? "implementedPlan"
+	//	implementedPlan=AdaptationPlan "}";
+	public TacticElements getTacticAccess() {
+		return (pTactic != null) ? pTactic : (pTactic = new TacticElements());
+	}
+	
+	public ParserRule getTacticRule() {
+		return getTacticAccess().getRule();
+	}
+
+	//Action:
+	//	"Action" id=EString "{" "name" name=EString ("outputParam" outputParam=[Parameter|EString])? ("inputParams" "("
+	//	inputParams+=[Parameter|EString] ("," inputParams+=[Parameter|EString])* ")")? "referredAdaptationPoint"
+	//	referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString] "}";
+	public ActionElements getActionAccess() {
+		return (pAction != null) ? pAction : (pAction = new ActionElements());
+	}
+	
+	public ParserRule getActionRule() {
+		return getActionAccess().getRule();
+	}
+
+	//Strategy:
+	//	"Strategy" id=EString "{" "name" name=EString "objective" objective=[Objective|EString] ("triggeringEvents"
+	//	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:
+	//	"Parameter" name=EString "{" "type" type=EString "}";
+	public ParameterElements getParameterAccess() {
+		return (pParameter != null) ? pParameter : (pParameter = new ParameterElements());
+	}
+	
+	public ParserRule getParameterRule() {
+		return getParameterAccess().getRule();
+	}
+
+	//AdaptationPlan:
+	//	"AdaptationPlan" id=EString "{" "name" name=EString ("steps" "{" steps+=AbstractControlFlowElement (","
+	//	steps+=AbstractControlFlowElement)* "}")? "}";
+	public AdaptationPlanElements getAdaptationPlanAccess() {
+		return (pAdaptationPlan != null) ? pAdaptationPlan : (pAdaptationPlan = new AdaptationPlanElements());
+	}
+	
+	public ParserRule getAdaptationPlanRule() {
+		return getAdaptationPlanAccess().getRule();
+	}
+
+	//Start:
+	//	{Start} "Start" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+	//	successor=[AbstractControlFlowElement|EString])? "}";
+	public StartElements getStartAccess() {
+		return (pStart != null) ? pStart : (pStart = new StartElements());
+	}
+	
+	public ParserRule getStartRule() {
+		return getStartAccess().getRule();
+	}
+
+	//Stop:
+	//	{Stop} "Stop" "{" ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+	//	successor=[AbstractControlFlowElement|EString])? "}";
+	public StopElements getStopAccess() {
+		return (pStop != null) ? pStop : (pStop = new StopElements());
+	}
+	
+	public ParserRule getStopRule() {
+		return getStopAccess().getRule();
+	}
+
+	//Loop:
+	//	"Loop" "{" "counter" counter=EInt ("predecessor" predecessor=[AbstractControlFlowElement|EString])? ("successor"
+	//	successor=[AbstractControlFlowElement|EString])? "body" body=AdaptationPlan "}";
+	public LoopElements getLoopAccess() {
+		return (pLoop != null) ? pLoop : (pLoop = new LoopElements());
+	}
+	
+	public ParserRule getLoopRule() {
+		return getLoopAccess().getRule();
+	}
+
+	//Branch:
+	//	"Branch" "{" ("condition" condition=EString)? ("predecessor" predecessor=[AbstractControlFlowElement|EString])?
+	//	("successor" successor=[AbstractControlFlowElement|EString])? "branches" "{" branches+=AdaptationPlan (","
+	//	branches+=AdaptationPlan)* "}" "}";
+	public BranchElements getBranchAccess() {
+		return (pBranch != null) ? pBranch : (pBranch = new BranchElements());
+	}
+	
+	public ParserRule getBranchRule() {
+		return getBranchAccess().getRule();
+	}
+
+	//ActionReference:
+	//	"ActionReference" "{" ("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();
+	}
+
+	//EInt returns ecore::EInt:
+	//	"-"? INT;
+	public EIntElements getEIntAccess() {
+		return (pEInt != null) ? pEInt : (pEInt = new EIntElements());
+	}
+	
+	public ParserRule getEIntRule() {
+		return getEIntAccess().getRule();
+	}
+
+	//ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange:
+	//	"ModelVariableConfigurationRange" id=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=EString "{" ("entity" "(" entity+=[ecore::EObject|EString] (","
+	//	entity+=[ecore::EObject|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();
+	}
+
+	//EObject returns ecore::EObject:
+	//	{ecore::EObject} "EObject";
+	public EObjectElements getEObjectAccess() {
+		return (pEObject != null) ? pEObject : (pEObject = new EObjectElements());
+	}
+	
+	public ParserRule getEObjectRule() {
+		return getEObjectAccess().getRule();
+	}
+
+	//PropertyRange returns adaptationpoints::PropertyRange:
+	//	"PropertyRange" "{" "minValueConstraint" minValueConstraint=[adaptationpoints::OclConstraint|EString]
+	//	"maxValueConstraint" maxValueConstraint=[adaptationpoints::OclConstraint|EString] "}";
+	public PropertyRangeElements getPropertyRangeAccess() {
+		return (pPropertyRange != null) ? pPropertyRange : (pPropertyRange = new PropertyRangeElements());
+	}
+	
+	public ParserRule getPropertyRangeRule() {
+		return getPropertyRangeAccess().getRule();
+	}
+
+	//SetOfConfigurations returns adaptationpoints::SetOfConfigurations:
+	//	"SetOfConfigurations" "{" "valueConstraint" valueConstraint=[adaptationpoints::OclConstraint|EString] ("variants" "("
+	//	variants+=[ecore::EObject|EString] ("," variants+=[ecore::EObject|EString])* ")")? "}";
+	public SetOfConfigurationsElements getSetOfConfigurationsAccess() {
+		return (pSetOfConfigurations != null) ? pSetOfConfigurations : (pSetOfConfigurations = new SetOfConfigurationsElements());
+	}
+	
+	public ParserRule getSetOfConfigurationsRule() {
+		return getSetOfConfigurationsAccess().getRule();
+	}
+
+	//OclConstraint returns adaptationpoints::OclConstraint:
+	//	"OclConstraint" "{" "oclString" oclString=EString "}";
+	public OclConstraintElements getOclConstraintAccess() {
+		return (pOclConstraint != null) ? pOclConstraint : (pOclConstraint = new OclConstraintElements());
+	}
+	
+	public ParserRule getOclConstraintRule() {
+		return getOclConstraintAccess().getRule();
+	}
+
+	//Objective:
+	//	"Objective" "{" "specification" specification=EString "}";
+	public ObjectiveElements getObjectiveAccess() {
+		return (pObjective != null) ? pObjective : (pObjective = new ObjectiveElements());
+	}
+	
+	public ParserRule getObjectiveRule() {
+		return getObjectiveAccess().getRule();
+	}
+
+	//Event:
+	//	{Event} "Event";
+	public EventElements getEventAccess() {
+		return (pEvent != null) ? pEvent : (pEvent = new EventElements());
+	}
+	
+	public ParserRule getEventRule() {
+		return getEventAccess().getRule();
+	}
+
+	//WeightedTactic:
+	//	"WeightedTactic" "{" "currentWeight" currentWeight=EDouble "defaultWeight" defaultWeight=EDouble "uses"
+	//	uses=[Tactic|EString] "}";
+	public WeightedTacticElements getWeightedTacticAccess() {
+		return (pWeightedTactic != null) ? pWeightedTactic : (pWeightedTactic = new WeightedTacticElements());
+	}
+	
+	public ParserRule getWeightedTacticRule() {
+		return getWeightedTacticAccess().getRule();
+	}
+
+	//WeightingFunction:
+	//	"WeightingFunction" "{" "function" function=EString "}";
+	public WeightingFunctionElements getWeightingFunctionAccess() {
+		return (pWeightingFunction != null) ? pWeightingFunction : (pWeightingFunction = new WeightingFunctionElements());
+	}
+	
+	public ParserRule getWeightingFunctionRule() {
+		return getWeightingFunctionAccess().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/validation/AbstractStaAdaptationLanguageJavaValidator.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/validation/AbstractStaAdaptationLanguageJavaValidator.java
new file mode 100644
index 0000000000000000000000000000000000000000..775d319c54747a74cae98a5c45d9d53758e3fd13
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src-gen/edu/kit/ipd/descartes/mm/adaptation/validation/AbstractStaAdaptationLanguageJavaValidator.java
@@ -0,0 +1,20 @@
+package edu.kit.ipd.descartes.mm.adaptation.validation;
+ 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+
+public class AbstractStaAdaptationLanguageJavaValidator extends AbstractDeclarativeValidator {
+
+	@Override
+	protected List<EPackage> getEPackages() {
+	    List<EPackage> result = new ArrayList<EPackage>();
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.descartes-research.net/metamodel/adaptation/1.0"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.descartes-research.net/metamodel/adaptationpoints/0.1"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/emf/2002/Ecore"));
+		return result;
+	}
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/GenerateStaAdaptationLanguage.mwe2 b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/GenerateStaAdaptationLanguage.mwe2
new file mode 100644
index 0000000000000000000000000000000000000000..6f352282ee3aafee8695fd61c41880656e0f94d9
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/GenerateStaAdaptationLanguage.mwe2
@@ -0,0 +1,116 @@
+module edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage
+
+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/StaAdaptationLanguage.xtext"
+var file.extensions = "stalang"
+var projectName = "edu.kit.ipd.descartes.mm.adaptation.sta"
+var runtimeProject = "../${projectName}"
+
+Workflow {
+	bean = StandaloneSetup {
+		scanClassPath  = true
+		platformUri = "${runtimeProject}/.."
+	registerGeneratedEPackage = "edu.kit.ipd.descartes.mm.adaptation.AdaptationPackage"
+	// registerGenModelFile = "platform:/resource/edu.kit.ipd.descartes.mm/model/adaptation.genmodel"
+	
+	}
+
+	component = DirectoryCleaner {
+		directory = "${runtimeProject}/src-gen"
+	}
+
+	component = DirectoryCleaner {
+		directory = "${runtimeProject}.ui/src-gen"
+	}
+
+	component = Generator {
+		pathRtProject = runtimeProject
+		pathUiProject = "${runtimeProject}.ui"
+		projectNameRt = projectName
+		projectNameUi = "${projectName}.ui"
+		language = {
+			uri = grammarURI
+			fileExtensions = file.extensions
+
+			// Java API to access grammar elements (required by several other fragments)
+			fragment = grammarAccess.GrammarAccessFragment {}
+
+			// generates Java API for the generated EPackages
+			// fragment = ecore.EcoreGeneratorFragment {}
+
+			// the serialization component
+			fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
+
+			// a custom ResourceFactory for use with EMF 
+			fragment = resourceFactory.ResourceFactoryFragment {
+				fileExtensions = file.extensions
+			}
+
+			// the Antlr parser
+			fragment = parser.antlr.XtextAntlrGeneratorFragment {
+				options = {
+					classSplitting = true
+				}
+			}
+
+			// the Ecore2Xtext specific terminal converter
+			fragment = ecore2xtext.Ecore2XtextValueConverterServiceFragment {}
+
+			// java-based API for validation 
+			fragment = validation.JavaValidatorFragment {
+			// composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+			// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+			}
+
+			// scoping and exporting API
+			fragment = scoping.ImportURIScopingFragment {}
+			fragment = exporting.SimpleNamesFragment {}
+
+			// scoping and exporting API 
+
+			// fragment = scoping.ImportNamespacesScopingFragment {}
+			// fragment = exporting.QualifiedNamesFragment {}
+
+
+			// formatter API 
+			fragment = ecore2xtext.FormatterFragment {}
+
+			// labeling API 
+			fragment = labeling.LabelProviderFragment {}
+
+			// outline API 
+            fragment = outline.OutlineTreeProviderFragment {}
+            fragment = outline.QuickOutlineFragment {}
+
+			// java-based API for content assistance 
+			fragment = contentAssist.JavaBasedContentAssistFragment {}
+
+			// antlr parser generator tailored for content assist 
+			fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
+				options = {
+					classSplitting = true
+				}
+			}
+
+			// provides a compare view
+            fragment = compare.CompareFragment {
+                fileExtensions = file.extensions
+            }
+
+			fragment = builder.BuilderIntegrationFragment {}
+
+			// project wizard (optional) 
+
+			// fragment = projectWizard.SimpleProjectWizardFragment {
+			//		generatorProjectName = "${projectName}.generator" 
+			//		modelFileExtension = file.extensions
+			// }
+
+			// quickfix API 
+			fragment = quickfix.QuickfixProviderFragment {}
+		}
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext
new file mode 100644
index 0000000000000000000000000000000000000000..370d9f0b4720d8e8a9aacb1debff410c049b6c98
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguage.xtext
@@ -0,0 +1,196 @@
+// automatically generated by Xtext
+grammar edu.kit.ipd.descartes.mm.adaptation.StaAdaptationLanguage with org.eclipse.xtext.common.Terminals
+
+import "http://www.descartes-research.net/metamodel/adaptation/1.0" 
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+import "http://www.descartes-research.net/metamodel/adaptationpoints/0.1" as adaptationpoints
+import "http://www.descartes-research.net/metamodel/core/0.1" as core
+
+StaRepository returns StaRepository:
+	'StaRepository'
+	id=EString
+	'{'
+		'name' name=EString
+		'tactics' '{' tactics+=Tactic ( "," tactics+=Tactic)* '}' 
+		'actions' '{' actions+=Action ( "," actions+=Action)* '}' 
+		'strategies' '{' strategies+=Strategy ( "," strategies+=Strategy)* '}' 
+		('parameters' '{' parameters+=Parameter ( "," parameters+=Parameter)* '}' )?
+	'}';
+
+
+AdaptationPoint returns adaptationpoints::AdaptationPoint:
+	ModelVariableConfigurationRange | ModelEntityConfigurationRange;
+
+
+AbstractControlFlowElement returns AbstractControlFlowElement:
+	Start | Stop | Loop | Branch | ActionReference;
+
+
+VariationType returns adaptationpoints::VariationType:
+	PropertyRange | SetOfConfigurations;
+
+
+
+EString returns ecore::EString:
+	STRING | ID;
+
+Tactic returns Tactic:
+	'Tactic'
+	id=EString
+	'{'
+		'name' name=EString
+		('inputParams' '(' inputParams+=[Parameter|EString] ( "," inputParams+=[Parameter|EString])* ')' )?
+		('outputParam' outputParam=[Parameter|EString])?
+		'implementedPlan' implementedPlan=AdaptationPlan
+	'}';
+
+Action returns Action:
+	'Action'
+	id=EString
+	'{'
+		'name' name=EString
+		('outputParam' outputParam=[Parameter|EString])?
+		('inputParams' '(' inputParams+=[Parameter|EString] ( "," inputParams+=[Parameter|EString])* ')' )?
+		'referredAdaptationPoint' referredAdaptationPoint=[adaptationpoints::AdaptationPoint|EString]
+	'}';
+
+Strategy returns Strategy:
+	'Strategy'
+	id=EString
+	'{'
+		'name' name=EString
+		'objective' objective=[Objective|EString]
+		('triggeringEvents' triggeringEvents=Event)?
+		'tactics' '{' tactics+=WeightedTactic ( "," tactics+=WeightedTactic)* '}' 
+		'weightingFunction' weightingFunction=WeightingFunction
+	'}';
+
+Parameter returns Parameter:
+	'Parameter'
+	name=EString
+	'{'
+		'type' type=EString
+	'}';
+
+AdaptationPlan returns AdaptationPlan:
+	'AdaptationPlan'
+	id=EString
+	'{'
+		'name' name=EString
+		('steps' '{' steps+=AbstractControlFlowElement ( "," steps+=AbstractControlFlowElement)* '}' )?
+	'}';
+
+Start returns Start:
+	{Start}
+	'Start'
+	'{'
+		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		('successor' successor=[AbstractControlFlowElement|EString])?
+	'}';
+
+Stop returns Stop:
+	{Stop}
+	'Stop'
+	'{'
+		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		('successor' successor=[AbstractControlFlowElement|EString])?
+	'}';
+
+Loop returns Loop:
+	'Loop'
+	'{'
+		'counter' counter=EInt
+		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		('successor' successor=[AbstractControlFlowElement|EString])?
+		'body' body=AdaptationPlan
+	'}';
+
+Branch returns Branch:
+	'Branch'
+	'{'
+		('condition' condition=EString)?
+		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		('successor' successor=[AbstractControlFlowElement|EString])?
+		'branches' '{' branches+=AdaptationPlan ( "," branches+=AdaptationPlan)* '}' 
+	'}';
+
+ActionReference returns ActionReference:
+	'ActionReference'
+	'{'
+		('predecessor' predecessor=[AbstractControlFlowElement|EString])?
+		('successor' successor=[AbstractControlFlowElement|EString])?
+		'refersTo' refersTo=[Action|EString]
+	'}';
+
+EInt returns ecore::EInt:
+	'-'? INT;
+
+ModelVariableConfigurationRange returns adaptationpoints::ModelVariableConfigurationRange:
+	'ModelVariableConfigurationRange'
+	id=EString
+	'{'
+		'minValue' minValue=EDouble
+		'maxValue' maxValue=EDouble
+		'adaptableEntity' adaptableEntity=[core::AdaptableEntity|EString]
+	'}';
+
+ModelEntityConfigurationRange returns adaptationpoints::ModelEntityConfigurationRange:
+	'ModelEntityConfigurationRange'
+	id=EString
+	'{'
+		('entity' '(' entity+=[ecore::EObject|EString] ( "," entity+=[ecore::EObject|EString])* ')' )?
+		'variationPossibility' variationPossibility=VariationType
+	'}';
+
+EDouble returns ecore::EDouble:
+	'-'? INT? '.' INT (('E'|'e') '-'? INT)?;
+
+EObject returns ecore::EObject:
+	{ecore::EObject}
+	'EObject'
+	;
+
+PropertyRange returns adaptationpoints::PropertyRange:
+	'PropertyRange'
+	'{'
+		'minValueConstraint' minValueConstraint=[adaptationpoints::OclConstraint|EString]
+		'maxValueConstraint' maxValueConstraint=[adaptationpoints::OclConstraint|EString]
+	'}';
+
+SetOfConfigurations returns adaptationpoints::SetOfConfigurations:
+	'SetOfConfigurations'
+	'{'
+		'valueConstraint' valueConstraint=[adaptationpoints::OclConstraint|EString]
+		('variants' '(' variants+=[ecore::EObject|EString] ( "," variants+=[ecore::EObject|EString])* ')' )?
+	'}';
+
+OclConstraint returns adaptationpoints::OclConstraint:
+	'OclConstraint'
+	'{'
+		'oclString' oclString=EString
+	'}';
+
+Objective returns Objective:
+	'Objective'
+	'{'
+		'specification' specification=EString
+	'}';
+
+Event returns Event:
+	{Event}
+	'Event'
+	;
+
+WeightedTactic returns WeightedTactic:
+	'WeightedTactic'
+	'{'
+		'currentWeight' currentWeight=EDouble
+		'defaultWeight' defaultWeight=EDouble
+		'uses' uses=[Tactic|EString]
+	'}';
+
+WeightingFunction returns WeightingFunction:
+	'WeightingFunction'
+	'{'
+		'function' function=EString
+	'}';
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguageRuntimeModule.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguageRuntimeModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..78f08ef8f00f2d9ea5e4400800b695a3fa75626e
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguageRuntimeModule.java
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class StaAdaptationLanguageRuntimeModule extends edu.kit.ipd.descartes.mm.adaptation.AbstractStaAdaptationLanguageRuntimeModule {
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguageStandaloneSetup.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguageStandaloneSetup.java
new file mode 100644
index 0000000000000000000000000000000000000000..32078175054c6f1cb56a07f3bf9ff8a0f04b2176
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/StaAdaptationLanguageStandaloneSetup.java
@@ -0,0 +1,14 @@
+
+package edu.kit.ipd.descartes.mm.adaptation;
+
+/**
+ * Initialization support for running Xtext languages 
+ * without equinox extension registry
+ */
+public class StaAdaptationLanguageStandaloneSetup extends StaAdaptationLanguageStandaloneSetupGenerated{
+
+	public static void doSetup() {
+		new StaAdaptationLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+}
+
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/formatting/StaAdaptationLanguageFormatter.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/formatting/StaAdaptationLanguageFormatter.java
new file mode 100644
index 0000000000000000000000000000000000000000..3d1d81f6d053d6b0fca7f1d11d5988f53f33d0ce
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/formatting/StaAdaptationLanguageFormatter.java
@@ -0,0 +1,39 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.formatting;
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.util.Pair;
+
+/**
+ * This class contains custom formatting description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting
+ * on how and when to use it 
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class StaAdaptationLanguageFormatter extends AbstractDeclarativeFormatter {
+	
+	@Override
+	protected void configureFormatting(FormattingConfig c) {
+		edu.kit.ipd.descartes.mm.adaptation.services.StaAdaptationLanguageGrammarAccess f = (edu.kit.ipd.descartes.mm.adaptation.services.StaAdaptationLanguageGrammarAccess) getGrammarAccess();
+		for(Pair<Keyword, Keyword> pair: f.findKeywordPairs("{", "}")) {
+			c.setIndentation(pair.getFirst(), pair.getSecond());
+			c.setLinewrap(1).after(pair.getFirst());
+			c.setLinewrap(1).before(pair.getSecond());
+			c.setLinewrap(1).after(pair.getSecond());
+		}
+		for(Keyword comma: f.findKeywords(",")) {
+			c.setNoLinewrap().before(comma);
+			c.setNoSpace().before(comma);
+			c.setLinewrap().after(comma);
+		}
+		c.setLinewrap(0, 1, 2).before(f.getSL_COMMENTRule());
+		c.setLinewrap(0, 1, 2).before(f.getML_COMMENTRule());
+		c.setLinewrap(0, 1, 1).after(f.getML_COMMENTRule());
+	}
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/scoping/StaAdaptationLanguageScopeProvider.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/scoping/StaAdaptationLanguageScopeProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..f90cc24505067c3ed57b812b1d9a91fb100f9e4b
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/scoping/StaAdaptationLanguageScopeProvider.java
@@ -0,0 +1,17 @@
+/*
+ * generated by Xtext
+ */
+package edu.kit.ipd.descartes.mm.adaptation.scoping;
+
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+
+/**
+ * This class contains custom scoping description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#scoping
+ * on how and when to use it 
+ *
+ */
+public class StaAdaptationLanguageScopeProvider extends AbstractDeclarativeScopeProvider {
+
+}
diff --git a/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/validation/StaAdaptationLanguageJavaValidator.java b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/validation/StaAdaptationLanguageJavaValidator.java
new file mode 100644
index 0000000000000000000000000000000000000000..1c17f04f5d190dd4f5c09801d03ddc52c5a9038a
--- /dev/null
+++ b/edu.kit.ipd.descartes.mm.adaptation.sta/src/edu/kit/ipd/descartes/mm/adaptation/validation/StaAdaptationLanguageJavaValidator.java
@@ -0,0 +1,13 @@
+package edu.kit.ipd.descartes.mm.adaptation.validation;
+ 
+
+public class StaAdaptationLanguageJavaValidator extends AbstractStaAdaptationLanguageJavaValidator {
+
+//	@Check
+//	public void checkGreetingStartsWithCapital(Greeting greeting) {
+//		if (!Character.isUpperCase(greeting.getName().charAt(0))) {
+//			warning("Name should start with a capital", MyDslPackage.Literals.GREETING__NAME);
+//		}
+//	}
+
+}